如何在Windows上将多个输入流式传输到多个输出?

时间:2019-01-15 10:44:59

标签: ffmpeg streaming iptv

我习惯于使用ffmpeg和其他东西进行广播/测试。.但是我不明白iptv服务器如何成功拥有50多个输入流,制作50多个输出流并共享它们,因为我做不到甚至可以运行3个带有编码的ffmpeg命令,而不会让CPU哭泣寻求帮助...

我试图获取信息,但是除了Wowza似乎在做我试图理解的事情之外,我没有找到任何信息...

我希望您能启发我理解整个过程。另外,我想进行测试,因此,如果您对如何执行此操作有任何建议,我将非常感谢您!

1 个答案:

答案 0 :(得分:0)

大多数大型流媒体服务实际上将具有多台服务器-部分原因是由不同的服务器执行的功能不同,也归因于您提到的性能。

有多种方法可以将服务组合在一起,但通常(对于实时流)它具有以下元素:

  • 某种实时编码器,它接收外部流并将其转换为系统其余部分可以理解的格式
  • 代码转换器-这些代码可以输入视频并创建其多个比特率版本,以支持自适应比特率流传输(请参阅:https://stackoverflow.com/a/42365034/334402
  • 打包器-这些打包器将产生的视频流打包为所需的视频流协议,如今通常为HLS或MPEG DASH。这通常是“及时”完成的,因此实际上只打包了所需的流和比特率。如果需要加密,通常也将在此时应用。
  • 原始服务器和CDN-实际上由构成ABR视频段的数据包组成的视频流,被传递到作为CDN源的原始服务器。 CDN称为内容分发网络,类似于大型分散的视频缓存,它将视频复制到网络边缘以减少用户请求视频时的延迟。

您还可以使用云服务来构建它,而不是自己安装或拆分服务器-查看来自诸如AWS Media Services或BitMovin之类的提供商的一些文档可能会很有用。

无论采用哪种方式,您最初的想法都是正确的-要处理大量的视频流需要相当多的能力。