我正在使用以下管道进行直播,我能够找到大约 30-35 秒的端到端延迟,有没有办法可以识别每个组件的延迟,例如 MediaLive 的延迟和 MediaPackage 的延迟?
OBS (Open broadcast) --RTMP--> MediaLive --HLS-> MediaPackage --HLS--> Cloudfront -> video.js player
我正在使用以下管道进行直播,我能够找到大约 30-35 秒的端到端延迟,有没有办法可以识别每个组件的延迟,例如 MediaLive 的延迟和 MediaPackage 的延迟?
OBS (Open broadcast) --RTMP--> MediaLive --HLS-> MediaPackage --HLS--> Cloudfront -> video.js player
延迟无处不在,因此找出哪些组件引入了延迟非常重要。但是,每个组件都会引入一段延迟:
我猜你系统的最小延迟大约是 5~10 秒。其中编码器耗时0.8s,RTMP为1s,HLS为1~3s,CDN为1~3s左右,播放器为1~3s。请通过下面的一些工具进行检查。
使用在线秒表或其他类似的小工具,然后使用OBS窗口捕获来捕获直播中的秒表,并播放MediaLive的RTMP / HLS流和cloudfront的HLS,您将获得每个系统的延迟。
你也可以用FFmpeg代替OBS发布RTMP流,用过滤器显示时间戳,请阅读SRS#2742。
请使用 ffplay、flv.js、hls.js 播放流,切勿使用本身具有巨大延迟的VLC 。
找到延迟后有一些提示:
请永远不要应用这些设置,除非您指出引入延迟的位置。