我想要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上这样做。
答案 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
将图像持续时间修剪为视频长度。这将做你想要的。
希望这有帮助!