我想将动画 WebP 文件转换为 WebM。但是,大多数工具仅支持转换为动画 WebP,而不支持转换回来,因为它们根本不支持动画 WebP:ImageMagickconvert
不支持动画 WebP,ffmpeg
不支持动画 WebP,并且webpmux
仅支持一次提取单个帧(据我所知)。
我怎样才能进行这种转换?
答案1
由于目前似乎还没有任何得到广泛支持的方法来做到这一点:
anim_dump
从以下位置安装示例实用程序库,因为它不包含在webp
包中。- 克隆 repo
git clone https://chromium.googlesource.com/webm/libwebp && cd libwebp
:。 - 强制
make
建造anim_dump
:echo "bin_PROGRAMS += anim_dump" >> examples/Makefile.am
。 - 安装 libwebp:
./autogen.sh && ./configure && make && sudo make install
。 - 添加
/usr/local/lib
到您的链接器路径:echo "/usr/local/lib" |
sudo tee -a /etc/ld.so.conf
&& sudo ldconfig
。没有这个,anim_dump
就不会跑。
- 克隆 repo
- 使用...将 WebP 帧提取为 PNG
anim_dump
。mkdir frames && cd frames && anim_dump ../example.webp && cd ..
- 使用以下方法计算视频的帧速率
webpmux
:webpmux -info ../example.webp
。使用 WebP 帧的平均持续时间作为 WebM 帧速率。如果您的 WebP 不使用一致的帧速率,则必须以某种方式手动处理持续时间。 - 创建一个使用 ffmpeg 的 WebM:
ffmpeg -framerate <my-framerate> -i frames/dump_%04d.png example.webm
- 清理:
rm -r frames/
。