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

news2024/11/23 22:17:22

在这里插入图片描述

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

文章目录

  • 前期博客
  • 参考书籍
  • 一、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.coloradmin.cn/o/2069402.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

零基础5分钟上手亚马逊云科技-利用MQ为应用解耦

简介: 欢迎来到小李哥全新亚马逊云科技AWS云计算知识学习系列,适用于任何无云计算或者亚马逊云科技技术背景的开发者,通过这篇文章大家零基础5分钟就能完全学会亚马逊云科技一个经典的服务开发架构方案。 我会每天介绍一个基于亚马逊云科技…

揭秘AI绘画赚钱之道:学会这十大技巧,轻松踏入高薪岗位,实现财务自由!

亲爱的学友们,当我们谈论AI绘画,不仅仅是在描绘科技如何重塑艺术疆界,更是在探索一场颠覆性的商业革命。自从AI绘画技术从萌芽走向繁荣,它已经从简单的图像风格转换跃升为能读懂人心、创世般生成各类视觉作品的神奇力量。今天&…

哈夫曼树和哈夫曼编码详解(包含Java代码实现)

目录 什么是哈夫曼树?如何构造哈夫曼树?构造过程代码实现哈夫曼树的结构构建哈夫曼树并计算WPL值测试代码 什么是哈夫曼编码?如何构建哈夫曼编码?构建过程代码实现 什么是哈夫曼树? 哈夫曼树又称为最优树,是…

应用实例 | Simufact 增材制造工艺仿真助力保时捷薄壁件打印

在过去的 30 多年里,增材制造技术被广泛应用于各行各业,尤其在医疗器械、航空领域尤为突出。其中激光束进行金属粉末床熔融的工艺应用最为广泛,由该工艺制造的零部件普遍兼具高设计自由度、高灵活性、优异机械性能等特点。对于汽车行业&#…

百日筑基第六十天-学习一下Tomcat

百日筑基第六十天-学习一下Tomcat 一、Tomcat 顶层架构 Tomcat 中最顶层的容器是 Server,代表着整个服务器,从上图中可以看出,一个 Server可以包含至少一个 Service,用于具体提供服务。Service 主要包含两个部分:Conn…

都说25张宇是大趋势,那660、880还刷吗?

25上半年张宇很火,是有客观原因的: 1. 大纲改革后,大题变少了,选填变多了; 2. 但是考试覆盖的知识点不能少, ——因为知识点越少,随机性越高,这个考试就越不公平。 这直接导致了&…

vue组件和插件使用

前端组件 1、安装pinia(Vue 的专属状态管理库): npm install pinia2、安装pinia-plugin-persistedstate(持久存储插件): npm install pinia-plugin-persistedstate浏览器刷新时,有些数据希望是保存下来的。如用户登录后,用户信息会存储在全…

Scheme5.0标准之重要特性及用法实例(三十七)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 新书发布:《Android系统多媒体进阶实战》🚀 优质专栏: Audio工程师进阶系列…

设置虚拟机使用主机以太网而不是WiF连接

虚拟机使用主机的以太网连接而不是Wi-Fi连接,可以通过在虚拟化软件中配置虚拟机的网络设置来实现。以下是一些常见的虚拟化软件(如VMware和VirtualBox)中设置虚拟机网络以使用以太网连接的步骤: 一、VMware中设置 1、打开虚拟网…

Python画笔案例-007 绘制水滴

1、绘制水滴 通过 python 的turtle 库绘制一个水滴的图案,如下图: 2、实现代码 今天绘制的水滴,在tuitle 库里并没有直接的功能可以绘制,我们仔细观察,可以看出,水滴往下越来越粗,所以我们可以…

API商品数据接口(电商数据api)——京东淘宝价格详情

众多品牌选择使用比价工具进行采购,主要是出于以下几个重要原因: 提高开发效率:API接口允许不同的应用程序之间高效地进行交互,节省了大量的人力物力成本,使得开发者可以将更多时间和精力集中于自身的核心业务。 增加数…

正则表达式匹配成对括号

匹配一对括号,用于在一个html文本中提取JSon 文本。例如 { “duration”:7599,"minBufferTime{second bracket }{third bracket} } 一对加粗的{} ,而不要中间的{}。简单写法会出现错误匹配。 在.Net Framework的正则表达式中,提供了”…

在Activity中使用Toast

在Activity中使用Toast Toast是Android系统提供的一种非常好的提醒方式,在程序中可以使用它将一些短小的信息通知给用户,这些信息会在一段时间后自动消失,并且不会占用任何屏幕空间,我们现在就尝试一下如何在活动中使用Toast。 …

谷粒商城篇章11--P311-P325--秒杀服务【分布式高级篇八】

目录 1 后台添加秒杀商品 1.1 配置优惠券服务网关 1.2 添加秒杀场次 1.3 上架秒杀商品 2 定时任务 2.1 cron 表达式 2.2 cron表达式特殊字符 2.3 cron示例 3 秒杀服务 3.1 创建秒杀服务模块 3.1.1 pom.xml 3.1.2 application.yml配置 3.1.3 bootstrap.yml配置 3.…

【赵渝强老师】Docker三剑客

在Docker容器中提供了三个非常有用的工具,它们分别是:Docker Compose、Docker Machine和Docker Swarm。下面分别进行介绍。 视频讲解如下: Docker三剑客 【赵渝强老师】Docker的三剑客 一、容器编排工具Docker Compose 在使用Docker部署应用…

如何在 Nuxt 中动态设置页面布局

title: 如何在 Nuxt 中动态设置页面布局 date: 2024/8/24 updated: 2024/8/24 author: cmdragon excerpt: 摘要:本文介绍如何在Nuxt框架中通过设置setPageLayout函数动态调整页面布局,包括安装Nuxt、创建不同布局文件及中间件,并通过示例演示如何根据不同路径设置相应布局…

Transformer模型-1-概述、核心部件及应用场景

Transformer概述 什么是Transformer Transformer模型是由谷歌公司提出的一种基于自注意力机制的神经网络模型,用于处理序列数据。相比于传统的循环神经网络模型,Transformer模型具有更好的并行性能和更短的训练时间,因此在自然语言处理领域…

设计模式—工厂模式

文章目录 工厂模式1、没有使用工厂2、简单工厂模式3、工厂方法模式4、抽象工厂模式5、工厂模式小结 工厂模式 1、没有使用工厂 需求 看一个披萨的项目:要便于披萨种类的扩展,要便于维护 披萨的种类很多(比如 GreekPizz、CheesePizz 等)披萨的制作有 pr…

谷粒商城实战笔记-252~254-商城业务-消息队列-Exchange-三种type的使用

文章目录 一,252-商城业务-消息队列-Direct-Exchange1,创建4个队列2,exchange绑定queue3,发送消息 二,253-商城业务-消息队列-Fanout-Exchange1,创建一个type为fanout的exchange2,给这个exchang…

通过C# 读取PDF页面大小、方向、旋转角度

在处理PDF文件时,了解页面的大小、方向和旋转角度等信息对于PDF的显示、打印和布局设计至关重要。本文将介绍如何使用免费.NET 库通过C#来读取PDF页面的这些属性。 文章目录 C# 读取PDF页面大小(宽度、高度)C# 判断PDF页面方向C# 检测PDF页面…