使用-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 的原生 VPx 解码器不解码 alpha。你必须使用 libvpx 解码器
您可以使用 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