Jump to content

Accelerated Video Playback/ru: Difference between revisions

From Official NixOS Wiki
FuzzyBot (talk | contribs)
Updating to match new version of source page
FuzzyBot (talk | contribs)
Updating to match new version of source page
Tags: Mobile edit Mobile web edit
 
Line 7: Line 7:
<span id="Installation"></span>
<span id="Installation"></span>
== Установка ==
== Установка ==
=== Intel ===
=== Intel ===
{{file|/etc/nixos/configuration.nix|nix|<nowiki>
{{file|/etc/nixos/configuration.nix|nix|<nowiki>
{
  pkgs,
  ...
}:
{
{
   hardware.graphics = {
   hardware.graphics = {
Line 17: Line 24:
     ];
     ];
   };
   };
   environment.sessionVariables = { LIBVA_DRIVER_NAME = "iHD"; }; # Optionally, set the environment variable
   environment.sessionVariables = {
    LIBVA_DRIVER_NAME = "iHD";
  }; # Optionally, set the environment variable
}
}
</nowiki>}}
</nowiki>}}
<div lang="en" dir="ltr" class="mw-content-ltr">
<div lang="en" dir="ltr" class="mw-content-ltr">
Note, <code>intel-vaapi-driver</code> still performs better for browsers (gecko/chromium based) on newer Skylake (2015) processors.<ref>https://github.com/intel/media-driver/issues/1024</ref>
Note, <code>intel-vaapi-driver</code> still performs better for browsers (gecko/chromium based) on newer Skylake (2015) processors.<ref>https://github.com/intel/media-driver/issues/1024</ref>
Line 25: Line 35:


Для поддержки 32-битной версии используйте {{nixos:option|hardware.graphics.extraPackages32}}:
Для поддержки 32-битной версии используйте {{nixos:option|hardware.graphics.extraPackages32}}:
{{file|/etc/nixos/configuration.nix|nix|<nowiki>
{{file|/etc/nixos/configuration.nix|nix|<nowiki>
{
  pkgs,
  ...
}:
{
{
   hardware.graphics.extraPackages32 = with pkgs.pkgsi686Linux; [ intel-vaapi-driver ];
   hardware.graphics.extraPackages32 = with pkgs.pkgsi686Linux; [ intel-vaapi-driver ];
}
}
</nowiki>}}
</nowiki>}}
=== AMD ===
=== AMD ===


Конфигурация AMD (по крайней мере, для iGPU Ryzen 5) работает из коробки:
Конфигурация AMD (по крайней мере, для iGPU Ryzen 5) работает из коробки:
{{file|/etc/nixos/configuration.nix|nix|<nowiki>
{{file|/etc/nixos/configuration.nix|nix|<nowiki>
{
{
Line 55: Line 72:
</div>
</div>


{{file|/etc/nixos/configuration.nix|nix|<nowiki>
{{file|3=<nowiki>
{ config, lib, ...}: {
{
   environment.variables.LIBVA_DRIVER_NAME = "nvidia"
  config,
  lib,
  ...
}:
 
{
   environment.variables.LIBVA_DRIVER_NAME = "nvidia";


   # If used with Firefox
   # If used with Firefox
   environment.variables.MOZ_DISABLE_RDD_SANDBOX = "1";
   environment.variables.MOZ_DISABLE_RDD_SANDBOX = "1";


   programs.firefox.preferences = let
   programs.firefox.preferences =
    ffVersion = config.programs.firefox.package.version;
    let
  in {
      ffVersion = config.programs.firefox.package.version;
    "media.ffmpeg.vaapi.enabled" = lib.versionOlder ffVersion "137.0.0";
    in
    "media.hardware-video-decoding.force-enabled" = lib.versionAtLeast ffVersion "137.0.0";
    {
    "media.rdd-ffmpeg.enabled" = lib.versionOlder ffVersion "97.0.0";
      "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;
      "gfx.x11-egl.force-enabled" = true;
    "widget.dmabuf.force-enabled" = true;
      "widget.dmabuf.force-enabled" = true;


    # Set this to true if your GPU supports AV1.
      # Set this to true if your GPU supports AV1.
    #
      #
    # This can be determined by reading the output of the
      # This can be determined by reading the output of the
    # `vainfo` command, after the driver is enabled with
      # `vainfo` command, after the driver is enabled with
    # the environment variable.
      # the environment variable.
    "media.av1.enabled" = false;
      "media.av1.enabled" = false;
  };
    };
}
}
</nowiki>}}
</nowiki>|name=/etc/nixos/configuration.nix|lang=nix}}


<span id="Testing_your_configuration"></span>
<span id="Testing_your_configuration"></span>
Line 87: Line 112:
Вы можете протестировать вашу конфигурацию выполнив:
Вы можете протестировать вашу конфигурацию выполнив:
<code>nix-shell -p libva-utils --run vainfo</code>
<code>nix-shell -p libva-utils --run vainfo</code>
<div lang="en" dir="ltr" class="mw-content-ltr">
<div lang="en" dir="ltr" class="mw-content-ltr">
See [https://wiki.archlinux.org/index.php/Hardware_video_acceleration#Verification Arch Linux wiki#Hardware video acceleration] for more information.
See [https://wiki.archlinux.org/index.php/Hardware_video_acceleration#Verification Arch Linux wiki#Hardware video acceleration] for more information.
</div>
</div>
<span id="Applications"></span>
<span id="Applications"></span>
== Приложения ==
== Приложения ==
<span id="Chromium"></span>
<div class="mw-translate-fuzzy">
=== Chromium ===
=== Chromium ===
См. [[Chromium#Accelerated_video_playback]].
См. [[Chromium#Accelerated_video_playback]].
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
See [[Chromium#Accelerated_video_playback]].
</div>
=== Firefox ===
=== Firefox ===


Line 99: Line 135:
=== Firefox ===
=== Firefox ===
</div>
</div>
<!--T:13-->
 
=== MPV ===
=== MPV ===
Вы можете разместить следующую конфигурацию в {{ic|~/.config/mpv/mpv.conf}}:
Вы можете разместить следующую конфигурацию в {{ic|~/.config/mpv/mpv.conf}}:
<!--T:14-->
 
<syntaxHighlight lang=ini>
<syntaxHighlight lang=ini>
hwdec=auto
hwdec=auto
</syntaxHighlight>
</syntaxHighlight>


<!--T:15-->
<div lang="en" dir="ltr" class="mw-content-ltr">
<div lang="en" dir="ltr" class="mw-content-ltr">
See [https://wiki.archlinux.org/title/mpv#Hardware_video_acceleration Arch Linux wiki#mpv].
See [https://wiki.archlinux.org/title/mpv#Hardware_video_acceleration Arch Linux wiki#mpv].
</div>
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
<div lang="en" dir="ltr" class="mw-content-ltr">
== Also see ==
== Also see ==
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
* [https://wiki.archlinux.org/index.php/Hardware_video_acceleration Arch Linux wiki#Hardware video acceleration].
* [https://wiki.archlinux.org/index.php/Hardware_video_acceleration Arch Linux wiki#Hardware video acceleration].
* [https://wiki.gentoo.org/wiki/VAAPI Gentoo Wiki#VAAPI.]
* [https://github.com/NixOS/nixos-hardware nixos-hardware] has example configurations for various types of hardware.
* [https://github.com/NixOS/nixos-hardware nixos-hardware] has example configurations for various types of hardware.
</div>
</div>


[[Category:Video]]
[[Category:Video]]

Latest revision as of 18:49, 15 August 2026

Ускорение воспроизведения видео в NixOS обычно осуществляется путем добавления соответствующих пакетов в hardware.opengl.extraPackages.

Установка

Intel

❄︎ /etc/nixos/configuration.nix
{
  pkgs,
  ...
}:

{
  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
}

Note, intel-vaapi-driver still performs better for browsers (gecko/chromium based) on newer Skylake (2015) processors.[1]

Для поддержки 32-битной версии используйте hardware.graphics.extraPackages32:

❄︎ /etc/nixos/configuration.nix
{
  pkgs,
  ...
}:
{
  hardware.graphics.extraPackages32 = with pkgs.pkgsi686Linux; [ intel-vaapi-driver ];
}

AMD

Конфигурация AMD (по крайней мере, для iGPU Ryzen 5) работает из коробки:

❄︎ /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

Приложения

Firefox

Firefox

MPV

Вы можете разместить следующую конфигурацию в ~/.config/mpv/mpv.conf:

hwdec=auto

Also see