首页 > 解决方案 > ffmpeg 循环不工作在第一次循环后不断丢帧

问题描述

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

[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 中播放儿童歌曲(儿童广播项目))

提前致谢!

标签: ubuntuffmpegraspberry-pidebianraspberry-pi3

解决方案


利用

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设置标志。


推荐阅读