Accelerated Video Playback: Difference between revisions

Unabomberlive (talk | contribs)
No edit summary
TLATER (talk | contribs)
m Add missing module args to he nvidia config example
 
(6 intermediate revisions by 5 users not shown)
Line 2: Line 2:
<translate>
<translate>
<!--T:1-->
<!--T:1-->
Accelerated video playback in NixOS is generally done by adding relevant packages to {{nixos:option|hardware.opengl.extraPackages}}.
Accelerated video playback in NixOS is generally done by adding relevant packages to {{nixos:option|hardware.graphics.extraPackages}}.
</translate>
</translate>


<translate>
<translate>
== Installation ==
== Installation == <!--T:18-->
</translate>
</translate>
<translate>
<translate>
=== Intel ===
=== Intel === <!--T:19-->
</translate>
</translate>
{{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 34: Line 34:
{{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 ];
}
}
Line 46: Line 45:
{{file|/etc/nixos/configuration.nix|nix|<nowiki>
{{file|/etc/nixos/configuration.nix|nix|<nowiki>
{
{
   hardware.opengl.enable = true;
   hardware.graphics.enable = true;
}
</nowiki>}}
 
<translate>
=== NVIDIA ===
 
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>.
 
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 <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>:
</translate>
 
{{file|/etc/nixos/configuration.nix|nix|<nowiki>
{ 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;
  };
}
}
</nowiki>}}
</nowiki>}}
<translate>
<translate>
== Testing your configuration == <!--T:6-->
== Testing your configuration == <!--T:6-->


Line 63: Line 100:
</translate>
</translate>
<translate>
<translate>
=== Chromium === <!--T:10-->
<!--T:10-->
=== Chromium ===
See [[Chromium#Accelerated_video_playback]].
See [[Chromium#Accelerated_video_playback]].
</translate>
</translate>
Line 74: Line 112:
<!--T:13-->
<!--T:13-->
<translate>
<translate>
=== MPV ===
=== MPV === <!--T:20-->
</translate>
<translate>
<!--T:21-->
You can place the following configuration in {{ic|~/.config/mpv/mpv.conf}}:
You can place the following configuration in {{ic|~/.config/mpv/mpv.conf}}:
</translate>
</translate>
Line 87: Line 128:
<!--T:15-->
<!--T:15-->
<translate>
<translate>
<!--T:22-->
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].
</translate>
</translate>