当尝试使用以下语法的 ffmpeg 命令连续循环播放视频时:
ffmpeg -re -stream_loop -1 -i abc.mp4 -c copy -f flv rtmps://abc.xyz/.....
我遇到了一个问题,该过程在几个小时后自动终止。错误消息包含以下详细信息:
av_interleaved_write_frame(): Broken pipe
[flv @ 0x55d73001dd00] Failed to update header with correct duration.
[flv @ 0x55d73001dd00] Failed to update header with correct filesize.
Error writing trailer of rtmp://a.rtmp.youtube.com/live2/........................: Broken pipe
frame=1812023 fps= 30 q=-1.0 Lsize= 4902934kB time=16:47:41.10 bitrate= 664.3kbits/s speed= 1x
video:3879605kB audio:944717kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 1.629512%
Conversion failed!
这似乎与预告片写入过程中的“管道损坏”错误有关,并且无法使用正确的持续时间和文件大小更新标题。整体转换失败,多路复用开销为 1.629512%。=
我尝试通过合并 ffmpeg 的重新连接命令选项来解决这个问题,具体来说是使用以下命令:
ffmpeg -stream_loop -1 -re -i abc.mp4 -c copy -f flv -reconnect 1 -reconnect_streamed 1 -reconnect_delay_max 2 rtmps://abc.xyz/......
然而,尽管包含了-reconnect 1、-reconnect_streamed 1和-reconnect_delay_max 2等重新连接命令,错误仍然存在,并且几个小时后自动终止的问题仍未解决。
我怀疑该问题可能与网络问题有关。虽然我已经包含了重新连接命令来解决这个问题,但我还没有找到成功的解决方案。如果能帮助我了解这个问题的根本原因以及任何建议的解决方案,我将不胜感激。