V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
RicardoY
V2EX  ›  程序员

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

  •  
  •   RicardoY · Jul 5, 2020 · 3939 views
    This topic created in 2134 days ago, the information mentioned may be changed or developed.

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

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

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

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

    6 replies    2020-08-23 22:40:24 +08:00
    liuxu
        1
    liuxu  
       Jul 5, 2020   ❤️ 1
    低延迟用 webrtc 方案
    zhs227
        2
    zhs227  
       Jul 5, 2020   ❤️ 3
    都用上 RTMP 了,还怎么降低延迟。TCP 方案是没办法降低延迟的,只会增加延迟。
    选 WebRTC 靠谱一点。编码和解码环节其实都会引入一帧以上的延迟,200ms 还是一个过于理想的值,屏到屏只有网络好的情况下才能达到。GOP 值太小,建议设为 2S 或 3S,1S 会造成传送的速率过高。
    8000kbps 有点过高,你这个测试是不经过 CDN 的,如果是订阅的人多于一台机器带宽的承载量,必然要引入 CDN 分发,也会加入延迟。
    图形传送基于分组域的解决方案,除非传送的数据量特别少,或者只走局域网,否则基本上没啥办法做到百毫秒级别的延迟。
    hanguofu
        3
    hanguofu  
       Jul 5, 2020 via Android
    直接购买 tx 的推送服务可以满足要求吗?
    piaoliangkb
        4
    piaoliangkb  
       Aug 23, 2020
    请问 rtmp server + ffplay 是如何测出延迟的呀?
    RicardoY
        5
    RicardoY  
    OP
       Aug 23, 2020 via iPhone
    @piaoliangkb 我整的很简单 推一个带毫秒时钟的流 然后截图看时间差
    piaoliangkb
        6
    piaoliangkb  
       Aug 23, 2020
    @RicardoY 谢谢哈~我也去尝试下
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2751 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 15:36 · PVG 23:36 · LAX 08:36 · JFK 11:36
    ♥ Do have faith in what you're doing.