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