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

embedded/2024/11/15 4:02:34/

在这里插入图片描述

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

文章目录

  • 前期博客
  • 参考书籍
  • 一、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

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


http://www.ppmy.cn/embedded/102304.html

相关文章

美国高防服务器测评

美国高防服务器通常具有出色的硬件配置和网络性能,以及强大的DDoS防御能力。rak小编为您整理发布美国高防服务器测评。 美国高防服务器因其地理位置和网络基础设施的优势,通常被认为在防御分布式拒绝服务(DDoS)攻击方面具有较高的能力。面对日益增长的网…

vue面试题十九

一、在Vue 3中,如何处理事件?与Vue 2相比有什么变化? 在Vue 3中,事件处理是一个核心概念,它允许开发者创建交互式的用户界面。Vue 3中的事件处理机制与Vue 2相比,在细节和性能上都有所提升和变化。以下是对…

filter过滤器和reduce求和以及

1. filter()过滤器 filter() 是 JavaScript 数组的一个方法&#xff0c;而不是 Vue.js 或 UniApp 特有的过滤器。filter() 方法用于创建一个新数组&#xff0c;其包含通过所提供函数实现的测试的所有元素。 <template>{{sum}} </template><script setup>im…

Python酷库之旅-第三方库Pandas(106)

目录 一、用法精讲 461、pandas.DataFrame.lt方法 461-1、语法 461-2、参数 461-3、功能 461-4、返回值 461-5、说明 461-6、用法 461-6-1、数据准备 461-6-2、代码示例 461-6-3、结果输出 462、pandas.DataFrame.gt方法 462-1、语法 462-2、参数 462-3、功能 …

TCP并发服务器多线程和多进程方式以及几种IO模型

1. 阻塞 I/O&#xff08;Blocking I/O&#xff09; 在阻塞 I/O 模型中&#xff0c;当应用程序发起 I/O 操作时&#xff0c;整个进程会被阻塞&#xff0c;直到操作完成。在这个过程中&#xff0c;应用程序无法执行其他任务&#xff0c;必须等待 I/O 操作的完成。 特点&#xf…

什么是微服务?

在这个日益数字化和竞争激烈的时代&#xff0c;企业对软件的敏捷性、可维护性和可扩展性的要求越来越高&#xff0c;在这种需求下微服务孕育而生&#xff0c;微服务架构提供了一种适应变化的灵活方式&#xff0c;使企业能够更加敏捷地创新、交付价值&#xff0c;并在技术和业务…

用宝塔部署项目到阿里云服务器访问不到的问题

今天用宝塔部署项目到阿里云&#xff0c;开始前端部署到了80端口&#xff0c;能正常访问&#xff0c;后端部署到了8081&#xff0c;但是后端接口一直无响应&#xff0c;最后超时。 但是java正常运行 系统防火墙的状态正常&#xff0c;策略也是放行 阿里云安全组也已经配置了 …

Bytebase 2.22.2 - 允许在工作空间为群组分配角色

&#x1f680; 新功能 允许在工作空间给群组分配角色。 支持禁用邮箱密码登录&#xff0c;仅允许 SSO 登录的设置项。 新增 Postgres SQL 审核规则&#xff1a;禁止在列上设置会变化的默认值。 &#x1f514; 重大变更 下线项目内的变更历史页面&#xff1b;所有变更历史仍可…