FFmpeg开发笔记(二十)Linux环境给FFmpeg集成AVS3解码器
AVS3是中国AVS工作组制定的第三代音视频编解码技术标准,也是全球首个已推出的面向8K及5G产业应用的视频编码标准。AVS工作组于2019年3月9日完成第三代AVS视频标准(AVS3)基准档次的制订工作,参考软件的测试表明,AVS3基准档次的性能比上一代标准AVS2和HEVC提升了约30%。
uavs3d是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
uavs3d的源码托管在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。
FFmpeg开发笔记(二十)Linux环境给FFmpeg集成AVS3解码器的更多相关文章
- FFmpeg开发笔记(十):ffmpeg在ubuntu上的交叉编译移植到海思HI35xx平台
FFmpeg和SDL开发专栏(点击传送门) 上一篇:<FFmpeg开发笔记(九):ffmpeg解码rtsp流并使用SDL同步播放>下一篇:敬请期待 前言 将ffmpeg移植到海思H ...
- Hi3516开发笔记(十):Qt从VPSS中获取通道图像数据存储为jpg文件
前言 上一篇已经将himpp套入qt的基础上进行开发.那么qt中拿到frame则是很关键的交互,这是qt与海思可能编解码交叉开发的关键步骤. 受限制 因为直接配置sample的vi比较麻烦 ...
- FFmpeg开发笔记(三):ffmpeg介绍、windows编译以及开发环境搭建
前言 本篇章是对之前windows环境的补充,之前windows的是无需进行编译的,此篇使用源码进行编译,版本就使用3.4.8. FFmpeg简介 FFmpeg是领先的多媒体框架,能够解码 ...
- FFmpeg开发笔记(四):ffmpeg解码的基本流程详解
若该文为原创文章,未经允许不得转载原博主博客地址:https://blog.csdn.net/qq21497936原博主博客导航:https://blog.csdn.net/qq21497936/ar ...
- FFmpeg开发笔记(九):ffmpeg解码rtsp流并使用SDL同步播放
前言 ffmpeg播放rtsp网络流和摄像头流. Demo 使用ffmpeg播放局域网rtsp1080p海康摄像头:延迟0.2s,存在马赛克 使用ffmpeg播放网络rtsp文件流 ...
- FFmpeg开发笔记(五):ffmpeg解码的基本流程详解(ffmpeg3新解码api)
若该文为原创文章,未经允许不得转载原博主博客地址:https://blog.csdn.net/qq21497936原博主博客导航:https://blog.csdn.net/qq21497936/ar ...
- python3.4学习笔记(二十四) Python pycharm window安装redis MySQL-python相关方法
python3.4学习笔记(二十四) Python pycharm window安装redis MySQL-python相关方法window安装redis,下载Redis的压缩包https://git ...
- Docker学习笔记二(linux下安装Docker)
Docker学习笔记二(linux下安装Docker) 1.在线安装linux Docker 这种方式首先要保证linux 环境下可以上网,当然,小编是在自己的电脑上安装了虚拟机,在虚拟机上安装了,l ...
- Django开发笔记二
Django开发笔记一 Django开发笔记二 Django开发笔记三 Django开发笔记四 Django开发笔记五 Django开发笔记六 1.xadmin添加主题.修改标题页脚和收起左侧菜单 # ...
- python3.4学习笔记(二十六) Python 输出json到文件,让json.dumps输出中文 实例代码
python3.4学习笔记(二十六) Python 输出json到文件,让json.dumps输出中文 实例代码 python的json.dumps方法默认会输出成这种格式"\u535a\u ...
随机推荐
- #树形dp#洛谷 1272 重建道路
题目 给出一个大小为 \(n\) 的树, 问至少断掉多少条边使得存在一个大小为 \(m\) 的连通块 \(n\leq 150\) 分析 设 \(dp[x][s]\) 表示以 \(x\) 为根的子树至少 ...
- Ryoku 的新年欢乐赛
目录 前言 洛谷 6033 Ryoku 的探索 题目 分析 代码 洛谷 6034 Ryoku 与最初之人笔记 题目 分析O(log^2n) 代码(赛时AC) 分析O(logn) 代码(赛后) 洛谷 6 ...
- OpenHarmony技术日探讨教育发展,聚焦开源人才培养
4 月 25 日,OpenAtom OpenHarmony (以下简称"OpenHarmony")技术日在深圳成功举办.作为 OpenHarmony 开源项目的年度盛会,大会以&q ...
- .NET Emit 入门教程:第六部分:IL 指令:6:详解 ILGenerator 指令方法:方法调用指令
前言: 经过前面几篇的学习,我们了解到指令的大概分类,如: 参数加载指令,该加载指令以 Ld 开头,将参数加载到栈中,以便于后续执行操作命令. 参数存储指令,其指令以 St 开头,将栈中的数据,存储到 ...
- js实现电子白板
功能:使用画笔绘制笔迹(线条).橡皮檫 <!DOCTYPE html> <html lang="en"> <head> <meta cha ...
- Qt调用系统DLL,判断网络连接状态
*: Win32 网络连接 dll 文件名叫:wininet.dll,位置在 C:\WINDOWS\system32 目录下,将 其拷贝到项目工程下. #include <QLibrary> ...
- openGauss每日一练第四天
openGauss 每日一练第四天 本文出处:https://www.modb.pro/db/193083 学习地址 https://www.modb.pro/course/133 学习目标 学习 o ...
- DevEco Studio强大的预览功能让开发效率大大提升!
原文:https://mp.weixin.qq.com/s/C5DL0wBubDX3exvPpeXBPQ,点击链接查看更多技术内容. 应用的开发过程中,往往需要多次调试和修改,如果支持实时预览,边 ...
- 整理ionic 系列——页面生命周期
前言 这是整理ionic的开篇,ionic 就不多介绍了,开发混合app的. 正文 Event Desc ionViewDidLoad 当页面加载的时候触发,仅在页面创建的时候触发一次,如果被缓存了, ...
- 升级Django项目过程中问题记录
升级内容: python版本:3.8.4升到3.10.7 Django版本:2.2.13升到4.2 所遇问题: 1. error in anyjson setup command: use_2to3 ...