Accelerated Video Playback/ru: Difference between revisions

Unabomberlive (talk | contribs)
Created page with "=== Firefox ==="
Tags: Mobile edit Mobile web edit
 
FuzzyBot (talk | contribs)
Updating to match new version of source page
 
(21 intermediate revisions by 2 users not shown)
Line 1: Line 1:
<languages/>
<languages/>
<div lang="en" dir="ltr" class="mw-content-ltr">
<div class="mw-translate-fuzzy">
Accelerated video playback in NixOS is generally done by adding relevant packages to {{nixos:option|hardware.opengl.extraPackages}}.
Ускорение воспроизведения видео в NixOS обычно осуществляется путем добавления соответствующих пакетов в
{{nixos:option|hardware.opengl.extraPackages}}.
</div>
</div>


== Installation ==
<span id="Installation"></span>
== Установка ==
=== Intel ===
=== Intel ===
{{file|/etc/nixos/configuration.nix|nix|<nowiki>
{{file|/etc/nixos/configuration.nix|nix|<nowiki>
{
{
   hardware.graphics = { # hardware.opengl in 24.05 and older
   hardware.graphics = {
     enable = true;
     enable = true;
     extraPackages = with pkgs; [
     extraPackages = with pkgs; [
Line 22: Line 24:
</div>
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
Для поддержки 32-битной версии используйте {{nixos:option|hardware.graphics.extraPackages32}}:
For 32-bit support, use
</div> {{nixos:option|hardware.graphics.extraPackages32}}:
{{file|/etc/nixos/configuration.nix|nix|<nowiki>
{{file|/etc/nixos/configuration.nix|nix|<nowiki>
{
{
  # hardware.opengl.extraPackages32 in 24.05
   hardware.graphics.extraPackages32 = with pkgs.pkgsi686Linux; [ intel-vaapi-driver ];
   hardware.graphics.extraPackages32 = with pkgs.pkgsi686Linux; [ intel-vaapi-driver ];
}
}
</nowiki>}}
</nowiki>}}
<div lang="en" dir="ltr" class="mw-content-ltr">
=== AMD ===
=== AMD ===
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
Конфигурация AMD (по крайней мере, для iGPU Ryzen 5) работает из коробки:
AMD configuration (at least for Ryzen 5 iGPUs) works out of the box:
</div>
{{file|/etc/nixos/configuration.nix|nix|<nowiki>
{{file|/etc/nixos/configuration.nix|nix|<nowiki>
{
{
   hardware.opengl.enable = true;
   hardware.graphics.enable = true;
}
}
</nowiki>}}
</nowiki>}}
<div lang="en" dir="ltr" class="mw-content-ltr">
<div lang="en" dir="ltr" class="mw-content-ltr">
== Testing your configuration ==
=== NVIDIA ===
</div>
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<div lang="en" dir="ltr" class="mw-content-ltr">
You can test your configuration by running: <code>nix-shell -p libva-utils --run vainfo</code>
NVIDIA do not officially support accelerated video playback on Linux. A third-party implementation exists, but does not support Chrome<ref>https://github.com/elFarto/nvidia-vaapi-driver#chrome</ref>, and has significant limitations compared to the other implementations<ref>https://github.com/elFarto/nvidia-vaapi-driver#codec-support</ref>.
</div>
</div>


<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.
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>
<div lang="en" dir="ltr" class="mw-content-ltr">
<div lang="en" dir="ltr" class="mw-content-ltr">
== Applications ==
Users with only an NVIDIA GPU can attempt to use the third party implementation; the package is added to <code>hardware.graphics.extraPackages</code> by default, but it requires some additional setup to be useful<ref>https://github.com/elFarto/nvidia-vaapi-driver#configuration</ref>:
</div>
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
{{file|/etc/nixos/configuration.nix|nix|<nowiki>
=== Chromium ===
{ config, lib, ...}: {
</div>
  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;
  };
}
</nowiki>}}
 
<span id="Testing_your_configuration"></span>
== Проверьте вашу конфигурацию ==


Вы можете протестировать вашу конфигурацию выполнив:
<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 [[Chromium#Accelerated_video_playback]].
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>
== Приложения ==
=== Chromium ===
См. [[Chromium#Accelerated_video_playback]].
=== Firefox ===


<div class="mw-translate-fuzzy">
=== Firefox ===
=== Firefox ===
<div lang="en" dir="ltr" class="mw-content-ltr">
See [https://wiki.archlinux.org/index.php/Firefox#Hardware_video_acceleration Arch Linux wiki#Firefox].
</div>
</div>
 
<!--T:13-->
<div lang="en" dir="ltr" class="mw-content-ltr">
=== MPV ===
=== MPV ===
You can place the following configuration in {{ic|~/.config/mpv/mpv.conf}}:
Вы можете разместить следующую конфигурацию в {{ic|~/.config/mpv/mpv.conf}}:
</div>
<!--T:14-->
 
<div lang="en" dir="ltr" class="mw-content-ltr">
<syntaxHighlight lang=ini>
<syntaxHighlight lang=ini>
hwdec=auto-safe
hwdec=auto
vo=gpu
profile=gpu-hq
gpu-context=wayland ; On wayland only
</syntaxHighlight>
</syntaxHighlight>
</div>


<!--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].