ffmpeg 循环不工作在第一次循环后不断丢帧

ffmpeg loop not working keeps dropping frames after first loop

我确实尝试让它工作,但遇到了这个错误,我是这个宇宙的新手,所以我正在寻求帮助。 (在第一个循环后丢帧(因为时间戳会突然回到过去)。)

[flv @ 0x117a2f0] Video codec rawvideo not compatible with flv
    Could not write header for output file #0 (incorrect codec parameters ?): Function not implemented

现在我的代码在尝试循环时,它在第一次循环后停止,丢帧...

ffmpeg -f alsa -i default -f lavfi -re -fflags +genpts -i "movie=/home/pi/Documents/Youtube/video.mp4:loop=0, setpts=N/(FRAME_RATE*TB)" -c:v copy -c:a aac -f flv -max_muxing_queue_size 400 rtmp://a.rtmp.youtube.com/live2/pfjd-jhjs-k3td-XXXX

我在尝试修复循环问题但没有其他错误之前使用的代码是:

ffmpeg -re -stream_loop -1 -f alsa -i default -i /home/pi/Documents/Youtube/video.mp4 -c:v copy -c:a aac -f flv -max_muxing_queue_size 400 rtmp://a.rtmp.youtube.com/live2/pfjd-jhjs-k3td-XXXX

任何人都可以帮助我让它循环播放吗? PS:我正在流式传输视频文件与桌面音频的组合(因为我在 QMMP 中播放儿童歌曲(儿童广播项目))

提前致谢!

使用

ffmpeg -re -f alsa -i default -re -stream_loop -1 -i "/home/pi/Documents/Youtube/video.mp4" -c:v copy -c:a aac -f flv -max_muxing_queue_size 400 rtmp://a.rtmp.youtube.com/live2/pfjd-jhjs-k3td-XXXX

stream_loop 最近有一个错误,所以请使用 ffmpeg 4.1 或更新版本。 lavfi设备只会输出解码后的帧,所以你需要直接使用输入文件来避免重新编码。

对于实时流,所有输入都应设置 -re 标志。

将带有桌面音频的文件循环流式传输到 YouTube 是可行的。感谢大家!

ffmpeg -re -f alsa -i default -re -stream_loop -1 -i "/home/pi/Documents/Youtube/video720p.mp4" -c:v copy -c:a aac -f flv -max_muxing_queue_size 400 rtmp://a.rtmp.youtube.com/live2/pfjd-jhjs-k3td-xxxx

ffmpeg 版本 4.1,如果您有较旧的 ffmpeg 版本,循环命令可能无法运行...