Image
[Attachment 94333 - Click to enlarge]

Why I started this project
For years, Matroska (.mkv) has been the gold standard container for preserving high-quality video, multiple audio tracks, subtitles, and chapters. However, when people rip or archive Blu-rays and DVDs into MKV, they lose the interactive experience—custom title screens, bonus feature sub-menus, visual audio/subtitle selectors, and reactive state recall.

Today, if you want interactive menus, you are stuck with legacy optical disc formats (BDMV/ISO) or clunky web wrappers. I wanted to prove that a standard .mkv file can deliver a modern, responsive, Blu-ray-style menu experience natively.

How MKV-DISC works
Instead of relying on heavy web engines (no Electron, HTML, or JavaScript), MKV-DISC uses a lightweight, native architecture:

Core Engine (mkvdisc - Rust): A fast, headless specification parser and validator with a C-ABI interface so it can eventually be integrated into multiple media players (mpv, VLC, Kodi, etc.).

Player Runtime (mkvdisc-mpv - Rust C-Plugin): Successfully tested and running in mpv. It extracts the embedded mkvdisc.json manifest and custom PNG/JPG button states (Idle, Focused, and Active overlays), handles keyboard/remote navigation (Up/Down/Left/Right/Enter, plus Ctrl+M to return to the menu), and tracks reactive state variables without needing duplicate menu pages.

Authoring Studio (mkvdisc-authoring - Python + PySide6): A native desktop studio app giving creators full design freedom to import their own custom graphics, map coordinates on a 1080p canvas, configure navigation/state rules, and package everything automatically via mkvmerge.

Current Status

✅ Working Baseline: The authoring studio can currently export both Embedded mode (a single self-contained .mkv with the manifest and PNG assets attached inside) and Directory mode (an .mkv paired with a local project folder).

✅ Live Playback: The mpv C-plugin successfully mounts, extracts the assets, renders the three-state menu overlays, and navigates between titles and menus.

A quick note on how this was built & calling for contributors
I had the architectural vision for this, but I am not an experienced systems programmer. Using AI as a development partner, I pushed through to build a working proof-of-concept baseline to prove that native Blu-ray-style menu navigation inside MKV is completely possible.

Now that the foundation works, it needs experienced developers to take it to the next level—expanding player support (like VLC and Kodi), refining UI/UX polish in the Python studio, adding motion menus/audio feedback, and hardening the spec.

Links & Media

GitHub Repository: https://github.com/yedkriz/EidoDisc/

YouTube Demo: https://www.youtube.com/watch?v=mSoHNJl969E

Reddit: https://www.reddit.com/r/makemkv/s/BLXqBkvSyZ

Feedback, critiques, and pull requests are welcome!