MPV: Difference between revisions
fix configuration example |
I changed the wiki entry by carefully dividing the information into more manageable sections, making it more accessible and easier to navigate for users. |
||
Line 1: | Line 1: | ||
[https://mpv.io/ MPV] is an open-source command line media player known for its high performance, versatility, and minimalist design. | [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. | ||
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 | 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. | ||
== Installation == | == Installation == | ||
=== Using | ==== 2.1 Using nix-shell ==== | ||
<syntaxhighlight lang="bash" start="3"> | |||
nix-shell -p mpv | nix-shell -p mpv | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== System-Wide Installation on NixOS === | ==== 2.2 System-Wide Installation on NixOS ==== | ||
<syntaxhighlight lang="text"> | |||
environment.systemPackages = [ | environment.systemPackages = [ | ||
pkgs.mpv | |||
]; | ]; | ||
</syntaxhighlight>After modifying your configuration, apply the changes by running:<syntaxhighlight lang=" | </syntaxhighlight>After modifying your configuration, apply the changes by running:<syntaxhighlight lang="bash"> | ||
sudo nixos-rebuild switch | sudo nixos-rebuild switch | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== User-Specific Installation with Home Manager === | ==== 2.3 User-Specific Installation with Home Manager ==== | ||
<syntaxhighlight lang="text"> | |||
home.packages = [ | home.packages = [ | ||
pkgs.mpv | pkgs.mpv | ||
]; | ]; | ||
</syntaxhighlight>After updating your configuration, apply the changes by running:<syntaxhighlight lang=" | </syntaxhighlight>After updating your configuration, apply the changes by running:<syntaxhighlight lang="bash"> | ||
home-manager switch | home-manager switch | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== Configuration == | == Configuration == | ||
==== 3.1 Basic ==== | |||
<syntaxhighlight lang="nix"> | |||
programs.mpv = { | programs.mpv = { | ||
enable = true; | enable = true; | ||
}; | }; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
==== 3.2 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> | ||
== | == Tips and Tricks == | ||
==== 4.1 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]. | |||
==== 4.2 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 == | |||
If you get the following sort of error, note that | ==== 5.1 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"> | <syntaxhighlight lang="shell"> | ||
Line 86: | Line 92: | ||
enable = true; | enable = true; | ||
package = | package = ( | ||
pkgs.mpv-unwrapped.wrapper { | |||
mpv = pkgs.mpv-unwrapped.override { | mpv = pkgs.mpv-unwrapped.override { | ||
ffmpeg = pkgs.ffmpeg-full; | ffmpeg = pkgs.ffmpeg-full; | ||
}; | }; | ||
}); | } | ||
); | |||
}; | }; | ||
</syntaxhighlight> | </syntaxhighlight> |