我无法使用ffmpeg在视频上叠加和居中视频。输出为0秒长

时间:2015-07-08 06:13:49

标签: ffmpeg

我想要mp4覆盖jpeg。我正在使用的命令是:

Ffmpeg -y -i background.jpg -i video.mp4 -filter_complex "overlay=(main_w-overlay_w)/2:(main_h-overlay_h)/2" -codec:a copy output.mp4

但由于某种原因,输出长度为0秒,但缩略图确实会以正确的图像为中心显示视频的第一帧。

我尝试使用-t 4将输出的长度设置为4秒,但这不起作用。

我在Windows上这样做。

2 个答案:

答案 0 :(得分:2)

您需要循环图像。由于它无限循环,因此您必须使用shortest中的overlay选项,以便在video.mp4结束时结束。

ffmpeg -loop 1 -i background.jpg -i video.mp4 -filter_complex \
"overlay=(main_w-overlay_w)/2:(main_h-overlay_h)/2:shortest=1" \
-codec:a copy -movflags +faststart output.mp4

有关详细信息,请参阅overlay documentation

答案 1 :(得分:0)

你应该将图像循环到视频持续时间。因此,您需要在输入图像之前添加-loop 1。然后图像将具有无限持续时间。因此,为了控制它,在输出文件之前指定-shortest,这将把所有流修剪为它们中的最短持续时间。否则,您可以使用-t将图像持续时间修剪为视频长度。这将做你想要的。

希望这有帮助!