【问题标题】:FFmpeg - How to scale a video then apply a watermark?FFmpeg - 如何缩放视频然后应用水印?
【发布时间】:2012-06-11 15:52:30
【问题描述】:

我正在尝试缩放视频,使其始终为 512 宽,其中高度与原始视频成比例变化。 缩放后,我想对视频应用水印/叠加层,因此视频会缩放,但水印不会。

我可以使用以下过滤器分别实现这些:

缩放

-vf "scale=512:-1"

水印

-vf "movie=watermark.png [watermark]; [in][watermark] overlay=(main_w-overlay_w)/2:(main_h-overlay_h)/2 [out]"

他们自己成功地工作。

但是,当尝试将两者结合起来时,我遇到了一些麻烦。

将两者都作为参数当然是行不通的,因为一个会覆盖另一个。

我试过了:

-vf "scale=512:-1,movie=watermark.png [watermark]; [in][watermark] overlay=(main_w-overlay_w)/2:(main_h-overlay_h)/2 [out]"

我的想法是先应用比例然后再应用水印,但我得到的只是一个错误

为“电影”过滤器指定的输入过多。

打开过滤器时出错!

然后将 , 更改为 ;结果:

简单的filtergraph 'scale=512:-1; 电影=水印.png [水印]; [在][水印] overlay=(main_w-overlay_w)/2:(main_h-overlay_h)/2 [out]' 没有 一个输入和一个输出。

打开过滤器时出错!

我认为我需要对过滤器链做更多的事情,但我很难弄清楚。

有什么想法吗?

非常感谢。

【问题讨论】:

  • 与编程无关 - 试试superuser.com ?
  • 我认为最好先缩放水印图像,然后在缩放视频中应用它。你可以尝试在两个进程之间做一个管道。

标签: filter ffmpeg overlay scale watermark


【解决方案1】:

您可以将-filter_complex 选项与比例和叠加过滤器一起使用:

ffmpeg -i input.mp4 -i logo.png -filter_complex "[0:v]scale=512:-1[bg];[bg][1:v]overlay=(main_w-overlay_w)/2:(main_h-overlay_h)/2" output
  • 有关详细信息,请参阅 scaleoverlay 过滤器文档。
  • 不需要像其他示例中那样使用movie 源过滤器。
  • 如果你想stream copy(重新复用)原始音频而不是重新编码,你可以添加-c:a copy。如果您的输入和输出容器格式相同,这将非常有用。
  • 该示例将徽标放置在中心。对于其他放置选项:
    • 左上角 10 px 内边距:overlay=10:10
    • 右上方,10 px 填充:overlay=W-w-10:10
    • 右下角,10 px 填充:overlay=W-w-10:H-h-10
    • 左下角 10 px 填充:overlay=H-h-10:10

【讨论】:

    【解决方案2】:

    感谢@DiJuMx 和@LordNeckbeard,你们让我更接近我的解决方案。我还没有尝试过 filter_complex 选项,但它看起来确实更简单。

    我发现可行的解决方案是:

    -vf "movie=watermark.png [watermark]; [in]scale=512:trunc(ow/a/2)*2 [scale]; [scale][watermark] overlay=(main_w-overlay_w)/2:(main_h-overlay_h)/2 [out]"
    

    请注意,我已经替换了比例尺中的 -1,因为这可能会在缩放时导致视频高度中的像素数不均匀,从而导致编码错误。

    【讨论】:

      【解决方案3】:

      据我了解,这可能有效:

      -vf "movie=watermark.png [watermark]; [in] scale=512:-1,[watermark] overlay=(main_w-overlay_w)/2:(main_h-overlay_h)/2 [out]"
      

      您将比例过滤器应用于输入“[in]”。

      不幸的是,我对 ffmpeg 上的过滤器没有太多经验,所以我无法提供进一步的帮助。对不起

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-11-17
        • 1970-01-01
        • 2023-02-16
        • 2021-03-23
        • 2017-04-04
        相关资源
        最近更新 更多