网页版B站CPU占用高原因分析与解决方案
2023.10.29更新:
哔哩哔哩已支持HEVC硬件解码,你需要做到以下几点
1.确认硬件支持HEVC硬件解码(不支持的应该不存在)
2.正确安装显卡驱动程序
3.Chrome版本大于或等于107.0.5304.63
4.按照方法一中更改播放策略为HEVC,并重启浏览器
5.判断当前编码格式的方法,右键选择视频信息统计,看看第一行第一个等号后面是avc就是avc,是hev就是hevc,是av就是AV1
HEVC硬解测试最近在使用 Chrome 浏览器浏览 哔哩哔哩视频(以下简称B站)时发现 CPU 占用率非常高,虽然家中使用的只是18年比较低端的一款游戏本,但是处理器也是 Intel 与 AMD “核战”开始后的产物,在线看个视频应该不能构成什么压力才对。
通过任务管理器可以看到在播放视频的时候 CPU 占用很高,但是 GPU 占用却非常低,这应该是没有正确调用硬件解码造成的,查看视频信息,看见了 hev1 编解码器,我猜测应该是 B 站在长达一年多的测试后确认了 HEVC 播放的稳定性,为了降低网络带宽成本和缓解高峰期播放卡顿的问题,将默认编码修改为 HEVC 了。
上网查询的结果进一步验证了我的猜想,Chrome 果然不支持 HEVC 硬解,播放 HEVC 视频只能调用 CPU 进行软解。不只是 Chrome,整个桌面端只有苹果的 Safari 支持。HEVC 也不是啥新鲜玩意了,全球浏览器市场占用率第一的 Chrome 竟然还不支持,进一步搜索发现,原来是因为 MPEG-LA 和 HEVC Advance 专利池伸手太黑,给谷歌和苹果报价太高,最终只有财大气粗的苹果选择了交钱。而谷歌选择走自己的路,拉上了一大帮对高额专利授权费不爽的科技公司开始大力发展与推广 AV1 去了。
说回正题,现在知道了 CPU 占用高的原因,这下解决起来就简单多了,那就是去买一台 Mac,准备掏钱买和正在用 Mac 的小伙伴们看到这里就可以撤了,接下来讲讲坚持使用 Chromium 内核浏览器的解决方案。
• 方案一(推荐):调整默认编码格式
这是最简单粗暴,也是最高效的解决方法,使用 Chromium 内核浏览器的用户目前只有这一种解决方案。在播放器下方按照图片步调整择编码格式为 AVC,如果使用的是 Intel Xe 核显(大部分十一代和十二代处理器,除部分赛扬奔腾系列处理器)、使用 NVIDIA 30 系显卡,以及使用 AMD RX6000 系列显卡(RX6500XT 和 RX6400 除外)建议选择更省带宽的 AV1 编码格式。
• 方案二:更改 UA 使浏览器支持 HEVC
经测试,这种方案支持使用 Chromium 内核的 Edge 浏览器,其他浏览器请自行测试。
首先安装 HEVC 解码器,需要通过 https://www.free-codecs.com/hevc_video_extension_download.htm 网站下载 1.0.31823 版本安装包安装,目前新版本会出现掉帧和卡顿的问题(注意需要关闭微软商店自动更新功能)。
然后打开 https://microsoftedge.microsoft.com/addons/detail/cnjkedgepfdpdbnepgmajmmjdjkjnifa 安装 User-Agent Switcher and Manager 插件,并按照下图修改浏览器 UA。
注:一些教程会推荐修改UA为老版Edge浏览器,但是经我测试修改为老版 Edge 浏览器的UA后,哪怕在设置内选择默认HEVC编码,在观看视频时仍然只会使用AVC编码。
如果不想因为修改 UA 影响其他网站访问可以按照下面步骤将 “https://www.bilibili.com” 添加进特定站点。
• 方案三:使用 UWP 版哔哩哔哩
最近几次更新 UWP 版哔哩哔哩功能算是比较齐全了,而且还支持了HDR,看视频完全够用了。(想要支持 HEVC 需要安装 HEVC 扩展,并在设置里手动开启 HEVC)
站在国内的视频网站中可以算得上做的非常出色了,虽然为了节省带宽修改了默认偏好为 HEVC,但是很显然 B 站也注意到了 Chromium 内核这个市场占有率第一的内核无法硬解HEVC这个问题,只有在 1080P 高码率、1080P以及更低分辨率下默认使用了 HEVC 编码,在1080P 60帧、4K 以及更高的 8K 视频下还是默认 AVC 格式,减轻对性能较差的处理器的解码压力。只有在使用 Safari 浏览器下才会全程使用 HEVC 编码。并且 B 站也比较快的跟进了 AV1 编码,虽然目前用户手中支持硬解AV1的硬件较少,但是 2023 年后发布的新硬件支持的还算不错,只有少部分厂家没有跟进。退五千步来说 B 站至少将编码格式的选择权交给了用户,稍加设置仍然可以使用 AVC 编码,并没有一刀切的强上HEVC或者AV1。
PS:转载请注明出处,我家电脑也不是你家旧电脑。
参考资料:
[1]Chrome/Egde上为B站启用HEVC硬解:https://www.bilibili.com/read/cv13253613
[2] Can I use hevc ?: https://caniuse.com/?search=hevc