MPV: Difference between revisions

imported>Doronbehar
Add instructions for launching mpv with scripts
 
m link to search.nixos.org, home-manager-options.extranix.com which is also foss
 
(18 intermediate revisions by 10 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.


* <code>mpv</code>
== Installation ==
* <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.
==== With nix-shell ====
<syntaxhighlight lang="bash" start="3">
nix-shell -p mpv
</syntaxhighlight>
 
==== With NixOS ====
<syntaxhighlight lang="text">
environment.systemPackages = [
  pkgs.mpv
];
</syntaxhighlight>
==== With Home Manager ====
<syntaxhighlight lang="text">
home.packages = [
  pkgs.mpv
];
</syntaxhighlight>
== Configuration ==
 
=== With Home Manager ===


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}}:
==== Basic ====
<syntaxhighlight lang="nix">
programs.mpv.enable = true;
</syntaxhighlight>


==== Advanced ====
<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>];
  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 ==


[https://github.com/NixOS/nixpkgs/tree/master/pkgs/applications/video/mpv/scripts {{ic|pkgs/applications/video/mpv/scripts}}]
==== 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].


So for example, for adding the MPRIS MPV script, use the following in your {{ic|~/.config/nixpkgs/config.nix}}:
==== 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.
 
Exiting... (Errors when loading file)
</syntaxhighlight>
 
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://search.nixos.org/packages?query=mpv
# https://home-manager-options.extranix.com/?query=mpv


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