7.1 KiB
如何在 Ubuntu 或 Linux Mint 启用硬件加速的视频解码
你或许已经注意到了,在 Linux 上使用 Google Chrome 或 Chromium 浏览器在 YouTube 或其它类似网站观看高清视频会增加你的 CPU 使用率,如果你用的是笔记本,电脑会发热而且电池会很快用完。这是因为Chrome/Chromium(Firefox 也是如此,但是 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 启用 VAVDA,VAVEA 和 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 视频正在使用硬件加速的的视频解码。
如果它显示的是 FFmpegVideoDecoder
或 VpxVideoDecoder
,说明加速视频解码无效或者你忘记安装或禁用了 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