2023年3月24日 星期五

啟動瀏覽器的硬體解碼加速(Firefox, Chromium like);Enable browers' hardware decode (Firefox, Chromium like)

      自從裝了 DG2 之後,不斷地嘗試各種軟體的 Encode/ Decode 功能,除了 mpv 之外,最常使用的軟體就是 Web Browser 了。

      我的主力 Browser 是 Firefox,次之是用 Brave 來應付 Firefox 不正常的部份。截至該篇文章的軟體版本如下:

  • Firefox 111.0.1
  • Brave 1.49.128

    目前 Browser 都是透過 vaapi 來進行 hardware decode,目前 Firefox 只要是 vaapi 支援的格式,都能順利硬體解碼(h264, VP9, AV1)。

      Brave (Chromium like) 目前只支援 h264, VP9,希望未來能補齊。
 

Firefox 設定

在 URL 上輸入 about:config,確認以下的設定,設定完成後重開 Firefox。

"media.ffmpeg.vaapi.enabled", true;"
"media.ffvpx.enabled", false;
"media.navigator.mediadatadecoder_vpx_enabled", true;"
"media.rdd-vpx.enabled", false;
"gfx.webrender.all", true;

重開後,再開啟一個 terminal,並執行 intel_gpu_top,同時 Firefox 瀏覽 youtube,在觀看影片的同時確認一下 intel_gpu_top 的 “VIDEO”那一欄是否有變動。如果會有數字變化,表示您的 Firefox 的 HW Decode 有正常啟動。

而我自已寫了一個 script 來快速設定

#!/bin/bash
#
#FF_CONF=~/.mozilla/firefox/fr56ktsi.default-release/prefs.js
FF_CONF="$1"

if [ -z ${FF_CONF} ]; then
	echo "no config. please specifiy prefs.js path."
	exit -1
fi

echo "user_pref(\"media.ffmpeg.vaapi.enabled\", true);" >> ${FF_CONF}
echo "user_pref(\"media.ffvpx.enabled\", false);" >> ${FF_CONF}
echo "user_pref(\"media.navigator.mediadatadecoder_vpx_enabled\", true);" >> ${FF_CONF}
echo "user_pref(\"media.rdd-vpx.enabled\", false);" >> ${FF_CONF}
echo "user_pref(\"gfx.webrender.all\", true);" >> ${FF_CONF} 

開啟一個 terminal 後,執行剛剛的 script,目的檔是個人的 firefox profile 目錄下的 prefs.js,使用前記得先關閉 Firefox,設定好後再開啟 Firefox.

 

Brave (Chromium lik) 設定

首先要確認您的 Browser 版本,因為我在設定 Brave 的時候一直失敗,結果 Brave 有更新後,同樣的設定竟然就成功 HW Decode 了,所以先確認您的版本是否跟我一樣。

這裡我們以指令的方式開啟,在 Terminal 輸入

/usr/bin/brave-browser \
	--use-gl=egl \
	--ignore-gpu-blocklist \
	--enable-features=VaapiVideoDecoder \
	--disable-features=UseChromeOSDirectVideoDecoder

開啟 browser 後,在 URL 上輸入 "chrome//gpu",檢視看看是否跟附圖一樣:


再次打開 youtube,開啟影片撥放,確認 intel_gpu_top 的 Video 欄位是否有變化,如果有的話就先恭囍您能正常 decode。

沒有留言: