现在是想搞一个方案,解决一下 vtb 线上多人联动的时候,只有自己的虚拟形象可以动,联动对象的虚拟形象没法动的问题。
初步的想法是在主播把纯立绘的视频流推到 RTMP server 上,然后其他人分别订阅这个流,在 obs 里面混合一下,推到直播服务器上。
之前进行了一下简单的测试,在使用 obs 进行推流(码率 8000kbps,GOP 设置为 1s,preset=ultrafast,profile=baseline,tune=zerolatency,缓冲大小为 0), ffplay 作为播放器(不使用 buffer)的情况下,延迟大概在 800ms 左右,网络环境是(北京电信->腾讯云北京->北京电信)
请问有什么可以把延迟降低到 200ms 一下的办法吗,同时还希望网络情况波动的时候不要出现太过严重的卡顿情况。
1
liuxu 2020-07-05 18:23:15 +08:00 1
低延迟用 webrtc 方案
|
2
zhs227 2020-07-05 19:21:08 +08:00 3
都用上 RTMP 了,还怎么降低延迟。TCP 方案是没办法降低延迟的,只会增加延迟。
选 WebRTC 靠谱一点。编码和解码环节其实都会引入一帧以上的延迟,200ms 还是一个过于理想的值,屏到屏只有网络好的情况下才能达到。GOP 值太小,建议设为 2S 或 3S,1S 会造成传送的速率过高。 8000kbps 有点过高,你这个测试是不经过 CDN 的,如果是订阅的人多于一台机器带宽的承载量,必然要引入 CDN 分发,也会加入延迟。 图形传送基于分组域的解决方案,除非传送的数据量特别少,或者只走局域网,否则基本上没啥办法做到百毫秒级别的延迟。 |
3
hanguofu 2020-07-05 20:41:47 +08:00 via Android
直接购买 tx 的推送服务可以满足要求吗?
|
4
piaoliangkb 2020-08-23 17:22:04 +08:00
请问 rtmp server + ffplay 是如何测出延迟的呀?
|
5
RicardoY OP @piaoliangkb 我整的很简单 推一个带毫秒时钟的流 然后截图看时间差
|
6
piaoliangkb 2020-08-23 22:40:24 +08:00
@RicardoY 谢谢哈~我也去尝试下
|