MPV: Difference between revisions
imported>Samuelgrf Finding packages using nix search is better than relying on shell completion, which doesn't always work. |
m Removed numbering |
||
(13 intermediate revisions by 8 users not shown) | |||
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.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 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 == | |||
==== 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"> | |||
programs.mpv = { | |||
enable = true; | |||
}; | |||
</syntaxhighlight> | |||
==== Advanced ==== | |||
<syntaxhighlight lang="nix"> | <syntaxhighlight lang="nix"> | ||
{ | programs.mpv = { | ||
enable = true; | |||
scripts = [pkgs. | 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 == | |||
[https://github.com/NixOS/nixpkgs/tree/master/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]. | |||
==== 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 = { | ||
enable = true; | |||
mpv- | |||
package = ( | |||
} | pkgs.mpv-unwrapped.wrapper { | ||
mpv = pkgs.mpv-unwrapped.override { | |||
} | ffmpeg = pkgs.ffmpeg-full; | ||
}; | |||
} | |||
); | |||
}; | |||
</syntaxhighlight> | </syntaxhighlight> | ||
== References == | |||
# https://github.com/mpv-player/mpv/wiki | |||
# https://en.wikipedia.org/wiki/Mpv_(media_player) | |||
# https://mynixos.com/search?q=mpv | |||
[[Category:Applications]] | |||
[[Category:Media Player]] |
Revision as of 06:35, 24 June 2024
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 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
Using nix-shell
nix-shell -p mpv
System-Wide Installation on NixOS
environment.systemPackages = [
pkgs.mpv
];
After modifying your configuration, apply the changes by running:
sudo nixos-rebuild switch
User-Specific Installation with Home Manager
home.packages = [
pkgs.mpv
];
After updating your configuration, apply the changes by running:
home-manager switch
Configuration
Basic
programs.mpv = {
enable = true;
};
Advanced
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;
};
};
Tips and Tricks
Where to get scripts
To find more scripts run this in a terminal:
nix search nixpkgs mpvScripts
The scripts are also defined in the following Nixpkgs directory.
Where to find override options
The package override options are defined in the following 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).
$ mpv --log-file=foo.log av://v4l2:/dev/video5
[lavf] Unknown lavf format v4l2
Failed to recognize file format.
Exiting... (Errors when loading file)
To address this problem, you can use the following package configuration for ffmpeg.
programs.mpv = {
enable = true;
package = (
pkgs.mpv-unwrapped.wrapper {
mpv = pkgs.mpv-unwrapped.override {
ffmpeg = pkgs.ffmpeg-full;
};
}
);
};