RemuxForge Discord
MKV · Remux · Split · Metadata

Forge one MKV out of two releases.

RemuxForge takes the audio and subtitles from one release and puts them, in sync, into the one you keep. Even when the two edits don't match.

RemuxForge EditMap editor listing seven operations
EditMap · 7 operations
Remux mode

Same episode, two edits. One audio track that fits.

The Italian release of this episode has a little extra footage at six points, and is missing half a second at the end. Merged as-is, its audio slips further out of sync at every one of them. Deep Analysis finds them, and RemuxForge rebuilds the audio around them.

Episode 1 · 00:43:07
Source audio Italian audio Extra footage, cut Missing, filled from Source
#TypeSourceLanguageDuration
1Cut00:00:00.00000:00:00.00042 ms
2Cut00:07:04.34100:07:04.3831168 ms
3Cut00:13:21.75900:13:22.9691210 ms
4Cut00:21:22.44700:21:24.8671084 ms
5Cut00:28:23.36700:28:26.871876 ms
6Cut00:38:54.62300:38:59.003626 ms
7Insert00:43:07.00100:43:12.007542 ms

The real EditMap of this episode, found in 2 min 8 s. Positions are to scale; the width of each operation is enlarged so you can see it.

  • EditMap editor with synced frame previews, waveforms and spectrograms, to check or fix any operation by hand.
  • Inserts can be filled from the Source audio instead of silence, so a gap doesn't sound like a hole.
  • Audio conversion, 24→16 bit and peak normalization when tracks have to be re-encoded.
  • Whole seasons at once: episodes are matched by name, analysed in parallel, merged with MKVToolNix.
  • Both releases can be MKV, MP4, AVI or M2TS; the result is always an MKV.
  • Guided setup in six steps, with reusable Remux presets and track selection by rules or file by file.
  • Chapters from the language release, if you want them: recalculated with the same cuts, inserts, stretch and delay applied to its subtitles.
How synchronization works
Remux workspace with matched episodes and tracks to import
Remux workspace

Simple mux

The tracks already line up, or you know the offset: RemuxForge merges them with your delays.

instant

Automatic sync

FrameSync

Off by the same amount for the whole episode: FrameSync finds the offset by matching frames, and verifies it.

one analysis pass

Edit alignment

Deep Analysis

Right in some places, wrong in others: Deep Analysis finds every cut and insert and rebuilds the audio around them.

slowest
PAL/NTSC stretch

In every mode: pick the conversion (23.976→25, 24→25…) and RemuxForge verifies it, then applies it automatically to audio, subtitles and chapters.

Split mode

Cut on the frame you want, not the keyframe you get.

A segment that starts mid-GOP can't just be copied: its first frames are predicted from outside the segment. RemuxForge re-encodes only the frames around the cut and copies the rest without re-encoding it. The frame count is checked twice.

  • Split by chapters per episode, an explicit chapter pattern, split points, ranges, trims or manual segments.
  • Snap to the nearest keyframe for a pure stream copy, or cut exactly where you ask.
  • VFR timing, audio and subtitles carried into every segment, chapters recalculated on every cut.
  • Reads MKV, MP4, AVI and M2TS, always writes MKV. Exact cuts for H.264, HEVC, MPEG-2, Xvid/DivX, MS-MPEG4, H.263, AV1 and VP9; VC-1 and interlaced video are cut on keyframes.
  • Cut editor with multiple outputs: build each file from several clips of the source, reorder them and review the plan before exporting.
  • Join parts (CD1/CD2, Part 1/2) into a single MKV, with chapters concatenated and their times recalculated.
Split wizard
Split cut editor with frame preview, source timeline, chapters, waveform and segments of two output files
Cut editor
Metadata mode

A whole library, one set of rules.

Write a preset once: an ordered pipeline of IF/THEN rules over container, video, audio and subtitle tracks. Run it on a folder and read the simulated result before a single byte changes.

SET container_title = {[file_stem]:NormalizeSpaces()}
SET audio_title = {[audio_language]:ToUpper()} [audio_format] [audio_channels_label]
IF audio_language = ita THEN audio_default exclusive
  • Field conditions, cross-track comparisons, track counts and OR groups.
  • Templated values, exclusive default flags, track removal, Matroska tags.
  • Bulk rename with stacked methods and a preview of every new name.
  • Presets with AI: describe the rules in your own words, check the preview of every change, then save or apply. Works with your ChatGPT account or an OpenAI API key.
Writing presets
Metadata preset editor with rule list, condition, operation and change preview
Preset editor
Preset with AI

Screenshots

The rest of the interface.

Same UI in the desktop app and in the browser. Scroll sideways, click to enlarge.

Split workspace
Split · plan, outputs and log
Metadata workspace
Metadata · current data and simulated result
Advanced rename dialog
Bulk rename · preview before applying
Download

Get it. It's free.

Desktop app for Windows and macOS, WebUI for any machine or headless server, Docker image, and a CLI for scripts. Same engine in all of them.

  • Windows x64
  • macOS x64 · ARM64
  • Linux x64 · ARM64
  • Docker x64
Latest release

Needs MKVToolNix, ffmpeg (downloaded automatically on Windows and Linux; brew install ffmpeg-full on macOS) and MediaInfo CLI.

docker run -d \
  --name remuxforge \
  -p 5000:5000 \
  -e REMUXFORGE_DATA_DIR=/data \
  -v /path/to/config:/data:rw \
  -v /path/to/media:/media:rw \
  draknodd/remuxforge:latest

Paths typed in the WebUI are resolved inside the container.

Support

Free, and staying that way.

RemuxForge is open source under GPLv3. If it saves you an evening of nudging delays by hand, a coffee helps keep it going. Found a bug? Open an issue with the command line, tool versions and the relevant MediaInfo or ffmpeg output.