推荐基于TCP / IP的大二进制块传输协议

时间:2011-04-04 07:38:44

标签: video-streaming tcp network-protocols

我打算开发一种视频转码系统。

一台机器有帧抓取器,可以从各种来源接收音频/视频信号 几台转码机将通过千兆以太网连接到该源机器 源机器将压缩的音频/视频帧数据发送到转码机。

因为这是简单的单向传输,我想我可以使用HTTP。但网络带宽是问题所在。

通过简单的搜索,我在Superuser找到了一个帖子 这个真实世界的千兆位以太网示例仅显示340Mbps的吞吐量。

我的目标系统应能够对全高清视频进行多个同步转码 1080P全高清视频的数据速率可以是712Mbps而无需压缩。即使使用压缩,这也很容易在1或2个通道上使千兆网络饱和。

假设3是目标。我使用什么协议来完成3个全高清视频数据的同时传输?我可以使用HTTP吗?我是否必须设计专用多播协议?是否有用于此目的的开源和/或开放规范协议?

提前致谢。

2 个答案:

答案 0 :(得分:2)

如果你想使用多播,你可以切换到UDP协议,那么我建议你考虑RTP协议。 但你似乎没有流媒体的目的,此外,你发送压缩文件。 HTTP应该没问题,但如果你想避免开销,那么你可以使用3个简单的TCP连接而不用HTTP。

答案 1 :(得分:2)

如果没有在您自己的条件下实际尝试,TCP / IP吞吐量难以量化。那个人可能只看到340Mbps的吞吐量,但是将高带宽连接饱和到最大速度的简单方法是通过TCP进行多次并行传输......为此,HTTP也可以正常工作。

真正的问题是双重的......首先,您的视频是否需要在一定时间内到达您的代码转换器?如果是这样,你的时间窗口是什么?第二,单个压缩流占用多少带宽?

最后,请记住,您可以使用LACP将以太网连接与两个或多个NIC捆绑在一起,这样,如果您发现自己受到单个GigE连接的限制,您的服务器可能会输出更多数据。与您的网络管理员联系,看看是否可能......

编辑参与讨论的讨论:

所以你有大约30毫秒的时间来发送单帧的数据....只是为了帮助你预算,如果不包括转码延迟,请务必从1/30的数字中减去它们...有了那种时机,我会保持一个恒定的TCP套接字打开,只是通过相同的TCP套接字逐步发送文件...这将减少TCP建立和拆除的开销...你甚至可以使用普通FTP工作...只是在视频程序结束之前不要关闭FTP会话...配置交换机和主机使用巨型帧(超过1522字节的以太网MTU,包括头,crc,和vlan标签...)可以减少文件传输数量的几毫秒,但jumbos的管理开销可能很痛苦...例如当有人升级交换机或路由器时,他们经常忘记检查供应商接口支持对于jumbos来说......复杂化的问题是供应商销售代表谁“做出保证mptions“关于他们的巨型帧支持。