【问题标题】:ffmpeg creating gif from images, add watermark during creation?ffmpeg从图像创建gif,在创建过程中添加水印?
【发布时间】:2017-07-28 03:14:43
【问题描述】:

我正在成功地从一系列静态 png 中创建动画。我也想添加水印,但是在尝试添加水印来源时遇到了一些问题。

使用它可以很好地生成动画:

ffmpeg -v warning -framerate 4 -i /tmp/img-%d.png -i /tmp/img-palette.png -lavfi "paletteuse" -y -loop 0 -vcodec libx264 -crf 25 -pix_fmt yuv420p -hide_banner /tmp/output.mp4

当我添加以下内容以指定水印来源(透明 png)时,会生成错误:

-i /tmp/logo.png -filter_complex "overlay=x=(main_w-100):(main_h-50)"

完整命令:

ffmpeg -v warning -framerate 4 -i /tmp/logo.png -filter_complex "overlay=x=(main_w-100):(main_h-50)" -i /tmp/img-%d.png -i /tmp/img-palette.png -lavfi "paletteuse" -y -loop 0 -vcodec libx264 -crf 25 -pix_fmt yuv420p -hide_banner /tmp/output.mp4

错误:

video:1kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown

我需要先生成动画,然后将水印应用到该工件上,还是有办法在创建过程中将所有内容组合在一起?

【问题讨论】:

    标签: ffmpeg watermark


    【解决方案1】:

    使用

    ffmpeg -v warning -framerate 4 -i /tmp/img-%d.png -i /tmp/img-palette.png -i /tmp/logo.png -filter_complex "[0][2]overlay=x=(main_w-100):(main_h-50)[v];[v][1]paletteuse" -y -vcodec libx264 -crf 25 -pix_fmt yuv420p -hide_banner /tmp/output.mp4
    

    预先指定所有输入。您只能指定一个 filter_complex。 -lavfifilter_complex 的别名。

    【讨论】:

    • 谢谢@mulvya。你能分解一下“[0][2]overlay=x=(main_w-100):(main_h-50)[v];[v][1]paletteuse”中发生的事情吗?
    • [0][2]overlay --> 将第三个输入覆盖在第一个上。 ..[v] --> 标记此输出 v[v][1] --> 使用第二个输入修改覆盖输出。尽管我看到您正在生成 MP4,而不是 GIF。你不需要调色板。
    • 好吧,这是有道理的。是的,我将调色板留在了他们的位置,因为根据用户界面选择使用相同的命令。
    猜你喜欢
    • 1970-01-01
    • 2016-10-18
    • 2011-08-27
    • 2020-06-06
    • 2010-11-14
    • 2014-07-18
    • 1970-01-01
    • 2011-02-16
    • 1970-01-01
    相关资源
    最近更新 更多