37.5k stars · GPL-2.0 or later · v0.41.0 (2025-12-21) · Track this in Scout
A command-line media player that handles most audio, video and subtitle formats and can be scripted.
▶Repo detailsthe review · specs · pros & cons · install
What it does
You give it a file, a folder or a web address and it plays it. It covers a very wide range of formats, because it is built on the FFmpeg libraries, which are the collection of decoders most media software uses. Subtitles are handled by a dedicated library and are unusually good. Everything it does can be driven from the command line, from a configuration file, or from a script written in Lua, and there is a client interface so other programs can control it. Playback settings can be grouped into named profiles and switched with one option. Releases are deliberately infrequent: the project says it cuts one of the form 0.X.0 once or twice a year, and version 0.41.0 came out on 21 December 2025. Code, meanwhile, was pushed on the morning this edition was written, and the repository holds more than fifty-five thousand commits. That gap between the release and the code is the thing to understand about this project rather than a warning about it. Now the limits, all stated by the project. It is not built for low-power playback on small or built-in graphics chips, and hardware decoding is off unless you ask for it with --hwdec. Only the newest releases of a Linux distribution are supported, along with Windows 10 build 1607 or newer and macOS 10.15 or newer. Older fallback display methods are neither recommended nor supported. Only the latest release gets fixes, apart from security ones. And there is no complete list of changes between versions.
Why it matters
Who it suits. Anyone who plays media as part of a job rather than for an evening: checking a recording, stepping through a video frame by frame, comparing two cuts, reading subtitles that other players mangle, or playing a file from a script. It suits scripting especially, because every setting is an option and every option can go in a file. It also suits anyone frustrated by a player that re-encodes, buffers or refuses a format. Skip it if you want a library of films with cover pictures and a remote control, which is a different kind of program entirely.
Verdict. The reference player for people who would rather type than click, and it has earned that over fourteen years. The one thing worth saying plainly is about dates. The newest release is from December 2025 and the newest code is from this morning, which is exactly the trap that makes healthy projects look dead: a release date is not a code date, and here the two are ten months apart by design. Two practical notes. Turn on hardware decoding yourself with --hwdec if the machine needs it, because the default is off. And on a weak graphics chip try --profile=fast before concluding the player is at fault, which is the project's own advice. If you want a window with buttons, iina/iina is this player wrapped in a macOS application, and videolan/vlc is the familiar alternative.
- Plays almost anything, with subtitle handling that is better than most players manage.
- Every behaviour is an option, so it can be scripted and configured precisely.
- Code pushed the morning of this edition, after more than fifty-five thousand commits.
- Hardware decoding is off by default, so a weak machine will struggle until you switch it on.
- Only the newest releases of a Linux distribution are supported, plus Windows 10 1607 or newer and macOS 10.15 or newer.
- Only the latest release receives fixes, and there is no complete list of changes between versions.
- videolan/vlc
GPL-2.0 and LGPL-2.1, the best-known free player, with a full interface and a much gentler start; less suited to being driven from a script.
Track this in Scout - iina/iina
This same player wrapped in a native macOS application with a proper window and controls; its About sidebar links a licence file without naming the licence.
Track this in Scout
# Debian or Ubuntu sudo apt-get install mpv # macOS, with Homebrew brew install mpv # from source, which needs meson and the FFmpeg libraries meson setup build meson compile -C build meson install -C build
