在 Linux 上使用 Google Chrome 或 Chromium 瀏覽器觀看bilibili、愛奇藝等網站的高清視頻時, CPU 使用率會很高,若是你用的是筆記本,電腦會發熱並且電池會很快用完。這是由於 Chrome/Chromium和firefox在 Linux 上不支持硬件加速的視頻解碼。( Firefox 的問題目前沒有辦法解決。)php
如何解決這個問題呢?請往下看:linux
請使用apt命令安裝vdpau和vaapi驅動和信息查看工具。git
sudo apt install mesa-vdpau-drivers mesa-va-drivers vdpau-va-driver vainfo vdpauinfogithub
若是是intel或amd的顯卡,兩者都有官方的開源驅動,chrome
若是是nvidia顯卡,請在「軟件和更新」的「附加驅動」中選擇閉源驅動。ubuntu
驅動程序安裝完畢後,請查看顯卡支持的視頻解碼信息。執行信息查看工具。windows
vdpauinfoapi
vainfo瀏覽器
帶有硬件加速功能的chromium瀏覽器尚未合併進入正式版,因此要添加開發版的分支。app
在此要感謝軟件的維護者Saikrishna Arcot
項目的源代碼託管在github上。https://github.com/saiarcot895/chromium-ubuntu-build
項目的安裝包託管在lauchpad上。https://launchpad.net/~saiarcot895/+archive/ubuntu/chromium-dev/+packages
能夠經過下載安裝包來安裝,也能夠選擇經過ppa來安裝。我的以爲,ppa更方便一些。目前支持16.04及以上版本的ubuntu kylin優麒麟。
sudo add-apt-repository ppa:saiarcot895/chromium-dev
更新軟件源。
sudo apt update
更新chromium。
sudo apt dist-upgrade
若是找不到app,請執行安裝命令。
sudo apt install chromium-browser
開啓視頻硬解加速功能。在瀏覽器地址欄中輸入「chrome://flags」。
搜索關鍵詞「video」,將選項Hardware-accelerated video decode設置爲enable。
瀏覽器是否在使用硬解碼呢?咱們須要驗證一下。在瀏覽器中播放一段視頻,cpu佔用率已經降到10%左右了。
在新標籤中輸入「chrome://media-internals/」。點擊正在播放的視頻連接。若是選項video_decoder中顯示的值爲MojoVideoDecoder。恭喜你,瀏覽器已經使用顯卡硬解視頻了。
PS:關於MojoVideoDecoder。
「Mojo視頻解碼器」在windows視窗操做系統的chromium中是默認開啓的,而這一里程碑式的特性在Linux系統上也實現了。
Mojo視頻解碼器是什麼?與瀏覽器的其餘特性比起來,谷歌對這項工做談論很少。直到Phoronix的一位讀者說,Linux桌面系統想要使用這個下一代的視頻解碼器須要一個補丁。你們這才注意到它。
自2018年11月初以來,Mojo視頻解碼器已被用於windows視窗操做系統、蘋果macOS操做系統和谷歌chrome操做系統。因爲時間的緣由,Linux的默認啓用在12月纔出現。
幾年來,Mojo一直是Chrome使用的進程間通訊機制(inter-process communication (IPC) mechanism)。或者更具體地說,是進程間和進程內消息傳遞的IPC基元(primitives)、消息格式和庫的抽象。他們爲視頻解碼而開發的新VDA層(VDAv2),將視頻解碼交由GPU圖形處理器來完成,而Mojo視頻解碼器是這個工做的一部分。可是整個過程存在一個追蹤器漏洞。
長話短說,底層的視頻播放有望改善chrome的視頻回放體驗。長時間以來,因爲存在漏洞,在Linux上播放chrome/chromium視頻一直被放在次要地位(或者至少對許多Linux桌面用戶來講是這樣的感受)。不過還好,2019年這種狀況將被改變。
smplayer的「選項-首選項-常規-視頻」中的「輸出驅動」選擇「vdpau」。若是是intel集成顯卡,能夠選擇「vaapi」。
本文參考了archwiki的文獻:https://wiki.archlinux.org/index.php/Hardware_video_acceleration_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)