Jump to content

MPV: Difference between revisions

2,238 bytes added ,  24 June
m
Removed numbering
imported>Doronbehar
(Add instructions for launching mpv with scripts)
 
m (Removed numbering)
 
(15 intermediate revisions by 9 users not shown)
Line 1: Line 1:
There are 2 packages that provide an {{ic|mpv}} executable:
[https://mpv.io/ MPV] is an open-source command line media player known for its high performance, versatility, and minimalist design.While it has a basic GUI, MPV can be paired with a GUI front-end like [[SMPlayer]] (package: smplayer) to offer a user-friendly interface similar to other desktop media players.


* <code>mpv</code>
MPV supports a wide range of video and audio formats, ensuring extensive compatibility. It features advanced video rendering capabilities, including high-quality scaling algorithms, color management, and HDR support, which contribute to superior video playback quality. MPV leverages hardware-accelerated video decoding through APIs such as VA-API, VDPAU, and DXVA2, improving performance and reducing CPU usage. The player’s minimalist design emphasizes efficiency, offering a streamlined user experience with extensive configurability through command-line options and scripting interfaces. 
* <code>mpv-with-scripts</code>


{{ic|mpv-with-scripts}} is a wrapper for the {{ic|mpv}} binary which adds {{ic|--script<nowiki>=</nowiki>}} arguments according to the scripts the wrapper was built with.
== Installation ==


If you'd like to add scripts to your {{ic|mpv}} wrapper, you'll need to override the package in {{ic|~/.config/nixpkgs/config.nix}}:
==== Using nix-shell ====
<syntaxhighlight lang="bash" start="3">
nix-shell -p mpv
</syntaxhighlight>
 
==== System-Wide Installation on NixOS ====
<syntaxhighlight lang="text">
environment.systemPackages = [
  pkgs.mpv
];
</syntaxhighlight>After modifying your configuration, apply the changes by running:<syntaxhighlight lang="bash">
sudo nixos-rebuild switch
</syntaxhighlight>
 
==== User-Specific Installation with Home Manager ====
<syntaxhighlight lang="text">
home.packages = [
  pkgs.mpv
];
</syntaxhighlight>After updating your configuration, apply the changes by running:<syntaxhighlight lang="bash">
home-manager switch
</syntaxhighlight>


== Configuration ==
==== Basic ====
<syntaxhighlight lang="nix">
<syntaxhighlight lang="nix">
{
programs.mpv = {
   packageOverrides = pkgs: with pkgs; rec {
    enable = true;
     mpv-with-scripts = pkgs.mpv-with-scripts.override {
};
       scripts = [pkgs.mpvScripts.<your choice>];
</syntaxhighlight>
     };
 
==== Advanced ====
<syntaxhighlight lang="nix">
programs.mpv = {
   enable = true;
 
  package = (
     pkgs.mpv-unwrapped.wrapper {
       scripts = with pkgs.mpvScripts; [
        uosc
        sponsorblock
      ];
 
      mpv = pkgs.mpv-unwrapped.override {
        waylandSupport = true;
      };
     }
  );
 
  config = {
    profile = "high-quality";
    ytdl-format = "bestvideo+bestaudio";
    cache-default = 4000000;
   };
   };
}
};
</syntaxhighlight>
</syntaxhighlight>


All of the scripts for MPV can be found under the {{ic|mpvScripts}} attribute. If you have shell completion for {{ic|nix-env -iA}}, you can discover them there, if not, you can find them in the following directory of the Nixpkgs source code:
== Tips and Tricks ==
 
==== Where to get scripts ====
To find more scripts run this in a terminal: <syntaxhighlight lang="bash">
nix search nixpkgs mpvScripts
</syntaxhighlight>The scripts are also defined in the following [https://github.com/NixOS/nixpkgs/tree/master/pkgs/applications/video/mpv/scripts Nixpkgs directory].
 
==== Where to find override options ====
The package override options are defined in the following [https://github.com/NixOS/nixpkgs/blob/master/pkgs/applications/video/mpv/default.nix Nixpkgs directory].
 
== Troubleshooting ==
 
==== Error, unknown format ====
If you get the following sort of error, note that MPV currently uses the small ffmpeg version (ffmpeg_5) instead of the full version (ffmpeg_5-full).
 
<syntaxhighlight lang="shell">
$ mpv --log-file=foo.log av://v4l2:/dev/video5
[lavf] Unknown lavf format v4l2
Failed to recognize file format.


[https://github.com/NixOS/nixpkgs/tree/master/pkgs/applications/video/mpv/scripts {{ic|pkgs/applications/video/mpv/scripts}}]
Exiting... (Errors when loading file)
</syntaxhighlight>


So for example, for adding the MPRIS MPV script, use the following in your {{ic|~/.config/nixpkgs/config.nix}}:
To address this problem, you can use the following package configuration for ffmpeg.


<syntaxhighlight lang="nix">
<syntaxhighlight lang="nix">
{
programs.mpv = {
   packageOverrides = pkgs: with pkgs; rec {
   enable = true;
     mpv-with-scripts = pkgs.mpv-with-scripts.override {
 
      scripts = [pkgs.mpvScripts.mpris];
  package = (
     };
     pkgs.mpv-unwrapped.wrapper {
   };
      mpv = pkgs.mpv-unwrapped.override {
}
        ffmpeg = pkgs.ffmpeg-full;
      };
     }
   );
};
</syntaxhighlight>
</syntaxhighlight>


== Running mpv with scripts ==
== References ==
 
# https://github.com/mpv-player/mpv/wiki
# https://en.wikipedia.org/wiki/Mpv_(media_player)
# https://mynixos.com/search?q=mpv


If you'd like to add
[[Category:Applications]]
[[Category:Media Player]]
48

edits