WebRTC对于电池寿命的影响

作者:Chris Kranky(原文链接)

翻译:刘通

 

WebRTC继续着通过基于codec的硬件来改善电池使用量的工作。让我们来看看结果如何。

 

         视频codec的改善也带来了很多其他改变,于是我与我在Tokbox的同事们(Christian Ferran和Sridhar Bollam)坐下来,向他们请教有关视频编解码以及电池寿命的事情。本篇文章不是一篇技术文章,而且可以很快就读完。

         视频codec可以将原始视频比特使用数学公式转换成更容易管理的东西。codec在工作时总会舍弃掉一些方面来确保性能,所以总有改善和更新的余地。正如加密一样,codec需要算法来对它们(数据包)进行编码以及解码。

         coedc还是一大堆技术争论的产物。在WebRTC中,Google决定最先使用VP8作为codec。其的替代品是H.264。这就像鲨鱼的牙齿一样,经常会更换,总会有像AV1,VP9H.264这种新的codec出现。改变才是永远不会变的事情。

         如果你是刚刚接触WebRTC的话,我建议你无视掉codec产生的噪声。绝大多数codec都会产生噪声,但不是所有。

         Codec给视频编码和解码提供能量。在手机电源电量分配领域中,节省能源是很重要的。

         你可以通过软件或者硬件来对视频进行编解码。视频编解码是简单粗暴的,而且不总是非常高效的,但正因为其是个软件,你可以安装并且让它保持运行。硬件编解码需要专门的芯片或者智能GPU,激活来进行编码和解码。硬件编解码非常的有效率,但可能会产生音画不同步,而且通常而言,硬解码是用来支持特定codec的。

         H.264被人们使用了很长一段时间,而且几乎每部手机上都装有的H264硬件来加速编解码速度。另外,几乎任何一部计算机都配有精密的视频卡,其也会在硬件上支持H.264的编解码性能。

         苹果很早就在设备中集成了H.264编解码。但是,iOS最开始禁止应用使用这项硬件功能(除了Facetime)。但现在iOS都允许应用软件使用H.264硬解码了。

         Google致力于让手机和电脑端的Chrome浏览器适应机器内置的H264编解码器。虽然有一些bug,但是现在可以工作了,是一项重大的进步。

         类似的,Google对手机端的WebRTC代码做了改进。这对iOS来说是一个重大改善。苹果将一个江大的硬件编解码“芯片”放入了iPhone中。

         不幸的是安卓是一个完全不同的故事。因为有很多很多的安卓手机厂商,用的都是不同的硬件设计,所以视频硬件编解码没有一个统一的标准。你可以很轻松就想到一部便宜的安卓机会裁掉很多功能,尤其是很少会被使用到的视频编解码器。

         但是谷歌正在尝试努力让WebRTC视频能工在安卓手机上使用硬件加速。你也许会期待Pixel和三星是第一个做到的。我在Tokbox的组员告诉我这方面已经有了重大进展。

         这是一件好事情,我知道,但是这些有意义吗。

         首先,这听起来不像是VP9或者VP9在后来会在移动设备和笔记本电脑上有硬件的编解码器。这也许会让这些codec保持很长一段时间的活力。但时间会证明一切。

         很多手机和台式机都支持H.264硬件加速,而且Chrome现在也有了惊人的结果。我打开AppRTC(在URL最后加入?vrc=H264这个参数来使用H.264),然后在自己的Macbook Pro(支持H.264的硬件加速)上进行了一个简单的测试,下面是结果:

battery-life1

         上面图表中的数字越低越好。

         简而言之,使用H.264的WebRTC只需要低于50%的CPU功率。这对于在移动端处理更多的视频对话时很重要,这与电池寿命有关。这在WebRTC与使用WebRTC核心元素的应用软件的竞争中,对WebRTC是一个较大的优势。

填写常用邮箱,接收社区更新

WebRTC 中文社区由

运营