歡迎光臨
每天分享高質量文章

如何在 Ubuntu 或 Linux Mint 啟用 Chromium 硬體加速的影片解碼 | Linux 中國

Chrome/Chromium(Firefox 也是如此,但是 Firefox 的問題沒有辦法解決)在 Linux 上不支援硬體加速的影片解碼。
— Logix


致謝
編譯自 | 
https://www.linuxuprising.com/2018/08/how-to-enable-hardware-accelerated.html
 
 作者 | Logix
 譯者 | GraveAccent ?共計翻譯:1.0 篇 貢獻時間:1 天

你或許已經註意到了,在 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 使用率。

“只需 VA-API 即可在 Linux 啟用 VAVDA、VAVEA 和 VAJDA” 這個補丁[1]在一年多以前就提交給了 Chromium,但是它還沒有合併。

Chrome 有一個選項可以改寫軟體渲染串列(#ignore-gpu-blacklist),但是這個選項不能啟用硬體加速的影片解碼。啟用這個選項以後,你或許會在訪問 chrome://gpu 時發現這些資訊:“Video Decode: Hardware accelerated “,然而這個並不意味著真的可以工作。在 YouTube 開啟一個高畫質影片並用諸如 htop 的工具檢視 CPU 使用率(這是我在以上截圖中用來檢視 CPU 使用率的)。因為 GPU 影片解碼沒有真的被啟用,你應該看到較高的 CPU 使用率。下麵有一個部分是關於檢查你是否真的在使用硬體加速的影片解碼的。

文中使用的 Chromium 瀏覽器 Ubuntu 版啟用 VA-API 的補丁在這個地址[2]可以獲得

在 Ubuntu 和 Linux Mint 安裝和使用帶有 VA-API 支援的 Chromium 瀏覽器

每個人都該知道 Chromium 開發版本沒有理想中那麼穩定。所以你可能發現 bug,它可能會發生崩潰等情況。它現在可能正常執行,但是誰知道幾次更新以後會發生什麼。

還有,如果你想啟用 Widevine 支援(這樣你才能觀看 Netflix 影片和 YouTube 付費影片),Chromium dev 分支 PPA 要求你執行一些額外步驟。 如果你想要一些功能,比如同步,也是如此(需要註冊 API 金鑰還要在你的系統上設定好)。執行這些任務的說明在 Chromium 開發版本的 PPA[3] 中有詳細解釋。

對於 Nvidia 顯示卡,vdpau 影片驅動程式需要更新以便顯示 vaQuerySurfaceAttributes。所以 Nvidia 需要使用打過補丁的 vdpau-va-driver。值得慶幸的是,Chromium-dev PPA 提供了這個打過補丁的包。

帶有 VA-API 補丁的 Chromium 也可用於其它 Linux 發行版,在第三方倉庫,比如說 Arch Linux[4](對於 Nvidia 你需要這個[5]補丁過的 libva-vdpau-driver)。如果你不使用 Ubuntu 或 Linux Mint,你得自己找那些包。

1、安裝帶有 VA-API 補丁的 Chromium

有一個帶 VA-API 補丁的 Chromium Beta PPA,但是它缺少適用於 Ubuntu 18.04 的 vdpau-video。如果你需要,你可以使用這個 Beta PPA[6],而不是我在下麵的步驟中使用 Dev PPA[7],不過如果你使用 Nvidia 顯示卡,你需要從這個 Dev PPA 中下載安裝 vdpau-va-driver,並確認 Ubuntu/Linux Mint 不更新這個包(有點複雜,如果你準備根據下麵步驟使用 Dev PPA 的話,不需要手動做這些)。

你可以新增 Chromium 開發分支 PPA[3],併在 Ubuntu 或 Linux Mint(及其它基於 Ubuntu 的發行版,如 elementary,以及 Ubuntu 或 Linux Mint 的風味版,如 Xubuntu、Kubuntu、Ubuntu MATE、Linux Mint MATE 等等)上安裝最新的 Chromium 瀏覽器開發版:

  1. sudo add-apt-repository ppa:saiarcot895/chromium-dev

  2. sudo apt-get update

  3. sudo apt install chromium-browser

2、安裝 VA-API 驅動

對於 Intel 的顯示卡,你需要安裝 i965-va-driver 這個包(它可能早就安裝好了)

  1. sudo apt install i965-va-driver

對於 Nvidia 的顯示卡(在開源的 Nouveau 驅動和閉源的 Nvidia 驅動上,它應該都有效), 安裝 vdpau-va-driver

  1. 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[8] Chrome 擴充套件

YouTube(可能還有其它一些網址也是如此)預設使用 VP8 或 VP9 編碼解碼器,許多 GPU 不支援這種編碼解碼器的硬體解碼。h264ify 會強制 YouTube 使用大多數 GPU 都支援的 H.264 而不是 VP8/VP9。

這個擴充套件還能阻塞 60fps 的影片,對低效能機器有用。

你可以在影片上右鍵點選,並且選擇 Stats for nerds 以檢視 Youtube 影片所使用額編碼解碼器,如果啟用了 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[10] 選題:lujun9972 譯者:GraveAccent 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出

贊(0)

分享創造快樂