您可能已经注意到,在Linux上使用GoogleChrome或Chromium浏览器在YouTube或其他类似网站上观看高清视频会增加您的CPU使用率,如果您'在使用笔记本电脑时,电脑会变热并且电池会很快耗尽。这是因为Chrome/Chromium(还有Firefox,但没有解决Firefox问题的方法)在Linux上不支持硬件加速视频解码。本文介绍如何在Linux环境下安装带有VA-API补丁的Chromium开发版,支持GPU加速视频解码,可以显着降低在线观看高清视频时的CPU占用率。本教程只适用于Intel和Nvidia显卡,我没有ATI/AMD显卡测试,也没有用过这几种显卡。这是Ubuntu18.04上的Chromium,在没有GPU加速视频解码的情况下播放1080pYouTube视频:这是在Ubuntu18.04上使用VA-API补丁的Chromium,具有GPU加速播放相同的1080pYouTube视频并解码视频:注意屏幕截图中的CPU使用情况。两张截图都是在我的旧台式电脑上截取的,但功能仍然强大。在我的笔记本电脑上,没有硬件加速的Chromium会导致更高的CPU使用率。“仅使用VA-API在Linux上启用VAVDA、VAVEA和VAJDA”补丁已在一年多前提交给Chromium,但尚未合并。Chrome有一个选项可以覆盖软件渲染列表(#ignore-gpu-blacklist),但这个选项不会启用硬件加速视频解码。启用这个选项后,你在访问chrome://gpu时可能会发现这样的信息:“VideoDecode:Hardwareaccelerated”,但这并不意味着它真的会起作用。在YouTube上打开一个高清视频,然后使用htop之类的工具检查CPU使用率(这是我在上面的屏幕截图中用来检查CPU使用率的工具)。由于实际上并未启用GPU视频解码,因此您应该会看到CPU使用率很高。下面有一节是关于检查您是否真的在使用硬件加速视频解码的。本文使用的Chromium浏览器的Ubuntu版本有启用VA-API的补丁,此地址可用在Ubuntu和LinuxMint上安装和使用支持VA-API的Chromium浏览器每个人都应该知道Chromium开发版本并不那么稳定应该的。所以你可能会发现错误,它可能会崩溃,等等。它现在可能工作正常,但谁知道几次更新后会发生什么。此外,如果您想启用Widevine支持(这样您就可以观看Netflix视频和YouTube付费视频),ChromiumdevforkPPA需要您执行一些额外的步骤。如果您想要同步等功能(需要在您的系统上注册和设置API密钥),情况也是如此。Chromium开发PPA中详细解释了执行这些任务的说明。对于Nvidia卡,需要更新vdpau视频驱动程序以显示vaQuerySurfaceAttributes。所以Nvidia需要使用打过补丁的vdpau-va-driver。值得庆幸的是,Chromium-devPPA提供了这个补丁包。带有VA-API补丁的Chromium也可用于其他Linux发行版,在第三方存储库中,例如ArchLinux(对于Nvidia,您需要打补丁的libva-vdpau-driver)。如果您不使用Ubuntu或LinuxMint,则必须自己找到这些软件包。1.安装带有VA-API补丁的Chromium有一个带有VA-API补丁的ChromiumBetaPPA,但它缺少适用于Ubuntu18.04的vdpau-video。如果你愿意,你可以使用这个BetaPPA而不是我在下面的步骤中使用的DevPPA,但是如果你使用Nvidia显卡,你需要从这个DevPPA下载并安装vdpau-va-driver,并确认Ubuntu/LinuxMint不会更新这个包(这有点复杂,如果您要按照以下步骤使用DevPPA,则不需要手动执行此操作)。您可以添加Chromium开发分支PPA并在Ubuntu或LinuxMint(以及其他基于Ubuntu的发行版,如elementary,以及Ubuntu或LinuxMint的版本,如Xubuntu、Kubuntu、UbuntuMATE、LinuxMintMATE等)上运行它。安装最新Chromium浏览器开发版:sudoadd-apt-repositoryppa:saiarcot895/chromium-devsudoapt-getupdatesudoaptinstallchromium-browser2,安装VA-API驱动对于Intel显卡,需要安装i965-va-driver这个包(它可能已经安装)sudoaptinstalli965-va-driver对于Nvidia显卡(它应该适用于开源Nouveau驱动程序和闭源Nvidia驱动程序),安装vdpau-va-driver:sudoapt安装vdpau-va-driver3,在Chromium中启用硬件加速视频选项复制这串地址,粘贴到Chromium的地址栏:chrome://flags/#enable-accelerated-video(或者在chrome中搜索Hardware://flags-acceleratedvideo)并启用它,然后重启Chro浏览器。在默认的GoogleChrome/Chromium构建中,此选项不可用,但您可以在启用VP-API的Chromium构建中启用它。4.安装h264ifyChrome扩展YouTube(可能还有一些其他URL)默认使用VP8或VP9编解码器,许多GPU不支持这些编解码器的硬件解码。h264ify将强制YouTube使用大多数GPU支持的H.264而不是VP8/VP9。此扩展还阻止60fps视频,对低性能机器很有用。您可以右键单击视频并选择Statsfornerds以查看Youtube视频使用的编解码器,如果启用了h264ify扩展,您可以看到编解码器是avc/mp4a。如果未启用,编解码器应为vp09/opus。如何检查Chromium是否使用GPU视频解码在YouTube上打开一个视频,然后在Chromium中打开一个新选项卡,然后在URL栏中输入以下地址:chrome://media-internals。在chrome://media-internals选项卡中,单击视频的URL(将其展开),向下滚动并在播放器属性下查看,您应该找到video_decoder属性。如果video_decoder的值为GpuVideoDecoder,则表示当前在另一个选项卡中播放的YouTube视频正在使用硬件加速视频解码。如果它显示FFmpegVideoDecoder或VpxVideoDecoder,则加速视频解码不起作用或者您忘记安装或禁用h264ifyChrome扩展程序。如果它不起作用,您可以通过从命令行运行chromium-browser并查看是否显示任何与VA-API相关的错误来进行调试。您还可以运行vainfo(在Ubuntu或LinuxMint上安装:sudoaptinstallvainfo)和vdpauinfo(对于Nvidia,在Ubuntu或LinuxMint上安装:sudoaptinstallvdpauinfo)并查看是否显示任何错误。
