Tsahi Levent-Levi
二者都有!
VP8和VP9都是由Google研发且推出的视频编解码器。之前,Chrome浏览器的WebRTC实现只支持VP8,现在已经支持VP8和VP9了。这就让我与用户有了很多有趣的交流,关于要不要接受、什么时候接受VP9—或者是不是应该取而代之的使用H.264。
关于VP8和VP9的话题经常会给人错误的理解,所以我先尝试的解释一下。
最重要的放在最前面:
1.VP8目前是WebRTC的默认视频编解码器。基本可以说有90%或者以上的WebRTC视频通话都使用的是VP8。
2.VP9已经官方并且公开的在Chrome49版本中可以使用。但是还没成为默认的编解码器。目前还没有。
3.VP8与H.264是同等层次的。
4.VP9在处理压缩视频的合成质量时要比VP8更好。
5.VP8压缩视频时占用更少的资源(CPU)。
有了这些概念,下面的内容就可以这样理解:
你可以使用VP9来:
1.提高你的视频体验质量
2.降低所需的比特率
下面来讨论一下这两点
1.提高你的视频体验质量
如果你对你服务的所需带宽很满意的话,那么你现在也可以使用同样大小的带宽来使用VP9而代替VP8—视频的质量会更好。
什么时候有用呢?
- 当你的用户带宽受限时。比如500 kbps或者更低—比如使用蜂窝数据或者比较拥挤的网络时。
- 当你准备支持更高分辨率/更好的摄像头等。
2.降低所需的比特率
另外一个选择是转换成VP9,而且努力保证与VP8一样的质量。既然VP9已经更高效了,就可以在保证相同质量的同时降低比特率了。
什么时候有用呢?
·当你想去带宽受限制的地方时。就像把一个发达国家的服务放到发展中国家去一样。
·当你想给企业提供服务,企业需要从一个相同的设备连接很多平行的视频会议的时候。
WebRTC是如何默认处理比特率/质量的?
有一个经常被大家忘记的事情。我也是10年前知道但忘记了,直到最近在网络中对比WebRTC的VP8和VP9的时候才想起来。
企业视频会议的标准规则是“使用的永远不要多余需要的”。如果你想发送一个VGA视频,任何好的视频会议系统都不会使用高于1 Mbps的比特率—而且我举得这个例子已经是很大方的一个情况了。这个原因是源于目标市场和时间。
企业视频会议已经出现了将近20年。在刚开始的时候,1 mbps比特率只能是做梦敢想的事情。购买视频会议设备的公司不仅需要能够支持在他们设备之间平行的多人视频会议通话,还要维持同一时间给所有人提供稳定的网络连接服务。
甚至在今天,大多数的企业视频会议服务还是会遗留限制比特率的传统。WebRTC是融合了互联网思想开发的。你所收获的就是你所付出的。这也是为什么WebRTC需要的带宽处于可用带宽与最大带宽之间。使用Chrome里的VP8就会知道—当摄像头源为VGA时,就会占用掉1.77 Mbps。
这个差别意味着除去所有你这端的干扰,当你换用VP9时WebRTC会倾向于增强你的视频感受质量。
还有一件事需要注意的—这些都会随着后端媒体处理的变化而变化,且媒体处理是经常变的,你怎么都可能需要跟多的去关注带宽,和做限制其大小的工作。
所有的魔力都是有代价的
我们还没有在这里讨论SVC,而且它看起来就像一种魔法一样。你从VP8切换到VP9之后,生活都变的美好了。
但是。。。就像所有的魔法,VP9也是由代价的。起初,VP9还不像VP8那样稳定。当然这当然会在接下来的几个月内改善,你应该也考虑到这几点改变:
·如果你认为VP8是个贪吃资源的东西,那么请将VP9想象成一个对CPU资源更加狼吞虎咽的事物。
·其还不能应用于硬件编码,所以这会是一个很大的问题。
·我认为移动端并不会很支持使用VP9,但也有可能我是错的。
·微软的Edge浏览器不会支持VP9。