上一篇我们介绍了最新版本的linphone已经开始支持AV1了,本就介绍一下Linphone AV1的调用流程。
Linphone av1介绍
AV1编解码器重新定义视频通信质量
AV1是新的视频压缩标准,代表了视频视觉质量的重大飞跃。Linphone 现在采用该编解码器来提供更清晰、锐利的视频流,同时减少传输所需的带宽。
这种下一代编解码器由开放媒体联盟 (AOMedia)开发,依靠尖端技术来有效压缩视频而不影响其质量。将AV1集成到Linphone中可以在提供高清视频的同时减少带宽消耗,从而满足用户对卓越视觉通信日益增长的需求。
通过文档查阅,Linphone使用的AV1编码框架是aom框架
https://wiki.linphone.org/xwiki/wiki/public/view/Linphone/Third%20party%20components%20
如下网址提供了如何编译,如何测试等相关规范,有兴趣可以看一下:
https://aomedia.googlesource.com/aom/
linphone使用的AV1解码框架是dav1d框架
dav1d是一个AV1跨平台解码器,开源,专注于速度和正确性。
它现已经过实战测试并已做好生产准备,可以在任何地方使用。 该项目部分由开放媒体联盟/ AOM资助。
此存储库的规范存储库 URL 是https://code.videolan.org/videolan/dav1d
流程解读
在软件开发中,流程解读通常涉及理解代码的编译过程、关键数据结构以及核心逻辑。我们也从编译选项,关键变量或结构体,以及部分核心代码开始,废话不多说,直接开始!
编译选项
这段CMake代码的目的是为了确保在编译mediastreamer2(可能是一个多媒体框架或者库)时,如果请求了AV1支持(通过设置 ENABLE_AV1 为ON),必须确保相应的AV1编解码库(Dav1d 和 Aom)可用。如果这些库中的任何一个未找到,将关闭AV1支持并发出警告。
mediastreamer2\cmake\FindDav1d.cmake
mediastreamer2\cmake\FindAom.cmake
cmake代码查找Dav1d和Aom依赖库的过程,使得CMake在配置项目时能够正确地根据环境和给定的路径来找到Dav1d库和Aom库,并且在找到库时设置正确的变量。如果没有找到,它会按照CMake的标准方法报错。
MSFilterId中增加AV1相关配置选项:
解码类图
编码类图
我是一枚爱跑步的程序猿,维护公众号和知乎专栏《MediaStack》,有兴趣可以关注,一起学习音视频知识,时不时分享实战经验。
版权声明:本文内容转自互联网,本文观点仅代表作者本人。本站仅提供信息存储空间服务,所有权归原作者所有。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至1393616908@qq.com 举报,一经查实,本站将立刻删除。