Accelerated Video Playback: Difference between revisions

drop 24.05 compat
m Add Gentoo Wiki VAAPI Page on Also see.
 
(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>


Line 45: 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 === <!--T:23-->
 
<!--T:24-->
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>.
 
<!--T:25-->
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.
 
<!--T:26-->
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 82: Line 123:
<!--T:14-->
<!--T:14-->
<syntaxHighlight lang=ini>
<syntaxHighlight lang=ini>
hwdec=auto-safe
hwdec=auto
vo=gpu
profile=gpu-hq
gpu-context=wayland ; On wayland only
</syntaxHighlight>
</syntaxHighlight>


Line 97: Line 135:
== Also see ==
== Also see ==
* [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.
</translate>
</translate>


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