《FFmpeg开发实战:从零基础到短视频上线》一书介绍了JPEG、PNG、GIF等图片格式,以及如何通过FFmpeg把视频画面转存为这些格式。除了上述这些常见的图片格式,还有较新的WebP格式,它由VP8视频标准派生而来,VP8演进的视频格式叫做WebM,图片格式则叫WebP。
若想让FFmpeg支持WebP图片的编解码,就要给它集成第三方库libwebp。下面就介绍如何在Linux环境给FFmpeg集成WebP图片的编解码库libwebp。
一、安装libwebp
libwebp的源码下载页面是 https://github.com/webmproject/libwebp ,各版本libwebp的下载页面为 https://github.com/webmproject/libwebp/tags 。最新的1.3.2版本于2023年9月份发布,源码包的下载链接为 https://github.com/webmproject/libwebp/archive/refs/tags/v1.3.2.tar.gz 。
libwebp的安装步骤说明如下。
1、将下载好的压缩包上传到服务器并解压,也就是依次执行以下命令。
tar zxvf libwebp-1.3.2.tar.gz
cd libwebp-1.3.2
2、进入解压后的libwebp目录,运行下面命令生成配置文件。
libtoolize
./autogen.sh
3、运行下面命令配置libwebp。
./configure
4、运行下面命令编译libwebp。
make -j4
5、编译完成后,运行下面命令安装libwebp。
make install
二、启用libwebp
由于FFmpeg默认未启用libwebp,因此需要重新配置FFmpeg,标明启用libwebp,然后重新编译安装FFmpeg。FFmpeg的Linux环境完整编译过程参见《FFmpeg开发实战:从零基础到短视频上线》一书的“1.2.3 自行编译与安装FFmpeg”,详细的启用步骤说明如下。
1、回到FFmpeg源码的目录,执行以下命令重新配置FFmpeg,主要增加启用libwebp。(增加了选项--enable-libwebp)
./configure --prefix=/usr/local/ffmpeg --enable-shared --disable-static --disable-doc --enable-zlib --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libdavs2 --enable-libmp3lame --enable-libfreetype --enable-libass --enable-libfribidi --enable-libxml2 --enable-fontconfig --enable-sdl2 --enable-libvorbis --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-version3 --enable-libopus --enable-libvpx --enable-openssl --enable-libaom --enable-libsvtav1 --enable-libdav1d --enable-libuavs3d --enable-libwebp --enable-iconv --enable-gpl --enable-nonfree
2、运行下面命令编译FFmpeg。
make clean
make -j4
3、执行下面命令安装FFmpeg。
make install
4、运行以下命令查看FFmpeg的版本信息。
ffmpeg -version
查看控制台回显的FFmpeg版本信息,找到“--enable-libwebp”,说明FFmpeg正确启用了WebP图片的编解码器libwebp。