如何将 WebM 文件透明地转换为 WebP 文件?
How can I convert WebM file to WebP file with transparency?
我用 ffmpeg 试过了。
ffmpeg input.webm output.webp
input.webm
包含透明背景,但是 alpha 通道在 webp 中变成了白色。我认为这意味着 alpha 通道不在一起。
我使用 :
提取帧
ffmpeg -i input.xxx -c:v libwebp output_%03d.webp
它还给我白色背景的 webp 文件。
如何使用 alpha 通道正确转换它?或者我应该从其他格式(扩展名)转换它吗?
使用 -c:v libvpx
选项 在 输入之前更改解码器,如本示例中的第一帧 (-frames:v 1
):
ffmpeg -c:v libvpx -i input.webm -frames:v 1 -c:v libwebp -y output.webp
This comment 表示:
FFmpeg's native VPx decoders don't decode alpha. You have to use the libvpx decoder
您可以使用 ffmpeg -decoders | grep libvpx
检查您的解码器,您应该会看到如下输出:
V....D libvpx libvpx VP8 (codec vp8)
V....D libvpx-vp9 libvpx VP9 (codec vp9)
根据该输出,libvpx
将是 VP8 的解码器,libvpx-vp9
将是 VP9 的解码器。
您可以使用 ffprobe input.webm
检查视频的编解码器。您应该看到这样的输出:
Stream #0:0(eng): Video: vp8, yuv420p(progressive), 640x360, SAR 1:1 DAR 16:9, 30 fps, 30 tbr, 1k tbn, 1k tbc (default)
Metadata:
alpha_mode : 1
要将整个 webm (VP8) 转换为动画 webp,请使用:
ffmpeg -c:v libvpx -i input.webm output.webp
要将整个 webm (VP9) 转换为动画 webp,请使用:
ffmpeg -c:v libvpx-vp9 -i input.webm output.webp
我用 ffmpeg 试过了。
ffmpeg input.webm output.webp
input.webm
包含透明背景,但是 alpha 通道在 webp 中变成了白色。我认为这意味着 alpha 通道不在一起。
我使用
ffmpeg -i input.xxx -c:v libwebp output_%03d.webp
它还给我白色背景的 webp 文件。
如何使用 alpha 通道正确转换它?或者我应该从其他格式(扩展名)转换它吗?
使用 -c:v libvpx
选项 在 输入之前更改解码器,如本示例中的第一帧 (-frames:v 1
):
ffmpeg -c:v libvpx -i input.webm -frames:v 1 -c:v libwebp -y output.webp
This comment 表示:
FFmpeg's native VPx decoders don't decode alpha. You have to use the libvpx decoder
您可以使用 ffmpeg -decoders | grep libvpx
检查您的解码器,您应该会看到如下输出:
V....D libvpx libvpx VP8 (codec vp8)
V....D libvpx-vp9 libvpx VP9 (codec vp9)
根据该输出,libvpx
将是 VP8 的解码器,libvpx-vp9
将是 VP9 的解码器。
您可以使用 ffprobe input.webm
检查视频的编解码器。您应该看到这样的输出:
Stream #0:0(eng): Video: vp8, yuv420p(progressive), 640x360, SAR 1:1 DAR 16:9, 30 fps, 30 tbr, 1k tbn, 1k tbc (default)
Metadata:
alpha_mode : 1
要将整个 webm (VP8) 转换为动画 webp,请使用:
ffmpeg -c:v libvpx -i input.webm output.webp
要将整个 webm (VP9) 转换为动画 webp,请使用:
ffmpeg -c:v libvpx-vp9 -i input.webm output.webp