【问题标题】:How to render a watermark with transparency into a video如何将具有透明度的水印渲染到视频中
【发布时间】:2013-06-28 22:10:17
【问题描述】:

我正在尝试将水印渲染到视频中。当水印的图像文件 (.png) 包含透明度时,图像不再呈现到视频中。如果我将该图像转换为 .jpg 并返回 .png 效果很好。如果我创建一个没有透明度的新 png,它也可以工作。但是当我添加例如该图像的图层不透明度不再呈现。

我将 avconv 0.8.6-4:0.8.6-0ubuntu0.12.04.1 与以下命令一起使用

avconv -y -i video.mp4 -f 'movie=watermark.png [watermark]; [in][watermark] overlay=10:10 [out]' -c:v libx264 -t 255 -strict experimental out.mp4

如果我使用 .gif 作为水印,我会得到图像,但它都是不透明的。

有什么线索吗?

【问题讨论】:

    标签: transparency opacity watermark avconv


    【解决方案1】:

    我使用了透明的 png 图像,它对我有用。现在我可以看到视频中水印背后的场景,因为 png 水印图像是透明的。 所以只需通过 Photoshop 编辑图像并在图像中添加 50% 的不透明度(或您想要的任何值)。

    【讨论】:

      【解决方案2】:

      如果您碰巧使用的是 ffmpeg-1.2 而不是 avconv 那么该命令是相当 简单:

      ffmpeg -i source.mp4 -i logo.png -filter_complex 'overlay' -strict -2 outputmovie.mp4
      

      这对我来说效果很好,透明度被烘焙到 logo.png 文件中。只要确保那里有一个阿尔法。这也假设logo.png 文件与参考材料的大小相同。

      【讨论】:

        【解决方案3】:

        这就是我设法在 avconv 版本 0.8.6-6:0.8.6-1ubuntu2 的 mp4 文件(左上角)上添加水印的方法。

        avconv -y -i source.mp4 -vf "movie=watermark.png [watermark]; [in][watermark] overlay=10:10 [out]" -c:v libx264 target.mp4
        

        希望对某人有所帮助。

        【讨论】:

        • 如果你得到 Unknown encoder ‘libx264′ 错误,这是解决方法。 apt-get install libavcodec-extra-53
        【解决方案4】:

        我的问题的答案很简单,虽然我花了一天时间才找到它。

        我的 Ubuntu 发行版存储库附带的“正常”ffmpeg 抱怨“c:v libx264”参数。 avconv 知道那个参数但是有问题;它只是不呈现透明图像。

        解决方案就像安装最新的 ffmpeg 版本一样简单(我选择了静态版本)。现在它就像一个魅力。 :)

        【讨论】:

        • 是的,ubuntu不再自带ffmpeg,而是自带avconv,不太一样。
        猜你喜欢
        • 2017-01-05
        • 2014-07-28
        • 2014-08-12
        • 1970-01-01
        • 2011-04-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多