FFmpeg幻灯片+音频+水印+保持宽高比

时间:2016-01-16 12:59:59

标签: ffmpeg overlay watermark aspect-ratio pad

我试图从一些图片和现有的mp3(复制)制作幻灯片。图片尺寸不同,但我希望视频输出为16:9宽高比和3840x2160。我也想要一个水印。重要的是图片不会被拉伸。

我试过这段代码......

ffmpeg -y -framerate 1/1.5 -i "pics/%03d.jpg" -i audio.mp3 -c:v libx264 -r 24 -preset veryfast -tune stillimage -c:a copy -pix_fmt yuv420p -aspect 16:9 -filter_complex "scale=iw*min(3840/iw\,2160/ih):ih*min(3840/iw\,2160/ih),pad=3840:2160:(3840-iw)/2:(2160-ih)/2, movie=watermark.png [watermark]; [in][watermark] overlay=main_w-overlay_w-10:main_h-overlay_h-10 [out]" vid.mkv

但它给了我这个错误:

  

[AVFilterGraph @ 0x2d21480]为"电影"指定的输入太多   过滤。初始化复杂过滤器时出错。参数无效

我能够成功制作带有图片,音频和水印的幻灯片;但是,如果不让图片拉伸,我无法考虑宽高比。

如果有所不同,输出视频将上传到YouTube。

1 个答案:

答案 0 :(得分:1)

您可以删除方面标志。由于您的过滤器输出为3840x2160(即16:9),因此您不需要它。您的缩放滤镜适用于不同比例的图像。

这里有一个完整的命令供您尝试:

ffmpeg -y -framerate 2/3 -i "pics/%03d.jpg" -i audio.mp3 -loop 1 -i watermark.png
-filter_complex
 "[0:v]scale=iw*min(3840/iw\,2160/ih):ih*min(3840/iw\,2160/ih),
 pad=3840:2160:(3840-iw)/2:(2160-ih)/2[ss];
 [ss][2:v] overlay=main_w-overlay_w-10:main_h-overlay_h-10:shortest=1[out]"
 -map "[out]" -map 1:a
 -c:v libx264 -r 24 -preset veryfast -tune stillimage -pix_fmt yuv420p
 -c:a copy
vid.mkv