FFmpeg开发笔记(二十)Linux环境给FFmpeg集成AVS3解码器

AVS3是中国AVS工作组制定的第三代音视频编解码技术标准,也是全球首个已推出的面向8K及5G产业应用的视频编码标准。AVS工作组于2019年3月9日完成第三代AVS视频标准(AVS3)基准档次的制订工作,参考软件的测试表明,AVS3基准档次的性能比上一代标准AVS2和HEVC提升了约30%。

libuavs3d是AVS3标准的解码器,最高可支持8K/60P视频实时解码,支持windows/linux/arm/ios等所有常用平台,在移动端最高支持4K/30fps视频实时解码,解码速度大幅领先AV1开源解码器dav1d和aomdec。在《FFmpeg开发实战:从零基础到短视频上线》一书的"2.1.3 国家数字音视频标准AVS"介绍了如何在Linux环境给FFmpeg集成AVS2的编解码器,其实也能给FFmpeg集成AVS3的解码器libuavs3d。详细的集成步骤说明如下。

一、安装AVS3的解码器libuavs3d

libuavs3d的源码托管在https://github.com/uavs3/uavs3d,注意要下载master的主干代码,不可下载2019年的1.0版本代码(该版本的源码编译有问题)。主干代码的下载地址是https://codeload.github.com/uavs3/uavs3d/zip/refs/heads/master,把该链接复制到浏览器地址再按回车键,即可开始下载源码包。

libuavs3d的安装步骤说明如下。

1、将下载好的压缩包上传到服务器并解压,也就是依次执行以下命令。

复制代码
unzip uavs3d-master.zip
cd uavs3d-master

2、执行脚本version.sh,以便生成头文件version.h,也就是执行以下命令。

复制代码
chmod +x version.sh
./version.sh

3、进入解压后的Build目录,运行下面命令配置libuavs3d。

复制代码
mkdir -p build/linux
cd build/linux
cmake -DCOMPILE_10BIT=1 -DBUILD_SHARED_LIBS=1 --install-prefix=/usr/local ../..

4、运行下面命令编译libuavs3d。

复制代码
make -j4

5、编译完成后,运行下面命令安装libuavs3d。

复制代码
make install

二、让FFmpeg启用libuavs3d

由于FFmpeg默认未启用libuavs3d,因此需要重新配置FFmpeg,标明启用libuavs3d,然后重新编译安装FFmpeg。FFmpeg的Linux环境完整编译过程参见《FFmpeg开发实战:从零基础到短视频上线》一书的"1.2.3 自行编译与安装FFmpeg",详细的启用步骤说明如下。

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

复制代码
./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-libuavs3d --enable-iconv --enable-gpl --enable-nonfree

2、运行下面命令编译FFmpeg。

复制代码
make clean
make -j4

3、执行下面命令安装FFmpeg。

复制代码
make install

4、运行以下命令查看FFmpeg的版本信息。

复制代码
ffmpeg -version

查看控制台回显的FFmpeg版本信息,找到"--enable-libuavs3d",说明FFmpeg正确启用了AVS3的解码器libuavs3d。

相关推荐
TLeung653675 分钟前
美团开源黑科技InfiniteTalk:不限视频长度AI工具,支持图生视频和视频生视频,既可本地部署也可云端部署。关键免费、免费、免费。
人工智能·科技·音视频
爱敲代码的婷婷婷.10 分钟前
如何快速把长视频或音频切割成多等份
音视频
长安即是故里11 分钟前
搭建一个现代化视频聚合播放平台(含视频源)
前端·音视频·开源项目··部署教程
行业探路者11 分钟前
录音转二维码与视频二维码生成器的使用指南
人工智能·学习·音视频·二维码·产品介绍
EasyDSS12 分钟前
视频推拉流EasyDSS平台助力实现无人机推流直播新生态
音视频·无人机
qq_3106585118 分钟前
webrtc源码走读(一)WebRTC源码结构拆分
服务器·c++·音视频·webrtc
qq_3106585127 分钟前
webrtc源码走读(二)应用层如何使用WebRTC API实现功能
服务器·c++·音视频·webrtc
你好音视频35 分钟前
FFmpeg HLS编码流程深度解析:从数据包到播放列表的完整实现
c++·ffmpeg·音视频
芒鸽43 分钟前
macOS 上用 lycium 交叉编译 FFmpeg 适配鸿蒙(OHOS):从构建到 HNP 打包
macos·ffmpeg·harmonyos
专业开发者1 小时前
蓝牙 ® 低功耗音频(Bluetooth® LE Audio)重塑无线音频的 3 大方式
物联网·音视频