使用 RTMP 直播有什么降低延迟的好办法吗?

2020-07-05 18:09:15 +08:00
 RicardoY

现在是想搞一个方案,解决一下 vtb 线上多人联动的时候,只有自己的虚拟形象可以动,联动对象的虚拟形象没法动的问题。

初步的想法是在主播把纯立绘的视频流推到 RTMP server 上,然后其他人分别订阅这个流,在 obs 里面混合一下,推到直播服务器上。

之前进行了一下简单的测试,在使用 obs 进行推流(码率 8000kbps,GOP 设置为 1s,preset=ultrafast,profile=baseline,tune=zerolatency,缓冲大小为 0), ffplay 作为播放器(不使用 buffer)的情况下,延迟大概在 800ms 左右,网络环境是(北京电信->腾讯云北京->北京电信)

请问有什么可以把延迟降低到 200ms 一下的办法吗,同时还希望网络情况波动的时候不要出现太过严重的卡顿情况。

3382 次点击
所在节点    程序员
6 条回复
liuxu
2020-07-05 18:23:15 +08:00
低延迟用 webrtc 方案
zhs227
2020-07-05 19:21:08 +08:00
都用上 RTMP 了,还怎么降低延迟。TCP 方案是没办法降低延迟的,只会增加延迟。
选 WebRTC 靠谱一点。编码和解码环节其实都会引入一帧以上的延迟,200ms 还是一个过于理想的值,屏到屏只有网络好的情况下才能达到。GOP 值太小,建议设为 2S 或 3S,1S 会造成传送的速率过高。
8000kbps 有点过高,你这个测试是不经过 CDN 的,如果是订阅的人多于一台机器带宽的承载量,必然要引入 CDN 分发,也会加入延迟。
图形传送基于分组域的解决方案,除非传送的数据量特别少,或者只走局域网,否则基本上没啥办法做到百毫秒级别的延迟。
hanguofu
2020-07-05 20:41:47 +08:00
直接购买 tx 的推送服务可以满足要求吗?
piaoliangkb
2020-08-23 17:22:04 +08:00
请问 rtmp server + ffplay 是如何测出延迟的呀?
RicardoY
2020-08-23 20:44:48 +08:00
@piaoliangkb 我整的很简单 推一个带毫秒时钟的流 然后截图看时间差
piaoliangkb
2020-08-23 22:40:24 +08:00
@RicardoY 谢谢哈~我也去尝试下

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/687344

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX