Jump to content

Accelerated Video Playback/zh: Difference between revisions

From NixOS Wiki
Ardenet (talk | contribs)
Created page with "=== NVIDIA ==="
Ardenet (talk | contribs)
Created page with "拥有独立 iGPU 的 NVIDIA 用户通常应该更喜欢使用他们的 iGPU 来实现此目的,因此请参考上面的 Intel 和 AMD 部分。"
Line 1: Line 1:
<languages/>
<languages/>
NixOS 中的加速视频播放通常是通过向 {{nixos:option|hardware.graphics.extraPackages}} 添加相关包来完成的。
NixOS 中的视频播放加速通常是通过向 {{nixos:option|hardware.graphics.extraPackages}} 添加相关包来完成的。


<span id="Installation"></span>
<span id="Installation"></span>
Line 40: Line 40:
</div>
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
拥有独立 iGPU 的 NVIDIA 用户通常应该更喜欢使用他们的 iGPU 来实现此目的,因此请参考上面的 Intel AMD 部分。
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.
</div>


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

Revision as of 17:12, 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].

擁有獨立 iGPU 的 NVIDIA 用戶通常應該更喜歡使用他們的 iGPU 來實現此目的,因此請參考上面的 Intel 和 AMD 部分。

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 部分.

另請參閱