使用 ffmpeg 从 mp4 文件转换后如何获取具有透明背景填充的动画 webp 文件?

ish*_*ogi 5 video ffmpeg h.264 webp

我需要将 mp4 视频(1280\xc3\x97720)转换为 webp 文件(512x512),以便生成的 webp 文件保持宽高比,并且完全包含在 512x512 中,并且顶部和底部未覆盖的区域应该是透明的。

\n

我尝试了以下 ffmpeg 命令:

\n
ffmpeg -i sample.mp4 \n-vcodec libwebp -filter:v fps=fps=20 -lossless 1 -loop 0 -preset default -an -vsync 0 -vf \nscale=512:512:force_original_aspect_ratio=decrease,pad=512:512:-1:-1:color=#00000000 sample.webp\n
Run Code Online (Sandbox Code Playgroud)\n

在上面的命令中,请注意pad=512:512:-1:-1:color=#00000000\n我给出了 alpha 值 00,但它仅输出黑色。

\n

我还提到了这个网站https://ffmpeg.org/ffmpeg-utils.html#color-syntax它说

\n
\n

它可以是如下定义的颜色名称(不区分大小写的匹配)或 [0x|#]RRGGBB[AA] 序列,可能后跟 @ 和表示 alpha 分量的字符串。\nalpha 分量可以是由组成的字符串“0x”后跟一个十六进制数或 0.0 到 1.0 之间的十进制数,表示不透明度值(\xe2\x80\x980x00\xe2\x80\x99 或 \xe2\x80\x980.0\xe2\x80\ x99 表示完全透明,\xe2\x80\x980xff\xe2\x80\x99 或 \xe2\x80\x981.0\xe2\x80\x99 完全不透明)。如果未指定 alpha 分量,则假定为 \xe2\x80\x980xff\xe2\x80\x99。

\n
\n

我尝试了两者color=0x000000@0x00color=0x000000@0.0但结果是不透明的黑色。

\n

ish*_*ogi 2

我只是在 pad 之前缺少格式过滤器format=rgba,pad