我正在尝试使用 ffmpeg 使用叠加过滤器在不同的开始时间组合多个视频文件。
当我在没有任何音频的情况下这样做时,生成的结果是正确的。
当我使用 amix 添加音频过滤器元素以包含来自各种叠加视频的音频时,ffmpeg 开始发出此类错误:
[Parsed_overlay_4 @ 0x305ec40] [framesync @ 0x305ed68] Buffer queue overflow, dropping.
Run Code Online (Sandbox Code Playgroud)
避免这种情况的任何帮助,或替代方法:
将不胜感激。
我已经尝试了很多 setpts/asetpts/amerge/pan 的组合,但无法使其正常工作。
这是我的 ffmpeg 命令行和导致错误的情况的输出(覆盖 y= 中的 if 子句是导致覆盖的剪辑在播放时滚动视频):
ffmpeg -y \
-i /wintmp/vid/butterfly_base.mp4 \
-i /wintmp/vid/party_overlay.mp4 \
-i /wintmp/vid/car_overlay.mp4 \
-pix_fmt yuv420p -r 30000/1001 -filter_complex " [1:v] setpts=PTS-STARTPTS+2/TB [v1] ; [0:v] [v1] overlay=x=50:y='if( gte(t,2), H-(t-2)*128, NAN)' [o1] ; [2:v] setpts=PTS-STARTPTS+3/TB,scale=width=320:height=240 [v2] ; [o1] [v2] overlay=x=100:y='if( gte(t,3), H-(t-3)*102.4, NAN)' [outv] ; [1:a] adelay=2000|2000 [a1] ; [2:a] …Run Code Online (Sandbox Code Playgroud)