如何在 Ubuntu 或 Linux Mint 啟用 Chromium 硬體加速的視頻解碼
你或許已經注意到了,在 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」 這個補丁在一年多以前就提交給了 Chromium,但是它還沒有合併。
Chrome 有一個選項可以覆蓋軟體渲染列表(#ignore-gpu-blacklist
),但是這個選項不能啟用硬體加速的視頻解碼。啟用這個選項以後,你或許會在訪問 chrome://gpu
時發現這些信息:「Video Decode: Hardware accelerated 「,然而這個並不意味著真的可以工作。在 YouTube 打開一個高清視頻並用諸如 htop
的工具查看 CPU 使用率(這是我在以上截圖中用來查看 CPU 使用率的)。因為 GPU 視頻解碼沒有真的被啟用,你應該看到較高的 CPU 使用率。下面有一個部分是關於檢查你是否真的在使用硬體加速的視頻解碼的。
文中使用的 Chromium 瀏覽器 Ubuntu 版啟用 VA-API 的補丁在這個地址可以獲得
在 Ubuntu 和 Linux Mint 安裝和使用帶有 VA-API 支持的 Chromium 瀏覽器
每個人都該知道 Chromium 開發版本沒有理想中那麼穩定。所以你可能發現 bug,它可能會發生崩潰等情況。它現在可能正常運行,但是誰知道幾次更新以後會發生什麼。
還有,如果你想啟用 Widevine 支持(這樣你才能觀看 Netflix 視頻和 YouTube 付費視頻),Chromium dev 分支 PPA 要求你執行一些額外步驟。 如果你想要一些功能,比如同步,也是如此(需要註冊 API 密鑰還要在你的系統上設置好)。執行這些任務的說明在 Chromium 開發版本的 PPA 中有詳細解釋。
對於 Nvidia 顯卡,vdpau 視頻驅動程序需要更新以便顯示 vaQuerySurfaceAttributes。所以 Nvidia 需要使用打過補丁的 vdpau-va-driver。值得慶幸的是,Chromium-dev PPA 提供了這個打過補丁的包。
帶有 VA-API 補丁的 Chromium 也可用於其它 Linux 發行版,在第三方倉庫,比如說 Arch Linux(對於 Nvidia 你需要這個補丁過的 libva-vdpau-driver)。如果你不使用 Ubuntu 或 Linux Mint,你得自己找那些包。
1、安裝帶有 VA-API 補丁的 Chromium
有一個帶 VA-API 補丁的 Chromium Beta PPA,但是它缺少適用於 Ubuntu 18.04 的 vdpau-video。如果你需要,你可以使用這個 Beta PPA,而不是我在下面的步驟中使用 Dev PPA,不過如果你使用 Nvidia 顯卡,你需要從這個 Dev PPA 中下載安裝 vdpau-va-driver,並確認 Ubuntu/Linux Mint 不更新這個包(有點複雜,如果你準備根據下面步驟使用 Dev PPA 的話,不需要手動做這些)。
你可以添加 Chromium 開發分支 PPA,並在 Ubuntu 或 Linux Mint(及其它基於 Ubuntu 的發行版,如 elementary,以及 Ubuntu 或 Linux Mint 的風味版,如 Xubuntu、Kubuntu、Ubuntu MATE、Linux Mint MATE 等等)上安裝最新的 Chromium 瀏覽器開發版:
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 的顯卡(在開源的 Nouveau 驅動和閉源的 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
以查看 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 選題:lujun9972 譯者:GraveAccent 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive