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

打印 上一主题 下一主题

主题 852|帖子 852|积分 2556

​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。执行下面命令解压下载好的压缩包:
  1. tar xzvf opus-1.4.tar.gz
  2. cd opus-1.4
复制代码
(2)进入解压后的libopus目录,运行下面命令配置libopus。
  1. ./configure --prefix=/usr/local/libopus
复制代码
(3)运行下面命令编译libopus。
  1. make
复制代码
(4)编译完成后,运行下面命令安装libopus。
  1. make install
复制代码
(5)给环境变量PKG_CONFIG_PATH添加libopus的pkgconfig路径,也就是在/etc/profile文件末尾添加如下一行内容:
  1. export PKG_CONFIG_PATH=/usr/local/libopus/lib/pkgconfig:$PKG_CONFIG_PATH
复制代码
然后执行下面命令重新加载环境变量:
  1. source /etc/profile
复制代码
执行下面命令检察当前的环境变量,发现PKG_CONFIG_PATH的修改已经奏效。
  1. 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。执行下面命令解压下载好的压缩包:
  1. tar zxvf libvpx-1.13.1.tar.gz
  2. 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”)
  1. ./configure --prefix=/usr/local/libvpx --enable-pic --disable-examples --disable-unit-tests
复制代码
(3)运行下面命令编译libvpx。
  1. make
复制代码
(4)编译完成后,运行下面命令安装libvpx。
  1. make install
复制代码
(5)给环境变量PKG_CONFIG_PATH添加libvpx的pkgconfig路径,也就是在/etc/profile文件末尾添加如下一行内容:
  1. export PKG_CONFIG_PATH=/usr/local/libvpx/lib/pkgconfig:$PKG_CONFIG_PATH
复制代码
然后执行下面命令重新加载环境变量:
  1. source /etc/profile
复制代码
执行下面命令检察当前的环境变量,发现PKG_CONFIG_PATH的修改已经奏效。
  1. 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
  1. export PKG_CONFIG_PATH=/usr/local/libopus/lib/pkgconfig:$PKG_CONFIG_PATH
  2. export PKG_CONFIG_PATH=/usr/local/libvpx/lib/pkgconfig:$PKG_CONFIG_PATH
复制代码
(2)回到FFmpeg源码的目录,执行以下命令重新配置FFmpeg,主要增加启用libopus和libvpx。(增加了选项--enable-libopus --enable-libvpx)
  1. ./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。
  1. make clean
  2. make -j4
复制代码
(4)执行下面命令安装FFmpeg。
  1. make install
  2. mv /usr/local/ffmpeg/bin/*.lib /usr/local/ffmpeg/lib/
  3. cp /usr/local/libopus/bin/libopus-0.dll /usr/local/ffmpeg/bin
复制代码
(5)运行以下命令检察FFmpeg的版本信息。
  1. ffmpeg -version
复制代码
检察控制台回显的FFmpeg版本信息,找到“--enable-libopus --enable-libvpx”,说明FFmpeg正确启用了新增的第三方库libopus和libvpx。​

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

前进之路

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表