假设我有一个视频,我使用过滤器来裁剪它们,比如1/2和1/2宽到2 rtmp输出流。
现在有两个客户将订阅这些流,比如说
vlc1 - vlc2 -vlc1 1-vlc1 2
如何同步它们同时播放(我总是看到一个客户端播放速度比其他客户端快或慢)
这是代码
ffmpeg -re -stream_loop -1 -i sample.mp4 \
-filter:v "crop=in_w/2:in_h:0:0" -c:a copy -f flv rtmp://localhost/live/1 \
-filter:v "crop=in_w/2:in_h:in_w/2:0" -c:a copy -f flv rtmp://localhost/live/2
Gotcha1
发现问题是stream_loop问题,每次迭代和过滤都会产生一定的延迟。
从现在开始,我唯一的解决办法就是
。
ffmpeg -i rtmp://localhost/live/feed -filter:v crop=in_w/2:in_h:0:0 -c:a copy -f flv rtmp://localhost/live/1
ffmpeg -i rtmp://localhost/live/feed -filter:v crop=in_w/2:in_h:in_w/2:0 -c:a copy -f flv rtmp://localhost/live/2
发布于 2020-05-26 16:34:23
RTMP没有同步特性。您需要开发一个带外时间系统,播放机也可以同步(可能是NTP),并在初始的RTMP onMedatata脚本标记中添加流启动时间。然后,您需要修改VLC源代码来读取标记并正确解析时间戳。
https://stackoverflow.com/questions/62025199
复制相似问题