How Vivi compares
An honest side-by-side with the players people actually use. Where another player wins, the table says so.
✓ built in, or an add-on from the project's own directory (noted) · – not built in · ? not confirmed in the official docs · n/a not applicable or not measured. Third-party scripts and components add a lot to mpv, VLC and foobar2000; this table only counts what the projects ship or list themselves.
| Feature | Vivi | mpv | VLC | MPC-HC | IINA | Celluloid | foobar2000 |
|---|---|---|---|---|---|---|---|
| Music | |||||||
| Waveform progress bar | ✓ | – | – | ? | ? | – | ✓ component |
| Karaoke / synced lyrics view | ✓ | – | – | ? | ? | – | ✓ component |
| Auto-tagger (fingerprint / MusicBrainz) | ✓ | – | – | – | – | – | ✓ MusicBrainz component |
| Free music catalogue (Jamendo, FMA, Archive) | ✓ | – | ? | – | – | – | ? |
| Music library | ✓ | – | ✓ | ? | ? | – | ✓ |
| Extending | |||||||
| Plugins / add-ons | ✓ | ✓ Lua / JS scripts | ✓ add-ons | ? | ✓ | ? | ✓ components |
| In-app plugin marketplace | ✓ | – | ? | – | ? | – | ? |
| MCP server for AI agents | ✓ | – | – | – | – | – | – |
| Customizable control bar | ✓ | ? | ✓ toolbar editor | ? | ✓ | ? | ✓ |
| Playback | |||||||
| Network streams / IPTV (M3U) | ✓ | ✓ | ✓ | ? | ? | ? | radio |
| Online subtitle search | ✓ | – | ✓ VLSub | ? | ✓ | – | n/a |
| Subtitle sync / offset | ✓ | ✓ | ✓ | ? | ? | ? | n/a |
| A-B loop | ✓ | ✓ | ✓ | ? | ? | ? | ? |
| Recording / stream dump | ✓ | ✓ | ✓ | ? | ? | ? | n/a |
| Miniplayer / picture-in-picture | ✓ | – | ? | ? | ✓ | – | ? |
| Video playback | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | – |
| Footprint (measured, see below) | |||||||
| Download (Linux) | 14.8 MB tarball | n/a (distro) | n/a (distro) | n/a | n/a | n/a | n/a |
| Installed size (own files) | 35.7 MB | 6.5 MB | 19.8 MB | n/a | n/a | ? | n/a |
| Time to first window | ~1.0 s | ~0.27 s | ~0.15 s | n/a | n/a | ? | n/a |
| Idle RAM (RSS) | ~216 MB | ~202 MB | ~106 MB | n/a | n/a | ? | n/a |
| Project | |||||||
| Open source | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | – |
| License | MIT | GPL-2.0+ (LGPL build option) | GPL-2.0 (libVLC LGPL) | GPL-3.0 | GPL-3.0 | GPL-3.0 | freeware |
| Platforms | Linux, Windows, macOS | Linux, Windows, macOS, BSD | Windows, macOS, Linux, mobile | Windows | macOS | Linux | Windows, macOS, mobile |
| UI toolkit | Slint | none (on-screen controller) | Qt | Win32 (MFC) | native macOS (Swift) | GTK | Default UI / Columns UI |
| Engine | libmpv | mpv | libVLC | DirectShow / LAV | libmpv | libmpv | own |
Where the others win
mpv
Smaller and faster to start than Vivi in our measurement, with a huge collection of user scripts and the most configurable video output. Vivi itself is built on libmpv.
VLC
Lowest memory and fastest start in our test, runs on nearly every platform including mobile, and plays discs and devices that Vivi does not target.
foobar2000
Long audio-focused polish: gapless playback, ReplayGain, CD ripping, transcoding, DSP effects and a large component ecosystem. Not open source, and no video.
IINA
A truly native macOS app with trackpad gestures, Picture in Picture and Live Text. Vivi's macOS build is unsigned and best effort.
MPC-HC
A mature Windows classic built on the DirectShow / LAV filter ecosystem.
Celluloid
Fits right into GNOME with GTK, MPRIS and Wayland support, and reads your existing mpv config files as-is.
How we measured
Size, start time and memory were measured by us on one machine under identical conditions on 17 Oct 2026. Numbers appear only where we measured them.
- Download: size of
vivi-v0.11.1-linux-x86_64.tar.gzon the GitHub release (14,816,584 bytes). mpv and VLC on Linux come from distribution packages, so there is no single download to compare. - Installed size: Vivi = the files the installer copies (
vivi,vivi-mcp, desktop file and icons), excluding the system libmpv. mpv and VLC = theInstalled-Sizeof their Debian 13 packages (mpv + libmpv2; vlc, vlc-bin, vlc-plugin-base, vlc-plugin-qt, libvlc5, libvlccore9), excluding shared libraries such as FFmpeg and Qt. - Time to first window and idle RAM: Debian 13 x86_64, Xvfb virtual display with software OpenGL (no GPU), a fresh empty home directory per run, nothing opened, warm disk cache. Time runs from launch until the first visible window appears (polled every 20 ms); RSS is read from
/proc8 s later. Median of 5 runs. Vivi 0.11.1 release binary, mpv 0.40.0 (--idle --force-window --no-config), VLC 3.0.24 (Qt interface). Software rendering inflates memory for OpenGL apps, so expect different absolute numbers on a desktop with a GPU. - MPC-HC, IINA and foobar2000 do not run natively on Linux and Celluloid was not tested, so no numbers are shown for them.
Sources
Competitor facts come from the projects' own sites and documentation, checked 17 Oct 2026. Something wrong or out of date? Open an issue.
- Vivi: docs/features.md, v0.11.1 release
- mpv: mpv.io, manual (
ab-loop-a/b,--stream-record,sub-delay,ytdl), Copyright (GPLv2+, LGPLv2.1+ when built with-Dgpl=false) - VLC: videolan.org/vlc, features, legal (GPL v2 / LGPL), addons.videolan.org; VLC 3.0 source: Qt interface with Record and A→B Loop buttons (controller.hpp), Toolbars Editor (toolbar.cpp), bundled OpenSubtitles extension (VLSub.lua)
- MPC-HC: github.com/clsid2/mpc-hc (GPL-3.0 license file; MFC per stdafx.h)
- IINA: iina.io (plugins, customizable controls, Picture in Picture), github.com/iina/iina (GPL-3.0, Swift, based on mpv)
- Celluloid: celluloid-player.github.io (GTK frontend for mpv), GitHub (GPL-3.0)
- foobar2000: foobar2000.org, components (Waveform Seek Bar, OpenLyrics / Lyric Show Panel 3, MusicBrainz Tagger)