chrome/chromium硬解码的判断方法

上一篇文章“浏览器中支持硬件加速”讲了浏览器硬解码的基本概念。在实际应用,经常会因为系统的软件环境配置不当,或者视频格式有问题,导致浏览器的硬解码没有生效。由于浏览器在硬解码不生效的情况下会自动切换到软解码,所以从表面上无法确定,只是发现CPU可能会偏高。本文介绍一下判断浏览器硬解码的方法:

1. 浏览器要支持硬解码的几个条件:

  1. 硬件支持:一般情况下硬解码加速内置在GPU中(大部分intel的CPU内置有GPU)
  2. 操作系统支持:WINXP不支持硬解码加速,win7/win8仅支持H264/VP8;win10支持H264/H265/VP9等;linux系统需要根据驱动安装的情况判断;
  3. 驱动安装正确:必须正确安装GPU的驱动;
  4. 正确的码流格式:记住,很多时候由于硬解码器驱动设计上的差异,硬解码并不能支持所有标准的码流。也就是说,即使一个H264文件可以用软件解码,硬解码也不一定支持。
  5. 浏览器要支持并开启硬件加速:在地址栏输入:“chrome://gpu/”,在“GraphicsFeature Status”栏目中查看“video decode”项是否显示为绿色的“Hardware accelerated”。

2. 判断GPU加速是否真正在工作

2.1 Win10系统中,在浏览器工作的状态下,打开任务管理器,查看GPU的使用情况。如果Video Decode的利用率为零,则表示没有启用硬件视频解码加速。如果3D的利用率为零,则表示没有使用GPU 3D图形显示加速。
在这里插入图片描述

2.2 Win7系统中,需要借助DXVA checker工具查看是否启用硬解码。如下图,出现d3d11_DecoderBeginFrame或dxva_DecoderBeginFrame表示系统当前正在硬解码。
在这里插入图片描述

2.3 Linux系统中,需要借助相关的GPU工具。目前没有像win10一样可以很方便查看硬解码的工具,但有一些工具可以看gpu-3d相关的资源,比如intel的intel-gpu-tools,nvdia的nadia-smi,amd的radeontop。如果没有工具,可以在地址栏输入chrome://media-internal,在kVideoDecoderName一栏显示MojoVideoDecoder,则表示系统在硬解码。如下:
在这里插入图片描述

(由于linux下的显示驱动比较复杂,要使硬解码真正工作,大部分情况下,需要排查驱动是否安装正确。)


(注:“浏览器手艺人”极客团队由一帮热爱浏览器技术的资深技术人员组成,具有10年以上的浏览器技术开发经验。技术或合作交流,请关注公众号"浏览器手艺人“留言或发送邮件至browser_craftsman@163.com。)


版权声明:本文为yanrx76原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。