go!go!go!
全部博文(188)
分类: 服务器与存储
2023-03-01 14:24:10
我有一个ffmpeg进程正在运行:
ffmpeg -i rtmp://127.0.0.1/main/stream1 -c copy rtmp://127.0.0.1/distribute/stream1
如果此过程由于输入关闭而中断,我将运行类似的命令以从备份中提取输入:
ffmpeg -i rtmp://127.0.0.1/backup/stream1 -c copy rtmp://127.0.0.1/distribute/stream1
从分发应用程序中,我流式传输到外部输出。
这里唯一的问题是,在切换后我得到了非单调的DTS错误,因此在从分发流到我的输出时,我不得不添加一些标志。命令为:
ffmpeg -fflags +genpts+igndts+ignidx -avoid_negative_ts make_zero -use_wallclock_as_timestamps 1 -i rtmp://127.0.0.1/distribute/stream1 -c:v libx264 -preset veryfast -r 25 -g 50 -c:a aac -b:a 128k -f flv $RTMP_ENDPOINT
我注意到在切换时在ffmpeg进程中会收到一些警告,如果主流和备用流使用不同的x264配置文件进入,则假设其中一个处于"高"状态,另一个处于"基准"或"主"状态。
来源: