Mac 下编译 libaom 源码教程

server/2024/10/18 19:04:39/

AV1_0">AV1

  • AV1是一种开放、免版税的视频编码格式,由开放媒体联盟(AOMedia)开发,旨在提供高压缩效率和优秀的视频质量。AV1支持多种分辨率,包括SD、HD、4K和8K,并适用于视频点播(VOD)、直播和实时通信等多种流媒体服务。目前,AV1已经获得了业界的广泛支持,包括Netflix、YouTube、Facebook等公司在其部分产品中使用了AV1编码器。

  • AV1的主要优势在于其高压缩性能,相比HEVC/VP9,它可以节省大约30%的存储资源和CDN载荷,同时视频质量有所提升。此外,AV1的编码速度已经提高了约13倍,可以与HEVC相比。AV1还支持高达12位的颜色深度,允许更广泛的颜色范围和更好的视觉表现。

  • 在设备支持方面,AV1已经得到了包括移动端、智能电视和浏览器在内的多种设备的广泛支持。例如,Android 10及以上版本支持AV1,Samsung智能电视支持UHD和FHD视频使用AV1编码,而包括IE、Firefox、Chrome、Android
    Browser等浏览器均支持AV1编码。

  • 此外,AV1编码器的性能也在不断提升。例如,B站自研的BILI AV1编码器在相同画质下,相比SVT-AV1编码器,速度慢36%,但码率低19.6%,显示出更好的压缩效率。腾讯也自研了TXAV1编解码器,相比其他编码器在压缩率上有显著提升。

  • 尽管AV1具有许多优势,但其编码和解码过程可能需要较高的计算资源,这可能会给硬件功能有限的设备带来挑战。不过,随着硬件加速AV1解码的集成到更多设备中,这种挑战正在逐渐减小。

  • 总的来说,AV1作为一种新兴的视频编码标准,正在逐步成为视频编码领域的新标准,它提供了更好的压缩效率和视频质量,同时得到了业界的广泛支持和应用。

libaom_15">libaom

  • libaom 是一个开源项目,由开放媒体联盟(AOMedia)开发,提供了 AV1 视频编解码器的参考实现。AV1 是一种免版税的视频编码格式,旨在提供高压缩效率,与 VP9 相比提高了约 30% 的压缩效率,与 H.264 相比则提高了约 50%。libaom 不仅可用于研究和开发,也广泛应用于生产系统中。

  • libaom 支持多种编码模式,包括恒定质量(CQ)、限制质量(CQ)、两遍平均比特率(2-pass ABR)和一遍平均比特率(1-pass ABR)。它还提供了多种码率控制选项,允许用户根据不同需求进行编码。例如,用户可以选择使用 CRF 值来控制编码质量,或者指定最大和最小比特率来控制编码的比特率范围 。

  • libaom 还支持 SVC(Scalable Video Coding),允许编码器生成可在不同分辨率和质量级别上进行解码的视频流。此外,libaom 还提供了实时编码模式,适用于直播和视频会议等应用场景 。

  • 在实际应用中,libaom 通过 GOP 优化和时域滤波器等技术提高了编码效率。GOP 优化通过选择合适大小的 GOP 来适应视频内容的特性,而时域滤波器则通过减少时间冗余来提高压缩效率 。

  • libaom 的安装通常涉及从源代码编译,用户可以根据自己的需求配置不同的编译选项。例如,可以启用或禁用文档生成,选择安装路径,以及决定构建共享库或静态库。

  • 随着技术的发展,libaom 也在不断更新和改进。例如,libaom v3.9.0 版本引入了对不同 SVC 帧丢弃模式的支持,以及进一步减少二进制大小的新构建配置,同时在实时通信(RTC)方面提高了压缩效率 。

Mac下编译源码步骤

  1. 源码下载:https://aomedia.googlesource.com/aom
  2. 根据 README 解释进行编译,过程相对比较简单,简单记录下~
  3. 根据 README 中介绍需要的软件:CMake、Git、编译器(gcc 6+, clang 7+, Microsoft Visual Studio 2019+ or the latest version of MinGW-w64 (clang64 or ucrt toolchains))、Perl、yasm/nasm、doxygen、EMSDK【Mac 不需要那么多依赖,按需下载~】

在这里插入图片描述

  1. 在 aom 源码中 cd 到 build 目录中,输入 CMake 命令:cmake ..
    在这里插入图片描述
  2. 继续输入命令:make,一段时间后后完成编译;
    在这里插入图片描述
  3. 查看编译的文件;
    在这里插入图片描述
  4. 测试一下,运行 test_libaom 可执行程序,终端输入命令:./test_libaom;测试 libaom 源码所有功能。
    在这里插入图片描述

xcode_48">构建xcode项目

  1. 在 aom 源码中 cd 到 build 目录,输入 cmake 命令:cmake … -G Xcode
  2. 一段时间后,终端提示构建 xcode 项目成功;
    在这里插入图片描述
  3. build 目录查看;
    在这里插入图片描述
  4. 打开 AOM.xcodeproj文件;
    在这里插入图片描述

http://www.ppmy.cn/server/131145.html

相关文章

【Fargo】1:基于libuv的udp收发程序

开发UDP处理程序 我正在开发一个基于libuv的UDP发送/接收程序,区分发送端和接收端,设计自定义包数据结构,识别和处理丢包和乱序。 创建项目需求 用户正在要求一个使用libuv的C++程序,涉及UDP发送和接收,数据包包括序列号和时间戳,接收端需要检测丢包和乱序包。 撰写代…

速盾:cdn经常换ip有利于优化吗?

在网络优化领域,关于 CDN(Content Delivery Network,内容分发网络)是否应该经常换 IP 存在着不同的观点。那么,CDN 经常换 IP 真的有利于优化吗? 从某些方面来看,CDN 经常换 IP 可能会带来一些潜…

ASP.NET MVC-懒加载-逐步加载数据库信息

环境: win10, .NET 6.0 目录 问题描述解决方案基础版数据库查询部分(Entity Framework)控制器前端页面 加载到表格版 问题描述 假设我数据库中有N个表,当我打开某页面时,每个表都先加载一部分(比如20条&am…

“黑户”也能贷?不看查询,不看负债,就能下款,该不该信?

最近可真是热闹非凡,离过年还早,我这儿就被“黑户”问题给围得水泄不通了。粉丝们一上来就是:“我征信黑了,查询记录一堆,还能给我想想办法不?”问得那是叫一个急,有的连征信报告都没准备&#…

前端脚手架插件安装总结(axios,element-ui,bootstrap,echarts等)

1.打开前端项目终端 输入命令 vue ui 进入图形化界面 a.选择插件 b.选择添加插件 c.安装插件 d.完成安装

【深度学习】经典的深度学习模型-01 开山之作:CNN卷积神经网络LeNet-5

【深度学习】经典的深度学习模型-01 开山之作:CNN卷积神经网络LeNet-5 Note: 草稿状态,持续更新中,如果有感兴趣,欢迎关注。。。 0. 论文信息 article{lecun1998gradient, title{Gradient-based learning applied to document r…

已经30岁了,想转行从头开始现实吗?什么样的工作算好工作?

我是29岁那年,完成从转行裸辞副业的职业转型。 如果你把职业生涯看成是从现在开始30岁,到你退休那年,中间这么漫长的30年,那么30岁转行完全来得及; 如果你觉得必须在什么年纪,什么时间内必须完成赚到几十…

Facebook减肥产品广告投放攻略

有不少刚开始投放facebook广告的小伙伴会感到疑惑,为什么别人的减肥产品跑的风生水起,销量羡煞旁人,自己的广告要不就是被拒要不就是没有流量,甚至还可能被封号,如果你也有这样的困扰,那一定要看完这篇文章…