DVD-style menus for the video you stream today.
Open Video Menu puts DVD-style menus (motion backgrounds, scene selection, special features, audio and subtitle choices) on top of modern video: the MP4 and MKV files Plex and Jellyfin stream to your TV. A menu is one small file next to the video, and the video itself is never changed. It's an open, royalty-free format any app can play.
# A film folder, as Plex and Jellyfin expect it Sintel (2010)/ Sintel (2010).mp4 Sintel (2010).ovmz ← the menu and its art Trailers/Sintel Trailer.mp4

From the simplest menu to a full DVD
One format covers all of it. A menu says which level it needs; a player says which it supports, and below that it shows the plain list.
- Level 0, Basic: a plain list of the film and its extras. Every player can do this.
- Level 1, Menus: artwork, buttons, highlights, scene selection and special features.
- Level 2, Enhanced: motion menus with music, transitions, angles, and buttons over the film while it plays.
- Level 3, Disc logic: everything a DVD's own programming does: variables and conditions, random play, parental control, resume, timers. Tested on 954 real DVDs: each one's menus translate to it and behave like the disc in automated checks.
1. See it
- Install ovmplayer on your TV (step 2).
- Choose Jellyfin, then Type an address, and enter
https://demo.openvideomenu.org. - Choose Use username and password:
demo, passworddemo. - Open Sintel in the Menus row.
2. Get the players
The players are proof-of-concept apps that show the format working today, with your Plex or Jellyfin library. Titles without a menu just play.
On your TV
- Google TV and Android TV: Google Play Download APK
- Roku: Add the Roku channel
On your server
- Jellyfin: in Dashboard → Plugins → Repositories, add Repository URL, install Open Video Menu, and restart Jellyfin.
- Plex: run the menu server beside Plex. Give it a Plex token and it follows your libraries by itself; it only answers people signed in to your Plex server.
- Windows: download the installer, which sets it up as a service. Windows may warn about an unknown publisher: choose More info, then Run anyway.
- Linux:
curl -fsSL https://openvideomenu.org/install/menu-server.sh | sudo sh - Docker (Unraid, Synology):
docker run -d --network host -v /mnt/media:/mnt/media:ro -e PLEX_URL=http://127.0.0.1:32400 -e PLEX_TOKEN=… ghcr.io/tyson133-prog/openvideomenu-menu-server
3. Make menus
- From your DVDs: DVD Tamer turns your DVDs into video files for your library and brings their original menus along (DVD Tamer link). Or use
ovm-dvd:dotnet tool install -g OpenVideoMenu.Dvd.Tool, thenovm-dvd export Film.iso "Film (Year).ovmz" --files "Film - title {n}.mkv". - Put the menu next to the film, as
Title.ovmz(orTitle.openvideomenu.jsonwith its art), then rescan the library. - Try the examples: download Sintel and the Example Show (about 250 MB) and copy the
MoviesandTVfolders into your libraries.
4. Implement it
Free to implement in any software, with no fees and no permission needed.
In a player
- Start with the implementer's guide, then the specification and its JSON Schema.
- Start at Level 0: show the manifest's plain list of titles and play them. It takes about an afternoon. Menus (Level 1) and the rest build on the same file.
- Use a library, or write your own:
npm install @openvideomenu/core(TypeScript) ordotnet add package OpenVideoMenu(.NET). Navigation is a state machine; your player supplies three things: playing a URL from a time, turning remote presses into up, down, left, right, enter and back, and finding the file a menu names. - Run the conformance suite. When it passes, your player is compatible.
In a media server
- Serve the read-only server API: a list of the library's menus, and their manifests and art, with byte ranges.
- Announce it on the network as
_openvideomenu._tcp. The Jellyfin plugin and the Plex menu server are working examples.
In an importer
- Follow the DVD profile, or build on
OpenVideoMenu.Dvd. - Check your output:
openvideomenu validateandopenvideomenu preview(npm install -g @openvideomenu/cli).
Say your software "supports Open Video Menu" any time, and "compatible" once it passes the conformance suite. Please don't name a product "Open Video Menu".