【问题标题】:How to convert two png to transparent webm video with FFMPEG and Xfade如何使用 FFMPEG 和 Xfade 将两个 png 转换为透明 webm 视频
【发布时间】:2021-10-17 08:08:29
【问题描述】:

我有两张透明图片,一张是完全透明的png格式,名字是C0.png,另一张是主图,名字是C1.png。我想用xfade和透明效果叠加两张图片。

我使用了以下命令:

ffmpeg -loop 1 -t 12 -i c0.png -t 12 -loop 1 -i c1.png -filter_complex "[0]format=rgb24,drawbox=thickness=fill,split[black][black2];[black2]negate[white];[black][white]xfade=transition=wipedown:duration=1:offset=0[alf];[0][1]overlay=format=auto[ovr];[ovr][alf]alphamerge[fg];[0][fg]overlay=format=auto:alpha=1,format=yuv420p" -t 12 -pix_fmt yuv420p 1p.webm

但是这样执行后,最终的webm视频会有黑色背景,而我想要的是透明背景的视频。

如何优化,期待您的帮助,谢谢

C0.png https://i.stack.imgur.com/fPuQH.png

C1.png https://i.stack.imgur.com/W9RA6.png

【问题讨论】:

  • 视频透明度由 Alpha 通道定义。您看到的内容取决于玩家如何处理 Alpha 通道。
  • 我使用 iina app 和 chrome 观看视频,会显示相同的黑色背景
  • 在 Chrome 中,当我将任何电影拖到空白页上时,背景总是变黑,因此 alpha/透明度将显示为黑色。话虽如此,您应该将 yuv420p 的两个实例更改为 yuva420p 以适应 Alpha 通道。
  • 我把这个 webm 视频叠加到一个 mp4 上,我可以看到黑色背景
  • 看C0不清楚你想做什么,因为里面似乎根本没有图像。那么为什么要使用它呢?在输入端也有 2 个 -t 12 实例,这是不必要的。此外,即使我们删除format=rgb24,结果也是一样的。请编辑问题以显示您想要的最终结果。根据所附图片,覆盖层似乎根本没有做任何事情。

标签: ffmpeg command imagemagick webm


【解决方案1】:

试试这个:

ffmpeg -loop 1 -i c1.png -filter_complex "nullsrc=size=800x800[bg]; \
[bg][0]xfade=transition=wipedown:duration=1:offset=1,format=yuva420p" \
-c:v libvpx-vp9 -pix_fmt yuva420p -metadata:s:v:0 alpha_mode="1" -t 12 1p.webm

您根本不需要drawbox 过滤器,因为xfade 本身可以进行转换。

此外,您不需要空白图像。相反,对另一个图像使用空源,这里通过nullsrc 过滤器实现。请注意,您必须调整 nullsrc 的大小,以使其与您的图像 c1.png 匹配。在我的示例中,我使用了 800x800 像素的示例/任意大小。我使用了 1 秒的 offset。因此,擦除会在视频开始后 1 秒开始。

你可以选择任何你喜欢的。

您确实需要格式为 yuva420p,因为 a 代表 alpha 通道。同样对于 webm,您似乎需要声明 -metadata:s:v:0 alpha_mode="1" 以使结果具有 alpha。

请注意,在 Chrome 中,只要我拖动视频,整个画布就会变黑,因此即使是透明背景也会显示为黑色。如果您通过 ffprobe 或 ffmpeg 查询,您的视频会报告“Alphamode : 1”。

drawbox 滤镜使用fill 绘制纯黑色,肯定会使其不透明,因为它会覆盖 Alpha 通道。无论如何,你想做的事情根本不需要它。

以上代码在 bash 4.4 和 ffmpeg 4.4 版本上测试,完美运行。

【讨论】:

    猜你喜欢
    • 2016-04-30
    • 1970-01-01
    • 1970-01-01
    • 2021-12-02
    • 1970-01-01
    • 1970-01-01
    • 2021-10-13
    • 2011-06-06
    • 2017-02-04
    相关资源
    最近更新 更多