MMRecodeCross-platform media layer & editor for all platforms
The hierarchical, lossless video and FX editor.
Navigate compositions like a filesystem. Preserve what can be copied. Render only what changed.
cargo install mmrecodeMMRecode is a cross-platform media layer written in Rust. It provides native codecs, containers, exact timing, playback, editing, render planning, and MMFX as independently usable components.
The terminal-native, command-driven editor is the flagship application built on top: every media object can have its own local timeline, and exports preserve encoded media wherever an edit leaves it unchanged.
MMFX adds portable titles, graphics, layouts, animation, transitions, and visual effects through a typed scene system with predictable rendering across platforms.
By Markus Moenig, founder of MainConcept.com and former CTO of DivX.
The editor runs in your terminal
Run mmrecode and the complete editing workspace opens where you already work.
The terminal contains the monitor, timeline, inspector, contextual help, and command prompt. Navigate hierarchical compositions with familiar commands, edit without changing tools, and preview moving video with synchronized audio in the same workspace.
Kitty and Ghostty use the direct Kitty graphics path. MMRecode also selects Sixel or iTerm2 images when available, and falls back to a portable 24-bit Unicode renderer in other true-color terminals.
A media layer, not only an editor
The editor is one application built on a reusable media foundation.
Applications can use the codec, container, playback, editing, rendering, and MMFX crates independently. Shared packet, frame, stream, exact-time, and dependency interfaces keep those parts composable without tying them to one frontend or platform.
Lossless recoding
MMRecode plans an export from the actual dependency structure of the codec instead of treating every edit as a full transcode.
- Unchanged media
- Original encoded packets are copied and retimed.
- Exact cut boundaries
- Only codec dependencies damaged by the cut are regenerated.
- Titles and effects
- Only the affected frame range is decoded, rendered, and encoded.
The render plan remains visible and explainable: copied, bridge-encoded, and fully rendered ranges are deliberate decisions, not hidden export behavior.
Hierarchical editing
The composition is a hierarchy of media and placement links, not one permanently expanded stack of tracks.
A clip may contain a title, a mask, an effect, or another complete composition. Entering Film > Clip0 > Title changes the visible timeline to that object’s local time. The media remains reusable, while each placement keeps its own timing and overrides.
Commands such as pwd, ls, and cdexpose this structure directly. Saved edits are typed operations, so they can be replayed, tested, diffed, or produced by another frontend without translating through shell strings.
MMFX
MMFX is the scene, typography, layout, animation, transition, and visual-effect system built into MMRecode.
A strict CSS-shaped scene language describes text, shapes, groups, media, and layout. It compiles to typed scene data before rendering; unknown properties are errors, time is exact, fonts are explicit resources, and the CPU reference renderer defines compositing behavior independently of a browser or GPU API.
Current codecs
Codec and container implementations are separate, reusable Rust crates rather than adapters around a single multimedia framework.
Motion JPEG
Native decoding, encoding, inspection, and frame-preserving recoding.
DV
DV25 video, embedded audio, timecode, metadata, decoding, and encoding.
MPEG-2 Video
I/P/B decoding and encoding with dependency-aware smart rendering.
H.264 / AVC
Native decoding and encoding, MP4/QuickTime playback, and clean-GOP remuxing.
AAC
Native AAC-LC audio decoding and synchronized playback.
MPEG Audio
Layer II framing, timing, transport, and pass-through.
Container support includes MPEG transport streams, MP4 / QuickTime, and YUV4MPEG2.
Detailed format documentation →Apache 2.0
MMRecode is open source under the permissive Apache License 2.0, including its contributor patent grant. It can be used in open and proprietary media products.
The source license does not replace any third-party patent licenses that may apply to standardized media formats.
Read the license →