ブラウザのハードウェアビデオデコードには、Vaapiを使用してUbuntu 24.04を使用しています。 LinuxでGoogle ChromeおよびMicrosoft Edgeでハードウェアデコードを有効にするには、コマンドラインパラメーター( " - enable-features = vaapivideoeencoder、vaapivideodecodelinuxgl)を追加する必要があります。 .desktopファイルの「exec」から始めます
これは十分に簡単ですが、問題は、これらのブラウザのいずれかにソフトウェアアップデートがあるときはいつでも、その.desktopファイルが上書きされているため、もう一度行う必要があることです。更新されたデスクトップファイルを〜/.local/share/アプリケーションに配置することができます。ここでは、オリジナルをオーバーライドして上書きされていませんが、更新がブラウザアイコンへのパスを変更して、ブラウザボタンが消えます。これにうんざりした後、私はこのスクリプトを書くことにしました。
それを実行すると、必要なパラメーターで終了しないリストされているデスクトップファイルのエグゼクティブラインが追加され、まだそのままにしておくことができます。更新されたファイルは、〜/.local/share/アプリケーションにコピーされ、元々インストールされている.desktopファイルをオーバーライドします。後続の更新の影響を受けないため、VAAPIパラメーターはそれらを生き残りますが、アイコンパスなどが更新で変更される場合があります。これにより、このスクリプトを再実行する必要があります。
デスクトップファイル配列には、その配列にリストされているすべてのデスクトップファイルに適用される対応するコマンドラインパラメーターが必要です。配列には、対応するコマンドラインパラメーターをオンにすることができるすべてのブラウザデスクトップファイルのフルパスを含める必要があります。私のもの: -
Chromiumに基づくブラウザの場合> =バージョン131
declare -a desktopFiles=( " /var/lib/snapd/desktop/applications/brave_brave.desktop "
" /var/lib/snapd/desktop/applications/chromium_chromium.desktop "
" /usr/share/applications/microsoft-edge.desktop "
" /usr/share/applications/google-chrome.desktop " )
params= " --enable-features=AcceleratedVideoDecodeLinuxZeroCopyGL,AcceleratedVideoDecodeLinuxGL,AcceleratedVideoEncoder "Chromium <バージョン131に基づくブラウザの場合
declare -a desktopFiles2=() # None now, all browsers upgraded to version 131
params2= " --enable-features=VaapiVideoDecoder,VaapiVideoEncoder,VaapiVideoDecodeLinuxGL "PARAMS変数は、保証するパラメーターに設定され、対応する配列にリストされているファイルのexec行に追加されます。 ProcessDeskTopFiles関数は、必要なexec Lineパラメーターを最初の引数として、デスクトップファイルパス配列を次のように呼び出します。
processDeskTopFiles $params " ${desktopFiles[@]} "
processDeskTopFiles $params2 " ${desktopFiles2[@]} " ユーザーアカウントを使用してスクリプトを実行します: -
./update-desktop-files.shそれでおしまい!