2021-05-12 14:32:11
如何在 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
sudoapt-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公社的RSS地址:https://www.linuxidc.com/rssFeed.aspx
本文永久更新連結地址:https://www.linuxidc.com/Linux/2018-09/154067.htm
相關文章