TranslateProject/translated/tech/20180815 How To Enable Hardware Accelerated Video Decoding In Chromium On Ubuntu Or Linux Mint.md
2018-09-12 21:15:49 +08:00

7.1 KiB
Raw Blame History

如何在 Ubuntu 或 Linux Mint 启用硬件加速的视频解码

你或许已经注意到了,在 Linux 上使用 Google Chrome 或 Chromium 浏览器在 YouTube 或其它类似网站观看高清视频会增加你的 CPU 使用率如果你用的是笔记本电脑会发热而且电池会很快用完。这是因为Chrome/ChromiumFirefox 也是如此,但是 Firefox 的问题没有办法解决)在 Linux 上不支持硬件加速的视频解码。

这篇文章讲述了如何在 Linux 环境安装带有 VA-API 补丁的 Chromium 开发版,它支持 GPU 加速的视频解码,可以显著减少观看在线高清视频时的 CPU 使用率,这篇教程只适用于 Intel 和 Nvidia 的显卡,我没有 ATI/AMD 的显卡可以试验,也没有使用过这几种显卡。

这是 Chromium 浏览器在 Ubuntu18.04 中,没有 GPU 加速视频解码时正在播放一个 1080p 的 YouTube 视频:

这是带有 VA-API 补丁的 Chromium 浏览器在 Ubuntu18.04 中GPU 加速视频解码时正在播放同样的 1080p 的 YouTube 视频:

注意截图中的 CPU 使用率。两张截图都是在我老旧而依然强大的桌面上捕捉的。在我的笔记本上,没有硬件加速的 Chromium 带来更高的CPU使用率。

"只需 VAAPI 即可在 Linux 启用 VAVDAVAVEA 和 VAJDA" 这篇文章在一年多以前就提交给了Chromium但是它还没有合并请求。

Chrome有一个选项可以覆盖软件渲染列表

#ignore-gpu-blacklist

),但是这个选项不能启用硬件加速的视频解码。启用这个选项以后,你或许会在访问

chrome://gpu

时发现这些信息:“Video Decode: Hardware accelerated “,然而这个并不意味着真的有效。在 YouTube 打开一个高清视频并用工具查看CPU使用率如

htop

(这是我在以上截图中用来查看 CPU 使用率的)。因为 GPU 视频解码没有真的被启用,你应该看到较高的 CPU 使用率。下面有一个部分是关于你是否真的在使用硬件加速的视频解码的。

文中使用的 Chromium 浏览器 Ubuntu 版启用 VA-API 的补丁在这个地址可以获得

在 Ubuntu 和 Linux Mint 安装和使用带有 VA-API 支持的 Chromium 浏览器

每个人都该知道 Chromium 开发版本没有理想中那么稳定。所以你可能发现 bug它可能会发生崩溃等情况。它现在可能正常运行但是谁知道几次更新以后会发生什么。

**还有,如果你想启用 Widevine 支持(这样你才能观看 Netflix 视频和 YouTube 付费视频Chromium dev 分支 PPA 要求你执行一些额外步骤。 ** 如果你想要一些功能,比如同步,也是如此(需要注册 API key还要在你的系统上设置好。执行这些任务的说明在本文中被详细解释了。

带有 VA-API 补丁的 Chromium 在其它Linux发行版本也可以获得但是这里选择 Ubuntu。

**1. 安装带有 VA-API 补丁的 Chromium **

有一个带 VA-API 补丁的 Chromium Beta但是它缺少适用于 Ubuntu 18.04 的 vdpau-video。

sudo add-apt-repository ppa:saiarcot895/chromium-dev
sudo apt-get update
sudo apt install chromium-browser

2. 安装 VA-API 驱动

对于Intel的显卡你需要安装 i965-va-driver 这个包(它可能早就安装好了)

sudo apt install i965-va-driver

对于 Nvidia 的显卡(在开源和闭源的 Nvidia 驱动上,它应该都有效), 安装vdpau-va-driver :

sudo apt install vdpau-va-driver

3. 在 Chromium 启用硬件加速视频选项

复制这串地址,粘贴进 Chromium 的 URL 栏: chrome://flags/#enable-accelerated-video (或者在 chrome://flags 搜索 Hardware-accelerated video )并启用它,然后重启 Chromium 浏览器。

在默认的 Google Chrome / Chromium 版本,这个选项不可用,但是你可以在启用了 VP-API 的 Chromium 版本启用它。

4. 安装 h264ify Chrome 扩展

YouTube可能还有其它一些网址也是如此默认使用 VP8 或 VP9 编码解码器,许多 GPU 不支持这种编码解码器的硬件解码。h264ify 会强制 YouTube 使用大多数 GPU 都支持的 H.264 而不是 VP8/VP9。

这个扩展还能阻塞 60fps 的视频,对低性能机器有用。

你可以点击这个视频并且选择 Stats for nerds 以查看编码解码器,如果启用了 h264ify 扩展,你可以看到编码解码器是 avc / mp4a。如果没有启用编码解码器应该是 vp09 / opus。

如何检查 Chromium 是否在使用 GPU 视频解码

在 YouTube 打开一个视频,然后,在 Chromium 打开一个新的标签页并将以下地址输入 URL 栏:

chrome://media-internals

chrome://media-internals 标签页中点击视频的URL为了展开它 往下滚动查看 Player Properties 的下面,你应该可以找到 video_decoder 属性。如果video_decoder 的值是 GpuVideoDecoder ,这说明当前在另一个标签页播放的 YouTube 视频正在使用硬件加速的的视频解码。

如果它显示的是 FFmpegVideoDecoderVpxVideoDecoder ,说明加速视频解码无效或者你忘记安装或禁用了 h264ify 这个 Chrome 扩展。

如果无效,你可以通过在命令行运行 chromium-browser ,通过查看是否有 VA-API 相关的错误显示出来以调试。你也可以运行vainfo (在 Ubuntu 或 Linux Mint 安装:sudo apt install vainfo)和 vdpauinfo (对于 Nvidia在 Ubuntu 或 Linux Mint 安装:sudo apt install vdpauinfo)并且查看是否有显示任何错误。


via: https://www.linuxuprising.com/2018/08/how-to-enable-hardware-accelerated.html

作者:Logix 选题:lujun9972 译者:GraveAccent 校对:校对者ID

本文由 LCTT 原创编译,Linux中国 荣誉推出