ffmpeg 命令生成永不停止

ffmpeg 命令生成永不停止

我正在视频上叠加 2 个系列图像,但命令从未停止执行,直到 II 强制停止进程我的命令如下

    ffmpeg -y -i vid.mp4 -loop 1 -i img_%d.png -loop 1 -i img1_%d.png -strict -2 -filter_complex "[0:v][1:v]overlay=0:0 [tmp];[tmp][2:v] overlay=50:50:shortest=1:enable='between(t,1,5)'"-codec:a copy out.mp4

我不明白命令中的错误在哪里它只是永远运行假设我给出 3 分钟的视频作为输入然后命令输出在 3 分钟后显示长度比如 4 分钟或更长并且永不停止执行

答案1

您需要添加shortest=1到您的第一个覆盖,因为[1:v]由于使用而具有无限的持续时间-loop 1

ffmpeg -y -i vid.mp4 -loop 1 -i img_%d.png -loop 1 -i img1_%d.png -filter_complex \
"[0:v][1:v]overlay=shortest=1[tmp]; \
 [tmp][2:v]overlay=50:50:shortest=1:enable='between(t,1,5)',format=yuv420p" \
-codec:a copy out.mp4
  • 我从你的第一个覆盖中删除了它,因为这些是和位置0:0的默认值。xy

  • 我将其删除,-strict -2因为我看不到这里使用实验编码器。

  • format=yuv420p在过滤器图的末尾添加了内容,以确保 H.264 输出使用 YUV 4:2:0 色度子采样,这样它就可以在 QuickTime、WMP 和其他残缺的播放器中播放。

相关内容