FFmpeg开发笔记(十三)Windows环境给FFmpeg集成libopus和libvpx

简介: 本文档介绍了在Windows环境下如何为FFmpeg集成libopus和libvpx库。首先,详细阐述了安装libopus的步骤,包括下载源码、配置、编译和安装,并更新环境变量。接着,同样详细说明了libvpx的安装过程,注意需启用--enable-pic选项以避免编译错误。最后,介绍了重新配置并编译FFmpeg以启用这两个库,通过`ffmpeg -version`检查是否成功集成。整个过程参照了《FFmpeg开发实战:从零基础到短视频上线》一书的相关章节。

​MP4是最常见的视频封装格式,在《FFmpeg开发实战:从零基础到短视频上线》一书的“1.2.3 自行编译与安装FFmpeg”介绍了如何给FFmpeg集成x264和x265两个库,从而支持H.264和H.265两种标准的编解码。

视频的封装格式除了悠久的MP4和ASF之外,还有较新的WebM格式,该格式的音频编码主要采用Opus,视频编码采用VP8或者VP9。其中Opus的编解码库为libopus,VP8和VP9的编解码库为libvpx。前文介绍了在Linux环境给FFmpeg集成libopus和libvpx,接下来介绍如何在Windows环境给FFmpeg集成libopus和libvpx。

1、安装libopus

Opus是一种在互联网上处理语音交互和音频传输的编码标准,该标准的编解码器叫做libopus,它的安装步骤说明如下。
(1)到https://ftp.osuosl.org/pub/xiph/releases/opus/ 下载最新的libopus源码,比如2023年4月发布的libopus-1.4,该版本的源码下载地址是https://ftp.osuosl.org/pub/xiph/releases/opus/opus-1.4.tar.gz 。执行下面命令解压下载好的压缩包:

tar xzvf opus-1.4.tar.gz
cd opus-1.4

(2)进入解压后的libopus目录,运行下面命令配置libopus。

./configure --prefix=/usr/local/libopus

(3)运行下面命令编译libopus。

make

(4)编译完成后,运行下面命令安装libopus。

make install

(5)给环境变量PKG_CONFIG_PATH添加libopus的pkgconfig路径,也就是在/etc/profile文件末尾添加如下一行内容:

export PKG_CONFIG_PATH=/usr/local/libopus/lib/pkgconfig:$PKG_CONFIG_PATH

然后执行下面命令重新加载环境变量:

source /etc/profile

执行下面命令查看当前的环境变量,发现PKG_CONFIG_PATH的修改已经奏效。

env | grep PKG_CONFIG_PATH

2、安装libvpx

libvpx是视频编码标准VP8和VP9的编解码器,它的安装步骤说明如下。
(1)到https://github.com/webmproject/libvpx/tags 下载最新的libvpx源码,比如2023年9月发布的libvpx-1.13.1,该版本的源码下载地址是https://github.com/webmproject/libvpx/archive/refs/tags/v1.13.1.tar.gz 。执行下面命令解压下载好的压缩包:

tar zxvf libvpx-1.13.1.tar.gz
cd libvpx-1.13.1

(2)进入解压后的libvpx目录,运行下面命令配置libvpx。(如果不加--enable-pic,在编译FFmpeg时会报错“relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC”)

./configure --prefix=/usr/local/libvpx --enable-pic --disable-examples --disable-unit-tests

(3)运行下面命令编译libvpx。

make

(4)编译完成后,运行下面命令安装libvpx。

make install

(5)给环境变量PKG_CONFIG_PATH添加libvpx的pkgconfig路径,也就是在/etc/profile文件末尾添加如下一行内容:

export PKG_CONFIG_PATH=/usr/local/libvpx/lib/pkgconfig:$PKG_CONFIG_PATH

然后执行下面命令重新加载环境变量:

source /etc/profile

执行下面命令查看当前的环境变量,发现PKG_CONFIG_PATH的修改已经奏效。

env | grep PKG_CONFIG_PATH

3、重新编译FFmpeg

由于FFmpeg默认未启用opus和vpx,因此需要重新配置FFmpeg,标明启用opus和vpx,然后重新编译安装FFmpeg。FFmpeg的Windows环境完整编译过程参见《FFmpeg开发实战:从零基础到短视频上线》一书的“8.1 Windows环境编译FFmpeg”,详细的启用步骤说明如下。
(1)确保下列路径均已加载至环境变量PKG_CONFIG_PATH

export PKG_CONFIG_PATH=/usr/local/libopus/lib/pkgconfig:$PKG_CONFIG_PATH
export PKG_CONFIG_PATH=/usr/local/libvpx/lib/pkgconfig:$PKG_CONFIG_PATH

(2)回到FFmpeg源码的目录,执行以下命令重新配置FFmpeg,主要增加启用libopus和libvpx。(增加了选项--enable-libopus --enable-libvpx)

./configure  --prefix=/usr/local/ffmpeg --arch=x86_64 --enable-shared --disable-static --disable-doc --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libdavs2 --enable-libmp3lame --enable-gpl --enable-nonfree --enable-libfreetype --enable-sdl2 --enable-libvorbis --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-version3 --enable-libopus --enable-libvpx --enable-iconv --enable-zlib --extra-cflags='-I/usr/local/lame/include -I/usr/local/libogg/include -I/usr/local/amr/include' --extra-ldflags='-L/usr/local/lame/lib -L/usr/local/libogg/lib -L/usr/local/amr/lib' --cross-prefix=x86_64-w64-mingw32- --target-os=mingw32

(3)运行下面命令编译FFmpeg。

make clean
make -j4

(4)执行下面命令安装FFmpeg。

make install
mv /usr/local/ffmpeg/bin/*.lib /usr/local/ffmpeg/lib/
cp /usr/local/libopus/bin/libopus-0.dll /usr/local/ffmpeg/bin

(5)运行以下命令查看FFmpeg的版本信息。

ffmpeg -version

查看控制台回显的FFmpeg版本信息,找到“--enable-libopus --enable-libvpx”,说明FFmpeg正确启用了新增的第三方库libopus和libvpx。​

目录
相关文章
|
11天前
|
前端开发
windows10 安装node npm 等前端环境 并配置国内源
windows10 安装node npm 等前端环境 并配置国内源
|
1天前
|
编解码 Linux
FFmpeg开发笔记(二十八)Linux环境给FFmpeg集成libxvid
XviD是开源的MPEG-4视频编解码器,曾与DivX一起用于早期MP4视频编码,但现在已被H.264取代。要集成XviD到Linux上的FFmpeg,首先下载源码,解压后配置并编译安装libxvid。接着,在FFmpeg源码目录中,重新配置FFmpeg以启用libxvid,然后编译并安装。成功后,通过`ffmpeg -version`检查是否启用libxvid。详细步骤包括下载、解压libxvid,使用`configure`和`make`命令安装,以及更新FFmpeg配置并安装。
10 2
FFmpeg开发笔记(二十八)Linux环境给FFmpeg集成libxvid
|
5天前
|
运维 Linux 网络安全
跨平台SSH文件传输:Linux与Windows环境下的实践指南
本文介绍了在Linux和Windows之间使用SCP、SecureCRT及PuTTY工具集进行文件传输的方法。在Linux中,利用SCP命令进行文件下载、上传及目录传输。在Windows环境下,PSFTP和PSCP提供类似功能,而SecureCRT作为SSH客户端,支持设置上传下载目录并进行文件传输。掌握这些工具的使用可提升跨平台运维效率。
|
8天前
|
编解码 Linux
FFmpeg开发笔记(二十五)Linux环境给FFmpeg集成libwebp
《FFmpeg开发实战》书中指导如何在Linux环境下为FFmpeg集成libwebp以支持WebP图片编解码。首先,从GitHub下载libwebp源码,解压后通过`libtoolize`,`autogen.sh`,`configure`,`make -j4`和`make install`步骤安装。接着,在FFmpeg源码目录中重新配置并添加`--enable-libwebp`选项,然后进行`make clean`,`make -j4`和`make install`以编译安装FFmpeg。最后,验证FFmpeg版本信息确认libwebp已启用。
17 1
FFmpeg开发笔记(二十五)Linux环境给FFmpeg集成libwebp
|
11天前
|
PHP Windows
windows 安装php7.4并配置phpstorm环境
windows 安装php7.4并配置phpstorm环境
|
14天前
|
Linux 编解码 Python
FFmpeg开发笔记(二十四)Linux环境给FFmpeg集成AV1的编解码器
AV1是一种高效免费的视频编码标准,由AOM联盟制定,相比H.265压缩率提升约27%。各大流媒体平台倾向使用AV1。本文介绍了如何在Linux环境下为FFmpeg集成AV1编解码库libaom、libdav1d和libsvtav1。涉及下载源码、配置、编译和安装步骤,包括设置环境变量以启用这三个库。
36 3
FFmpeg开发笔记(二十四)Linux环境给FFmpeg集成AV1的编解码器
|
21天前
|
编解码 5G Linux
FFmpeg开发笔记(二十一)Windows环境给FFmpeg集成AVS3解码器
AVS3是中国首个8K及5G视频编码标准,相比AVS2和HEVC性能提升约30%。解码器libuavs3d支持8K/60P视频实时解码,兼容多种平台。《FFmpeg开发实战》书中介绍了在Windows环境下如何集成libuavs3d到FFmpeg。集成步骤包括下载源码、使用Visual Studio 2022编译、调整配置、安装库文件和头文件,以及重新配置和编译FFmpeg以启用libuavs3d。
36 0
FFmpeg开发笔记(二十一)Windows环境给FFmpeg集成AVS3解码器
|
Windows 数据安全/隐私保护 网络协议
|
5天前
|
编解码 安全 网络安全
RealVNC的 VNC server在windows7系统下无法正确运行
在Windows 7上运行旧版VNC Server(如4.1.2)可能存在兼容性问题,但可通过调整配置解决。步骤包括:安装VNC Server,设置兼容性模式(选择Windows XP SP3),启动VNC Server,配置VNC连接参数。若遇到问题,检查防火墙设置,确保系统更新,并考虑升级到新版VNC Server以提高性能和兼容性。
|
18天前
|
开发框架 .NET API
在Windows Server 2008 R2上运行.Net 8应用
在Windows Server 2008 R2上成功运行.Net 8程序,需安装三个补丁:Windows Server 2008 R2 SP1 (KB976932)是基础更新;VC_redist.x64提供MSVC库支持;KB3063858解决.NET运行时加载`kernel.dll`的路径问题。KB3063858可能需要KB2533623。详细信息和下载链接在文中给出。

热门文章

最新文章