不知道最近屏幕前的小伙伴有没有这样的经历:一用浏览器打开b站视频,就会偶尔出现卡顿的情况,部分场景下还会出现电脑风扇狂转的情况,十分的诡异。
这时有用户指出b站处于节省带宽的目的在web端开启了hevc编码播放,导致电脑播放时造成较高的负载,对此b站也是予以了回应。
看到这里,相信不少围观群众就要纳闷了:这个hevc编码到底是个什么东西?怎么开了以后电脑就卡?
这就要从视频的编码技术开始说起了,而且笔者可以肯定地说,电脑卡顿的锅,源头既不在b站身上,也不是电脑配置低,至于为什么,还请接着往下看:
所谓视频编码方式就是指通过压缩技术,将原始视频格式的文件转换成另一种视频格式文件的方式。
这里有个重点是对视频进行压缩,那为什么要压缩视频呢?其实很简单,因为原始视频实在是太大了。
拿一个1080p(1020x1080)分辨率,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也成为了目前应用最为广泛的视频编码标准。
而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幸免于难。
当然,众多厂商也并没有完全摆烂,谷歌曾经开发了一套叫做vp9的编码技术,但由于种种原因并未普及开来,后来谷歌、微软、亚马逊、facebook、netflix等几大互联网公司联合推出了开源免费的av1编码技术,但由于在视频编解码方面,为这个编码格式提供硬件解码的厂商目前比较少,导致av1编码技术在普及之路上也充满了艰难险阻。
所以短期来看,浏览器不支持hevc编码还没有什么好的解决方法,不过2020年,fraunhofer宣布最新的视频编解码标准 h.266/vvc制定完成。同等画质下将节省近50%传输流量,清晰度越高,码率节省越多。这项耗时3年的标准,主要面向未来的4k和8k,希望h.266的出现能改善这个局面吧。