不知道最近屏幕前的小伙伴有没有这样的经历:一用浏览器打开B站视频,就会偶尔出现卡顿的情况,部分场景下还会出现电脑风扇狂转的情况,十分的诡异。

这时有用户指出B站处于节省带宽的目的在Web端开启了HEVC编码播放,导致电脑播放时造成较高的负载,对此B站也是予以了回应。

一看B站视频就卡?这可能真不是电脑的问题-冯金伟博客园

看到这里,相信不少围观群众就要纳闷了:这个HEVC编码到底是个什么东西?怎么开了以后电脑就卡?

这就要从视频的编码技术开始说起了,而且笔者可以肯定地说,电脑卡顿的锅,源头既不在B站身上,也不是电脑配置低,至于为什么,还请接着往下看:

这里有个重点是对视频进行压缩,那为什么要压缩视频呢?其实很简单,因为原始视频实在是太大了。

拿一个1080P(1020×1080)分辨率,60帧的视频举例,未经压缩的情况下,光是一帧就有1920x1080x3/1024/1024≈6MB的内容,每秒就占据了大约360MB的内容,这样的大小连本地存储都费劲,更何况用于网络传输,现如今千兆带宽才刚刚开始普及,承载不了这么庞大的数据量,因此显然需要对原始视频进行一定的处理。

这也是视频编码技术出现的缘由,通过去除视频数据中冗余信息,实现视频数据在互联网中快速传输和离线的存储。使得视频数据量得以极大的压缩,有利于传输和存储。

在过去的几十年中,一系列的视频编码标准被广泛的应用。目前已有的视频压缩标准有很多种,包括国际标准化组织(ISO)和国际电工技术委员会(IEC)制定的MPEG-1、MPEG-2、MPEG-4标准;国际电信联盟电信标准化部门(ITU-T)制定的H.261、H.263等等。

直到2003年,ITU-T和ISO/IEC正式公布了H.264/MPEG-4 AVC视频压缩标准,由于在编码效率和灵活性方面有着相当大的优势,H.264也成为了目前应用最为广泛的视频编码标准。

一看B站视频就卡?这可能真不是电脑的问题-冯金伟博客园

而HEVC则是H.264之后又一革命性的视频编码技术,相比传统的H.264编码技术,HEVC可以在保证相同视频画质的前提下,减少约50%左右的数据量,同时支持8K视频的编码。

如此先进的编码技术自然也是得到了众多厂商的支持,苹果、安卓、AMD、NVIDIA、英特尔等厂商都先后对HEVC编码技术进行了支持。

那看起来很美好的一个事情,为什么到浏览器这里就不行了呢?

问题主要出在HEVC复杂的专利授权模式上,光是HEVC技术相关的专利池就有MPEG LA、HEVC Advance和Velos Media三家,而高额的授权费用往往使得很多厂商望而却步,以MPEG LA为例,厂商每年前十万台终端免费,之后每台终端花费0.20美元,2500万美元封顶,这对于可以免费下载到多台设备的浏览器厂商来说,无疑是十分巨大的开销。

也因此,很多浏览器都放弃了GPU对HEVC硬解的支持,因此在观看HEVC编码的视频时,CPU负载经常过高,也就出现了文章最开始所说的卡顿或者风扇狂转的情况,只有Safari幸免于难。

一看B站视频就卡?这可能真不是电脑的问题-冯金伟博客园

当然,众多厂商也并没有完全摆烂,谷歌曾经开发了一套叫做VP9的编码技术,但由于种种原因并未普及开来,后来谷歌、微软、亚马逊、Facebook、Netflix等几大互联网公司联合推出了开源免费的AV1编码技术,但由于在视频编解码方面,为这个编码格式提供硬件解码的厂商目前比较少,导致AV1编码技术在普及之路上也充满了艰难险阻。

所以短期来看,浏览器不支持HEVC编码还没有什么好的解决方法,不过2020年,Fraunhofer宣布最新的视频编解码标准 H.266/VVC制定完成。同等画质下将节省近50%传输流量,清晰度越高,码率节省越多。这项耗时3年的标准,主要面向未来的4K和8K,希望H.266的出现能改善这个局面吧。