首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >FFMPEG输出到多个rtmp并同步它们

FFMPEG输出到多个rtmp并同步它们
EN

Stack Overflow用户
提问于 2020-05-26 15:02:54
回答 1查看 921关注 0票数 0

假设我有一个视频,我使用过滤器来裁剪它们,比如1/2和1/2宽到2 rtmp输出流。

现在有两个客户将订阅这些流,比如说

vlc1 - vlc2 -vlc1 1-vlc1 2

如何同步它们同时播放(我总是看到一个客户端播放速度比其他客户端快或慢)

这是代码

代码语言:javascript
运行
复制
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问题,每次迭代和过滤都会产生一定的延迟。

从现在开始,我唯一的解决办法就是

  1. 播放原始文件(带循环)并输出到rtmp流
  2. 创建2流,该流读取原始流,进行裁剪,然后输出2 rtmp流

代码语言:javascript
运行
复制
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
EN

回答 1

Stack Overflow用户

发布于 2020-05-26 16:34:23

RTMP没有同步特性。您需要开发一个带外时间系统,播放机也可以同步(可能是NTP),并在初始的RTMP onMedatata脚本标记中添加流启动时间。然后,您需要修改VLC源代码来读取标记并正确解析时间戳。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62025199

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档