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。​

目录
相关文章
|
10月前
|
XML 存储 搜索推荐
Omnissa Dynamic Environment Manager 2503 - 个性化动态 Windows 桌面环境管理
Omnissa Dynamic Environment Manager 2503 - 个性化动态 Windows 桌面环境管理
169 7
Omnissa Dynamic Environment Manager 2503 - 个性化动态 Windows 桌面环境管理
|
7月前
|
IDE Ubuntu Java
在Ubuntu18.04安装兼容JDK 8的Eclipse集成开发环境的指南。
完成以上步骤后,您将在Ubuntu 18.04系统上成功安装并配置了Eclipse IDE,它将与JDK 8兼容,可以开始进行Java开发工作。如果遇到任何问题,请确保每一步骤都正确执行,并检查是否所有路径都与您的具体情况相匹配。
310 11
|
9月前
|
人工智能 安全 Shell
Jupyter MCP服务器部署实战:AI模型与Python环境无缝集成教程
Jupyter MCP服务器基于模型上下文协议(MCP),实现大型语言模型与Jupyter环境的无缝集成。它通过标准化接口,让AI模型安全访问和操作Jupyter核心组件,如内核、文件系统和终端。本文深入解析其技术架构、功能特性及部署方法。MCP服务器解决了传统AI模型缺乏实时上下文感知的问题,支持代码执行、变量状态获取、文件管理等功能,提升编程效率。同时,严格的权限控制确保了安全性。作为智能化交互工具,Jupyter MCP为动态计算环境与AI模型之间搭建了高效桥梁。
634 2
Jupyter MCP服务器部署实战:AI模型与Python环境无缝集成教程
|
10月前
|
IDE 开发工具
TeaScript IDE集成开发环境
TeaScriptIDE 是一款功能丰富的集成开发环境,包含代码编辑器(语法着色提升可读性)、调试器(显示运行结果)、内置函数帮助文档、打包功能(生成单个可执行文件)以及保存/恢复最近文件的功能。其界面由菜单栏、工具栏、多标签页编辑窗口、控制台输出窗口和状态栏组成,支持快速命令调用、程序运行结果显示及错误信息提示。退出时会自动保存状态,下次启动可继续编辑上次打开的文件。
250 15
|
10月前
|
Ubuntu 数据库 虚拟化
Windows 环境下 Odoo 安装保姆级教程
本教程详细介绍了在 Windows 系统上通过虚拟机部署 Odoo 的完整流程。首先确认硬件需求,确保 CPU、内存和磁盘空间满足最低配置;接着安装 VMware Workstation Pro 并创建 Ubuntu 虚拟机,配置桥接网络以实现主机与虚拟机的通信;随后借助微聚云快速安装预配置好的 Odoo 环境,简化复杂环境搭建;最后通过浏览器访问虚拟机 IP,完成 Odoo 数据库初始化及基础设置。整个过程清晰易懂,适合新手快速上手 Odoo 部署。
1274 4
|
10月前
|
Ubuntu Linux PHP
利用PHP压缩音频:Linux环境下的ffmpeg简易安装指南
希望这个指南能为你的编程之旅提供帮助。只需记住,每一行代码都像音乐的音符,组合在一起,创造出美妙的旋律。祝你编程愉快!
340 6
|
11月前
|
存储 运维 监控
提升Windows Server环境安全性:ADAudit Plus的五大关键优势
在Windows Server环境中,内置的安全审计工具虽有用,但存在专业门槛高、耗时及功能缺失等问题。第三方工具ADAudit Plus应运而生,其五大优势包括:日志聚合、关键活动检测、定制化报告、灵活安全配置和长期日志保留,有效提升系统监控与合规能力。选择ADAudit Plus,助力企业更高效应对审计挑战,强化安全性。
268 2
|
人工智能 自然语言处理 搜索推荐
Open Notebook:开源 AI 笔记工具,支持多种文件格式,自动转播客和生成总结,集成搜索引擎等功能
Open Notebook 是一款开源的 AI 笔记工具,支持多格式笔记管理,并能自动将笔记转换为博客或播客,适用于学术研究、教育、企业知识管理等多个场景。
1725 0
Open Notebook:开源 AI 笔记工具,支持多种文件格式,自动转播客和生成总结,集成搜索引擎等功能
|
弹性计算 开发框架 安全
基于云效 Windows 构建环境和 Nuget 制品仓库进行 .Net 应用开发
本文将基于云效 Flow 流水线 Windows 构建环境和云效 Packages Nuget 制品仓库手把手教你如何开发并部署一个 .NET 应用,从环境搭建到实战应用发布的详细教程,帮助你掌握 .NET 开发的核心技能。
|
存储 Prometheus 运维
在云原生环境中,阿里云ARMS与Prometheus的集成提供了强大的应用实时监控解决方案
在云原生环境中,阿里云ARMS与Prometheus的集成提供了强大的应用实时监控解决方案。该集成结合了ARMS的基础设施监控能力和Prometheus的灵活配置及社区支持,实现了全面、精准的系统状态、性能和错误监控,提升了应用的稳定性和管理效率。通过统一的数据视图和高级查询功能,帮助企业有效应对云原生挑战,促进业务的持续发展。
360 3

热门文章

最新文章