当前位置: 首页 > news >正文

FFmpeg的入门实践系列四(AVS)

在这里插入图片描述

欢迎诸位来阅读在下的博文~
在这里,在下会不定期发表一些浅薄的知识和经验,望诸位能与在下多多交流,共同努力

文章目录

  • 前期博客
  • 参考书籍
  • 一、AVS简介
  • 二、基于FFmpeg配置AVS2

前期博客

FFmpeg的入门实践系列一(环境搭建)
FFmpeg的入门实践系列二(基础知识)
FFmpeg的入门实践系列三(基础知识)

参考书籍

《FFmpeg开发实战——从零基础到短视频上线》——欧阳燊

一、AVS简介

数字音视频编解码技术标准工作组由国家原信息产业部科学技术司于2002年6月批准成立。工作组的任务是:面向我国的信息产业需求,联合国内企业和科研机构,制(修)订数字音视频的压缩、解压缩、处理和表示等共性技术标准,为数字音视频设备与系统提供高效经济的编解码技术,服务于高分辨率数字广播、高密度激光数字存储媒体、无线宽带多媒体通讯、互联网宽带流媒体等重大信息产业应用。

AVS是我国具备自主知识产权的第二代信源编码标准。顾名思义,“信源”是信息的“源头”,信源编码技术解决的重点问题是数字音视频海量数据(即初始数据、信源)的编码压缩问题,故也称数字音视频编解码技术。显而易见,它是其后数字信息传输、存储、播放等环节的前提,因此是数字音视频产业的共性基础标准。
AVS是一套包含系统、视频、音频、数字版权管理在内的完整标准体系,为数字音视频产业提供更全面的解决方案。

AVS是基于我国创新技术和部分公开技术的自主标准,第一代AVS编码效率比MPEG-2高2-3倍,与AVC相当,技术方案简洁,芯片实现复杂度低,达到了第二代标准的最高水平;而且,AVS通过简洁的一站式许可政策,解决了AVC专利许可问题死结,是开放式制订的国家、国际标准,易于推广; 第二代AVS2编码效率比第一代标准提高了一倍以上,压缩效率超越最新国际标准HEVC(H.265)。此外,AVC仅是一个视频编码标准,而AVS是一套包含系统、视频、音频、数字版权管理在内的完整标准体系,为数字音视频产业提供更全面的解决方案。综上所述,AVS可称第二代信源标准的上选。

第二代AVS标准是系列国家标准《信息技术 高效多媒体编码》(简称AVS2),AVS2主要面向超高清电视节目的传输,支持超高分辨率(4K以上)、高动态范围视频的高效压缩,并争取为相关国际标准的制定发挥关键作用。AVS2支持三维视频、多视角和虚拟现实视频的高效编码;立体声、多声道音频的高效有损及无损编码;监控视频的高效编码;面向三网融合的新型媒体服务 。

第三代AVS标准是指《信息技术 智能媒体编码》系列国家标准,简称AVS3,自2017年开始制定。AVS3主要面向超高清广播影视、全景视频、增强现实/虚拟现实等应用,以及自动驾驶、智慧城市、智慧医疗、智能监控等。支持超高分辨率(8K以上)、全景视频、三维视频、屏幕混合内容视频、高动态范围视频的智能压缩和沉浸式音频场景的应用。

数字音视频产业已在2008年超过通信产业,在2010年成为了国民经济第一大产业。AVS作为数字音视频产业“牵一发动全身”的基础性标准,为我国构建“技术→专利→标准→芯片与软件→整机与系统制造→数字媒体运营与文化产业”的产业链条提供了难得机遇。
(以上文字来源https://www.avs.org.cn/index/list?catid=9)

二、基于FFmpeg配置AVS2

  1. 下载avs2编解码库的源码
//xavs2为avs2的编码库,davs2为avs2的解码库
https://gitee.com/pkuvcl/xavs2
https://gitee.com/pkuvcl/davs2
  1. 编译和安装avs2的编码库
    把下载完的xavs2源码包上传到Linux服务器,接着执行以下命令,依次编译和安装avs2的编码库。
sudo unzip xavs2-master.zip
cd xavs2-master/build/linux/
sudo ./configure --prefix=/usr/local/avs2 --enable-pic --enable-shared
sudo make -j4
sudo make install
  1. 编译和安装avs2的解码库
    把下载完的davs2源码包上传到Linux服务器,接着执行以下命令,依次编译和安装avs2的解码库。
sudo unzip davs2-master.zip
cd davs2-master/build/linux/
sudo ./configure --prefix=/usr/local/avs2 --enable-pic --enable-shared
sudo make -j4
sudo make install 
  1. 把avs2的pkgconfig目录的路径加载到环境变量PKG_CONFIG_PATH
    因为avs2的.pc文件安装到了/usr/local/avs2/lib/pkgconfig,所以需要把该路径添加到环境变量PKG_CONFIG_PATH中,方便FFmpeg自动查找.pc文件,详细的加载步骤说明如下。
vim ~/.bashrc

在文件末尾添加环境变量的配置:

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

保存文件退出,然后重新加载

source ~/.bashrc

接着运行以下命令查看环境变量

env | grep PKG_CONFIG_PATH
  1. 重新编译和安装FFmpeg,注意启用avs2的编解码库
./configure --prefix=/usr/local/ffmpeg --enable-shared --disable-static --disable-doc --enable-zlib --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libdavs2 --enable-iconv --enable-gpl --enable-nonfree
sudo make clean
sudo make -j4
sudo make install
  1. 把avs2的编解码库的路径添加至环境变量
vim ~/.bashrc
export PATH=$PATH:/usr/local/avs2/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/avs2/lib
source ~/.bashrc
  1. 测试
    任意找一个.mp4
ffmpeg -i fuzhou.mp4 -r 25 -acodec aac -vcodec avs2 fuzhou.ts

注意新视频的扩展名必须为.ts,不能时.mp4,因为avs2不支持MP4封装格式,只支持TS封装格式。命令中-r 25是把新视频的帧率调节为每秒25帧, -acodec aac表示把音频转换为AAC编码。
等待fuzhou.ts完成,然后播放

ffplay fuzhou.ts

至此,结束~
在这里插入图片描述
望诸位不忘三连支持一下~

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 给鼠标一个好看的指针特效 鼠标光标如何修改形状?
  • Cisco-综合实验二
  • Linux--NAT,代理服务,内网穿透
  • Python网络爬虫模拟登录与验证解析
  • 为什么要学习 CCRC-PIPP
  • 若依后端 MyBatis改为MyBatis-Plus
  • SIMCom芯讯通A7680C发起HTTP通讯:在UI串口进行模拟;代码调用API操作
  • 使用智谱AI大模型翻译视频字幕
  • 干货 | NXP NCF3321 卡保护应用阈值修改讲解
  • 【团队建设】前端编码规范
  • 示波器常识概述及简介
  • Logrus IT的质量评估门户如何提高游戏本地化质量:案例研究
  • 华为OD机试 - 根据IP查找城市(Java 2024 E卷 100分)
  • 前端远端SDK组件加载方案
  • Java 入门指南:Map 接口
  • 2018一半小结一波
  • 3.7、@ResponseBody 和 @RestController
  • C++入门教程(10):for 语句
  • CSS3 变换
  • download使用浅析
  • ES6核心特性
  • Java小白进阶笔记(3)-初级面向对象
  • JS字符串转数字方法总结
  • log4j2输出到kafka
  • 从tcpdump抓包看TCP/IP协议
  • 从伪并行的 Python 多线程说起
  • 经典排序算法及其 Java 实现
  • 聊聊sentinel的DegradeSlot
  • 免费小说阅读小程序
  • 区块链技术特点之去中心化特性
  • 试着探索高并发下的系统架构面貌
  • 为物联网而生:高性能时间序列数据库HiTSDB商业化首发!
  • 学习使用ExpressJS 4.0中的新Router
  • ​ 无限可能性的探索:Amazon Lightsail轻量应用服务器引领数字化时代创新发展
  • # 日期待t_最值得等的SUV奥迪Q9:空间比MPV还大,或搭4.0T,香
  • #162 (Div. 2)
  • (1)STL算法之遍历容器
  • (13)Latex:基于ΤΕΧ的自动排版系统——写论文必备
  • (2)STL算法之元素计数
  • (3)Dubbo启动时qos-server can not bind localhost22222错误解决
  • (ISPRS,2021)具有遥感知识图谱的鲁棒深度对齐网络用于零样本和广义零样本遥感图像场景分类
  • (Ruby)Ubuntu12.04安装Rails环境
  • (补充)IDEA项目结构
  • (附源码)spring boot校园健康监测管理系统 毕业设计 151047
  • (九)信息融合方式简介
  • ******之网络***——物理***
  • .【机器学习】隐马尔可夫模型(Hidden Markov Model,HMM)
  • .NET MVC第三章、三种传值方式
  • .NET 中让 Task 支持带超时的异步等待
  • .NET/C# 使窗口永不激活(No Activate 永不获得焦点)
  • .Net6 Api Swagger配置
  • .NET企业级应用架构设计系列之结尾篇
  • .NET序列化 serializable,反序列化
  • .project文件
  • .pyc文件是什么?