WebRTC视频编解码器性能评估
正文字数:1628 阅读时长:3 分钟
GUSTAVO GARCIA在同一测试环境下,测试得出不同编码器的CPU使用结果。
文 / GUSTAVO GARCIA
原文链接 / http://www.rtcbits.com/2021/02/webrtc-video-codecs-performance.html
在WebRTC中,公认为优秀的和最受欢迎的编解码器是VP8和H.264,但这两个编解码器并不是我们唯一的选择。VP9已经可用了一段时间,并且一些大型的也服务正在使用它,例如最近Chrome就增加了对于AV1支持。
在比较编解码器时,需要考虑一些有趣的因素,例如互操作性和许可,但最重要的因素可能是编解码器在压缩方面的性能如何,以及编解码器在cpu和内存使用方面的便宜程度。
压缩率通常是我们首先要考虑的事情,并且存在着许多可用于此的比较,但是如果我们希望能够将编解码器用于实时用例,则资源消耗同样重要。
鉴于AV1在Chrome Canary版本中可用,我决定运行一些测试来评估WebRTC生态系统中4种可用编解码器的CPU使用情况。该测试的目的是将整个视频管道与这4个编解码器进行比较,而不仅仅是单独比较编解码器。
测试环境
这些测试是通过一个简单的网页完成的,该网页在2个PeerConnections之间建立了连接(一个发送和另一个接收)。如果您想自己运行测试,请参见测试页面:
https://jsfiddle.net/tvo7czxs/
使用该页面进行的测试改变了3个变量:
编解码器:VP8、VP9、H264、AV1
分辨率:高清、VGA、QVGA
比特率:200Kbps、800Kbps、2Mbps
如果您查看测试页面,很容易就可以更改这3个参数,以便在其他配置或其他设备中运行测试。
使用的Chrome版本是本周从git同步的最新版本(1/2/21),测试在MacBook Pro(2.4 GHz 8核 Intel Core i9)中进行。
为了检查CPU的使用率,我在等待30秒后,就在系统活动监视器中查看了Chrome进程平均消耗的CPU,以便为WebRTC内带宽估计和分辨率/帧速率自适应的稳定提供时间。当下面的结果是100%时,表示该机器有1个完整核。
没什么花哨的,但希望这可以足够容易使大家理解。
在那种环境中,我运行了几次36个参数组合,将结果取平均值,并在以下各节中进行了总结:
QVGA测试结果
对于QVGA分辨率这一方面来说,结果是符合预期的,其中VP9比VP8需要更多的CPU,而AV1则需要的CPU几乎是VP8的2倍。H.264是一种需要较少的CPU使用量,因为它为此使用了硬件加速。
% of CPU usage with different codecs |
|||
QVGA |
200kbps |
800kbps |
2Mbps |
VP8 |
18 |
22 |
28 |
VP9 |
20 |
28 |
33 |
H.264 |
10 |
14 |
15 |
AV1 |
36 |
46 |
50 |
VGA测试结果
对于VGA,结果并没有很大差异,但是在低比特率时,只有VP9才能保持分辨率,而当将比特率限制提高到2 Mbps时,AV1使用了1个以上的内核。H.264在200Kbps时的质量真的很差,而且帧速率很低,阻塞也很明显,由于在这种情况下,Chrome浏览器的适应性显然不能非常好的工作。
HD(1280x720)测试结果
HD的结果与VGA的结果相似,但AV1无法对原始分辨率进行编码,在所有比特率的测试中缩小了分辨率。H.264在低比特率下的表现也很不尽人意,并且VP8和VP9成本之间的差异比VGA高得多。
(另外,高清分辨率的AV1经常会因为Mac相关代码的内存问题而崩溃,但也许这个bug在你读这篇文章的时候已经修复了)
编码 VS 解码成本
我又进行了一次测试,以在编码(发送方)和解码(接收方)之间划分成本。该测试是针对VGA以800 Kbps进行的,而测试结果正是下一个正在考虑的四个编解码器的结果。
结果差别不大,但与编码相比,VP9和AV1X的解码相对便宜。
仅将解码成本与不同的编解码器进行比较,看起来AV1的价格要比其他解码器贵2倍左右。VP9的价格比VP8的价格稍高,而VP8的价格比H.264的价格略高,但三者之间没有太大差异。
总结
有了新的编解码器是令人惊喜的,毫无疑问,AV1是实时视频通信的未来,但它看起来我们应该耐心等待一些时间,以便日后能够将其用于通用视频会议应用程序之中。与此同时,我们可能还会将它用于特定使用情况,如广播,专用的功能强大的设备,或在使用联播时对视频流的低分辨率版本进行编码。
对于其他用例,VP8和VP9看起来仍然是最好的选择,除非您不太担心低比特率的情况,或者您正在使用高分辨率,并且电池/cpu消耗是一个大问题,不过您可以考虑H.264。
另外,很明显,新的libaom补丁即将面世,可以将性能提高15%,因此在Chrome的未来版本和不同的设备上重复这些测试是很好的(AV1可能会对ARM CPUs进行更优化)。
LiveVideoStackCon 2021 上海站
时间:2021年4月16日-4月17日
我们准备好全新的内容,在上海欢迎您的到来
点击【阅读原文】了解更多详情
WebRTC视频编解码器性能评估相关推荐
- 360°视频的视频编解码器性能评估中的常见测试条件和软件参考配置
这几天一直阅读提案,发现状态不是很好,就把几篇我觉得很有用的提案摘录到这里.带(*)标识的地方是我还没懂的地方= =. 首先这篇提案是JVET common test conditions and e ...
- 你会在你的WebRTC 应用程序中使用哪种视频编解码器呢?
正文字数:2555 阅读时长:4 分钟 当为WebRTC应用程序来选择正确的视频编解码器已经成为了一件非常棘手的事儿时...你是应该使用VP8? H.264? VP9? 还是 AV1? 或者 HEV ...
- 你的WebRTC应用该使用哪种音视频编解码器
我们很难抉择应该给WebRTC应用选哪一款音视频编解码器.VP8?H.264? VP9?还是使用AV1?HEVC呢? 有关WebRTC**视频编解码器的温馨提示** 曾几何时WebRTC世界很简单,只 ...
- WebRTC 视频编解码类型的选择 VP8 H264 还是其他?(openh264编码,ffmpeg解码)
在你的WebRTC应用中,选择正确的视频编解码器很重要,但是如何选择又是一个棘手的问题. WebRTC 视频编解码器 – 简要回顾 WebRTC 曾经很容易.你有 VP8.Opus 和 G.711. ...
- 用机器学习提升WebRTC视频质量评估的正确姿势
原文 :http://webrtcbydralex.com/index.php/2018/10/11/webrtc-video-quality-assessment/ 如何确保WebRTC视频通话或视 ...
- 【视频直播场景下P2P对等网技术②】任意两节点的联通性能评估
[视频直播场景下P2P对等网技术②]任意两节点的联通性能评估 如上文([视频直播场景下P2P对等网技术①])所述,当一个新的节点 F F F加入现有的网络 G G G的时候,若 m = ∣ V G ∣ ...
- 机器学习帮助WebRTC视频质量评价
本文来自CosMos Software创始人Alex. Gouaillard的博客,他同时为WebRTC.QUIC等标准组织工作.LiveVideoStack对原文进行了摘译. 文 / Alex. G ...
- Salsify: 低延迟的网络视频框架设计--视频编解码器和传输协议的紧密集成
本文出自论文Salsify: Low-Latency Network Video through Tighter Integration between a Video Codec and a Tra ...
- 视频编解码器 2020-比赛开始!
作者:Tamar Shoham 翻译:Coco Liang 技术审校/特别感谢:李大龙(腾讯视频移动端播放内核技术负责人) 原文链接:https://blog.beamr.com/2020/05/28 ...
最新文章
- 姚班学霸陈立杰:16岁保送清华,18岁拿下IOI世界冠军,现摘得FOCS 2019最佳学生论文...
- 关于LCD的分屏与切屏 Tearing effect
- 操作系统的功能和特征
- Angular网络请求的封装
- 实时计算无线数据分析
- session丢失php,PHP Session丢失无效问题总结
- jQuery Mobile动态刷新页面样式
- Git仓库只拷贝代码-不拷贝提交记录-不拷贝其他分支
- Altium Designer 布线规则设定
- hadoop集群的搭建与配置(2)
- Atitit 图像处理--图像分类 模式识别 肤色检测识别原理 与attilax的实践总结
- Cisco命令合集-1
- 聚簇索引与非聚簇索引
- 技术写作中的那些神兵利器
- 美术 2.7 Metallic与Speculer流程
- 判断TTS语音朗读是否结束
- MySQL数据库高可用之mmm
- 马克思基本原理复习版本01【带题】
- 【机器人技术基础】MATLAB Robotics Toolbox PUMA560 7次多项式取-放轨迹的规划
- 探究:光伏电站三大并网模式哪个更适合你?
热门文章
- 200726C的数据传递方式
- hihoCoder1353 满减优惠
- CodeForces - 1332B Composite Coloring(数论+构造)
- CodeForces - 1307C Cow and Message(思维)
- CodeForces - 222C Reducing Fractions(唯一分解定理)
- HDU - 4990 Reading comprehension(矩阵快速幂,水题)
- POJ - 2115 C Looooops(扩展欧几里得)
- 棋子--状态压缩dp
- 并查集求欧拉回路/通路
- 使用VS2013编译Lua5.3.2