FFMPEG > 以静止图像结束视频



这是我使用的命令:

ffmpeg -loop 1 -i image.png -i test.mp3 -ignore_loop 0 -i waves_hori.png -filter_complex "overlay=2:H-200" -c:a copy -c:v h264 -shortest -y test.mp4

是否可以添加一个5秒的结束图像?

您可以通过使用管道自动执行此操作,而不必获取音频持续时间和减去时间。

ffmpeg -loop 1 -i background.png -i audio.mp3 -i overlay.png -filter_complex "overlay=2:H-200=format=auto,format=yuv420p" -c:v rawvideo -c:a pcm_s16le -shortest -f matroska - | ffmpeg -y -ss 5 -an -i - -loop 1 -t 5 -i end.jpg -i test.mp3 -filter_complex "[0][1]concat=n=2:v=1:a=0" -shortest output.mp4

为什么是两个命令和一个管道?

  1. 第一个ffmpeg命令与原始命令相似,但输出给了另一个ffmpeg。这允许您利用-shortest自动使视频与音频持续时间相匹配。

  2. 第二个ffmpeg命令从上一个命令中获取视频,跳过视频的开头5秒,然后使用concat滤波器将5秒的图像连接到视频。

  3. 使用管道可以避免临时文件和生成丢失。

end.jpg必须与background.png具有相同的宽度、高度和纵横比才能正确连接。如果不是,则添加缩放、缩放基准、裁剪或填充过滤器。

最新更新