Jump to content

Accelerated Video Playback/zh: Difference between revisions

From NixOS Wiki
Ardenet (talk | contribs)
No edit summary
Tags: Mobile edit Mobile web edit
Ardenet (talk | contribs)
Created page with "=== NVIDIA ==="
Line 34: Line 34:
</nowiki>}}
</nowiki>}}


<div lang="en" dir="ltr" class="mw-content-ltr">
=== NVIDIA ===
=== NVIDIA ===
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<div lang="en" dir="ltr" class="mw-content-ltr">

Revision as of 17:10, 7 October 2025

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 do not officially support accelerated video playback on Linux. A third-party implementation exists, but does not support Chrome[2], and has significant limitations compared to the other implementations[3].

NVIDIA users with a separate iGPU should generally prefer to use their iGPU for this, and therefore look to the above Intel and AMD sections instead.

Users with only an NVIDIA GPU can attempt to use the third party implementation; the package is added to hardware.graphics.extraPackages by default, but it requires some additional setup to be useful[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#Accelerated_video_playback.

Firefox

請參閱 Arch Linux wiki 的 Firefox 部分.

MPV

您可以將以下配置放在 ~/.config/mpv/mpv.conf 中:

hwdec=auto

請參閱 Arch Linux wiki 的 mpv 部分.

另請參閱