【问题标题】:FFmpeg Slideshow + Audio + Watermark + Maintain Aspect RatioFFmpeg幻灯片+音频+水印+保持纵横比
【发布时间】:2016-04-22 00:02:02
【问题描述】:

我正在尝试将一些图片与现有的 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。

【问题讨论】:

    标签: ffmpeg overlay watermark aspect-ratio pad


    【解决方案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
    

    【讨论】:

    • 谢谢,但出于某种原因,控制台会无限循环地显示frame= 3 fps=0.0 q=0.0 size= 1kB time=00:00:00.00 bitrate=N/A speed=。我不知道我的某些图片的宽度/高度不能被 2 整除(例如 1327x177)是否会有所不同?
    • 当我尝试几乎相同的事情但使用 -vf 且没有最终输出标签时,视频仅保存音频(无图片/水印):ffmpeg -y -framerate 2/3 -i "pics/%03d.jpg" -i audio.mp3 -i watermark.png -vf "[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[out]" -map 1:a -c:v libx264 -r 24 -preset veryfast -tune stillimage -pix_fmt yuv420p -c:a copy vid.mkv
    • vf 仅适用于单个视频输入,但叠加层接受两个输入。奇数维度也不是问题,因为发送到编码器的帧是填充的 3840x2160 流。您的其中一张图片可能已损坏吗?运行添加了-report 的命令并粘贴生成的日志文件的内容。
    • 报告结果太大,无法在我的问题中发布,因此我将它们放在 jsfiddle 上。请注意,有两行我删除了实例。这些由 ********* 表示
    • 没有。只是我的约定。
    猜你喜欢
    • 2017-11-21
    • 1970-01-01
    • 2012-01-03
    • 1970-01-01
    • 1970-01-01
    • 2012-03-26
    • 1970-01-01
    • 1970-01-01
    • 2012-08-25
    相关资源
    最近更新 更多