我想在两个 Linux 服务器之间传输视频数据。
它们彼此相距较远,发送方的上行链路约为 20MBps(基于 iperf3)。
然而,我希望突破一些 ISP 限制:
第一次试运行:
server:~# iperf3 -s
client:~# iperf3 -c SERVERIP -R
... measuring...
[ 4] 0.00-30.00 sec 21.8 MBytes 6.09 Mbits/sec receiver
6.09MBits/sec 远低于 ISP 的评级,因此我尝试使用 iperf 建立并行连接进行第二次测试运行:
server:~# iperf3 -s
client:~# iperf3 -c SERVERIP -R -P 8
... measuring...
[SUM] 0.00-30.00 sec 71.9 MBytes 20.1 Mbits/sec receiver
很好,20MBits/sec 接近最大带宽。
使用 20MBits/sec 平均带宽流式传输视频基本上可以得到高质量的视频,而使用 6MBps 带宽流式传输视频则质量差很多。
如果视频播放器和流媒体服务器无法并行播放流媒体,我有什么选择吗,比如反向代理、vpn,或者任何可以将一个连接隧道化为多个连接的东西,就像怎么iperf -P 8
做的那样?
答案1
我可以直接确认,multicat
与aggregartp
和的组合reordertp
(来自 VLC 的制造商 VideoLAN)可以在这里找到即使对于广播质量的流也能满足您的需要。
- 为单个组合 RTP 流创建多个
aggregartp
/流链接reordertp
- 使用
multicat
(或任何你想要的)将您的流输入到aggregartp
也就是说,为了让事情变得简单,您可能需要重新考虑:在编码器端调整所有内容可能会将非常优质的流放入 6Mbit/s(据我所知,这是 Netflix 的最高设置!)然后就完成了。