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
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下编译源码步骤
- 源码下载:https://aomedia.googlesource.com/aom
- 根据 README 解释进行编译,过程相对比较简单,简单记录下~
- 根据 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 不需要那么多依赖,按需下载~】
- 在 aom 源码中 cd 到 build 目录中,输入 CMake 命令:
cmake ..
- 继续输入命令:
make
,一段时间后后完成编译;
- 查看编译的文件;
- 测试一下,运行 test_libaom 可执行程序,终端输入命令:
./test_libaom
;测试 libaom 源码所有功能。
构建xcode项目
- 在 aom 源码中 cd 到 build 目录,输入 cmake 命令:cmake … -G Xcode
- 一段时间后,终端提示构建 xcode 项目成功;
- build 目录查看;
- 打开 AOM.xcodeproj文件;