我使用下面的管道进行直播,我能够找到大约 30-35 秒的端到端延迟,有没有办法可以识别每个组件的延迟,例如 MediaLive 的延迟和 MediaPackage 的延迟?
OBS (Open broadcast) --RTMP--> MediaLive --HLS-> MediaPackage --HLS--> Cloudfront -> video.js player
延迟无处不在,因此找出哪些组件引入了延迟非常重要。然而,每个组件都会引入一段延迟:
我猜你的系统的最小延迟大约是5~10s。其中编码器需要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,它本身就有很大的延迟。
发现延迟后有一些提示:
请永远不要应用这些设置,除非您找出引入延迟的位置。