【问题标题】:Identity per component latency on livestream services直播服务上每个组件的身份延迟
【发布时间】:2022-01-14 10:45:52
【问题描述】:

我正在使用以下管道进行直播,我能够找到大约 30-35 秒的端到端延迟,有没有办法可以识别每个组件的延迟,例如 MediaLive 的延迟和 MediaPackage 的延迟?

OBS (Open broadcast) --RTMP--> MediaLive --HLS-> MediaPackage --HLS--> Cloudfront -> video.js player

【问题讨论】:

    标签: ffmpeg http-live-streaming live-streaming aws-media-live aws-mediapackage


    【解决方案1】:

    延迟无处不在,因此找出导致延迟的组件非常重要。但是,每个组件都会引入一段延迟:

    • RTMP:网络正常的情况下,延迟约1s。
    • HLS:延迟约为 3~5s,取决于 ts 持续时间。

    我猜你系统的最小延迟大约是 5~10 秒。其中编码器耗时0.8s,RTMP为1s,HLS为1~3s,CDN为1~3s左右,播放器为1~3s。请通过下面的一些工具进行检查。

    使用online stopwatch或其他类似的小工具,然后使用OBS窗口捕捉来捕捉直播中的秒表,并播放MediaLive的RTMP/HLS流和cloudfront的HLS,你会得到每个系统的延迟。

    也可以用FFmpeg代替OBS发布RTMP流,带过滤器显示时间戳,请阅读SRS#2742

    请使用 ffplay、flv.js、hls.js 播放流,切勿使用 VLC,它本身有很大的延迟。

    找到延迟后有一些提示:

    • 对于 RTMP 服务器,禁用 gop 缓存。
    • 对于 HLS,使用较小的 ts 持续时间,例如 1~2s。
    • 对于编码器 (OBS),使用 Main 或 Baseline,使用较小的 gop 1,并使用零延迟进行调整。
    • 如果可能的话,使用WebRTC来传递流,延迟大约是200ms。

    从不应用这些设置,除非您指出延迟的来源。

    【讨论】:

      猜你喜欢
      • 2016-05-05
      • 2013-03-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-20
      • 2014-05-01
      • 2015-10-10
      相关资源
      最近更新 更多