視頻播放加速
Appearance
NixOS 中的視頻播放加速通常是通過向 hardware.graphics.extraPackages
添加相關包來完成的。
安裝
Intel
❄︎ /etc/nixos/configuration.nix
{
hardware.graphics = {
enable = true;
extraPackages = with pkgs; [
intel-media-driver # For Broadwell (2014) or newer processors. LIBVA_DRIVER_NAME=iHD
intel-vaapi-driver # For older processors. LIBVA_DRIVER_NAME=i965
];
};
environment.sessionVariables = { LIBVA_DRIVER_NAME = "iHD"; }; # Optionally, set the environment variable
}
注意,intel-vaapi-driver
在較新的 Skylake (2015) 處理器上對於瀏覽器(基於 gecko/chromium)仍然表現更好。[1]
對於 32 位支持,請使用 hardware.graphics.extraPackages32
:
❄︎ /etc/nixos/configuration.nix
{
hardware.graphics.extraPackages32 = with pkgs.pkgsi686Linux; [ intel-vaapi-driver ];
}
AMD
AMD 相關硬件(至少對於 Ryzen 5 iGPU 系列)支持開箱即用:
❄︎ /etc/nixos/configuration.nix
{
hardware.graphics.enable = true;
}
NVIDIA
NVIDIA 官方並未支持 Linux 上的視頻播放加速。雖然存在第三方實現,但不支持 Chrome[2],並且與其他實現[3]相比存在顯著限制。
擁有獨立 iGPU 的 NVIDIA 用戶通常應該更喜歡使用他們的 iGPU 來實現此目的,因此請參考上面的 Intel 和 AMD 部分。
僅具有 NVIDIA GPU 的用戶可以嘗試使用第三方實現;默認情況下,添加軟件包到 hardware.graphics.extraPackages
,但之後需要進行一些額外的設置才能使用[4]:
❄︎ /etc/nixos/configuration.nix
{ config, lib, ...}: {
environment.variables.LIBVA_DRIVER_NAME = "nvidia"
# If used with Firefox
environment.variables.MOZ_DISABLE_RDD_SANDBOX = "1";
programs.firefox.preferences = let
ffVersion = config.programs.firefox.package.version;
in {
"media.ffmpeg.vaapi.enabled" = lib.versionOlder ffVersion "137.0.0";
"media.hardware-video-decoding.force-enabled" = lib.versionAtLeast ffVersion "137.0.0";
"media.rdd-ffmpeg.enabled" = lib.versionOlder ffVersion "97.0.0";
"gfx.x11-egl.force-enabled" = true;
"widget.dmabuf.force-enabled" = true;
# Set this to true if your GPU supports AV1.
#
# This can be determined by reading the output of the
# `vainfo` command, after the driver is enabled with
# the environment variable.
"media.av1.enabled" = false;
};
}
測試您的配置
您可以通過運行以下命令來測試您的配置:nix-shell -p libva-utils --run vainfo
有關更多信息,請參閱 Arch Linux wiki 的硬件視頻加速。
應用
Chromium
請參閱 Chromium 視頻加速.
Firefox
請參閱 Arch Linux wiki 的 Firefox 部分.
MPV
您可以將以下配置放在 ~/.config/mpv/mpv.conf
中:
hwdec=auto
另請參閱
- Arch Linux wiki 的硬件視頻加速。
- nixos-hardware 包含各種硬件類型的示例配置。