RemuxForge is a cross-platform utility for technical MKV workflows. Remux and Split read MKV, MP4, AVI and M2TS/TS sources and always write MKV:
- Remux: import audio tracks and subtitles from another release, with optional speed correction, Automatic sync (FrameSync) for a constant offset or Edit alignment (Deep Analysis) for edited releases, plus a timeline editor to adjust the alignment by hand.
- Split: cut files into episodes or parts, by chapters, times or frames, or build the parts by hand in a cut editor, while preserving VFR timing, chapters, audio and subtitles; join parts back into one file. Frame-exact cuts re-encode only the frames next to each cut, for H.264, HEVC, MPEG-2, Xvid/DivX, MS-MPEG4, H.263, AV1 and VP9; VC-1 and interlaced video are cut on keyframes.
- Metadata: batch-edit MKV container, track metadata and managed Matroska tags through reusable rule presets, written by hand or generated with AI, with separate analysis and apply steps; edit a single file by hand, chapters included.
- Advanced rename: preview and apply batch filename changes from the Metadata workspace, using stacked rename methods.
It ships as a scriptable CLI, a WebUI for local browsers or headless servers, and a native desktop shell for Windows and Apple Silicon Macs. The browser and desktop editions use the same Blazor UI and processing engine; the wiki documents them in full.
For questions, feedback and ideas, join the RemuxForge Discord server, where you can talk with the developer and other users.
- MKVToolNix (
mkvmerge,mkvextract,mkvpropedit) - ffmpeg (
ffmpeg,ffprobe) - MediaInfo CLI (
mediainfo), required by Split, Automatic sync and Edit alignment - UTF-8 locale on Linux
The optional Vulkan SIFT backend for Deep Analysis requires a Vulkan 1.2 loader and a compatible compute device with timeline semaphore support. CPU SIFT is the default and does not require Vulkan. On macOS, Vulkan is provided through MoltenVK.
Tool paths are auto-detected or configurable from the WebUI under Settings ▸ Tool paths. On Windows and Linux, FFmpeg 9 stable and ffprobe are downloaded automatically when missing; on macOS install the FFmpeg 9 full build with brew install ffmpeg-full.
Supported targets:
| Platform | Architectures |
|---|---|
| Windows | x64 |
| Linux | x64, ARM64 |
| macOS | x64, ARM64 |
| Docker | x64 |
Download the desktop installer, CLI or WebUI archive for your platform from the releases page.
Desktop:
- On Windows, run the installer and launch RemuxForge from the Start menu.
- On macOS, open the DMG and copy RemuxForge to Applications. The app is not signed by Apple: Deploy shows how to open it the first time.
The desktop shell starts the local WebUI automatically. Its settings and runtime data are stored in the operating system's application-data directory, outside the installed application bundle.
WebUI:
# Windows
RemuxForge.Web.exe
# Linux/macOS
chmod +x RemuxForge.Web
./RemuxForge.WebOpen http://localhost:5000. The port can be changed with REMUXFORGE_PORT or --port <number>.
Docker:
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:latestPaths typed in the WebUI are resolved inside the container. See Docker for Compose, permissions and GPU acceleration, Settings for the data directory, and CLI for the environment variables.
RemuxForge.Cli runs Remux, Split and Metadata jobs from scripts and schedulers:
RemuxForge.Cli --mode remux|split|metadata [options]
RemuxForge.Cli --helpEvery option, its defaults, the validation rules and ready-to-use recipes are on the CLI wiki page.
The wiki covers the desktop app and the WebUI, which share the same interface, plus the CLI.
| Install and run | Deploy · Docker · Quick start · Interface overview |
| Remux | Wizard · Workspace · EditMap editor · Synchronization |
| Split | Wizard · Plan review and workspace · Cut editor · Join parts |
| Metadata | Workspace · Preset editor · Create preset with AI · Manual edit · Advanced rename |
| Reference | Settings · CLI · Codecs and languages · Metadata fields |
| Something is wrong | Troubleshooting |
| Project | Internals · Development |
The CLI and WebUI require the .NET 10 SDK. Desktop packages also require Node.js/npm, Rust and the platform prerequisites documented by Tauri.
The Windows MSI must be built on a native Windows host; release.sh delegates that build to the configured Windows worker.
dotnet build RemuxForge.Cli -c Release
dotnet build RemuxForge.Web -c Release
docker build -t remuxforge .
cd RemuxForge.Desktop
npm install
npm run build
# Or select an explicit desktop release target
npm run build:macos-arm64
npm run build:windows-x64The desktop build publishes RemuxForge.Web as a self-contained sidecar and bundles its static assets automatically. Explicit-target installers are written under RemuxForge.Desktop/src-tauri/target/<target>/release/bundle; native untargeted builds use RemuxForge.Desktop/src-tauri/target/release/bundle.
Public desktop artifacts also require platform signing: Authenticode on Windows, and Developer ID signing plus notarization/stapling on macOS.
The .NET CLI and WebUI can be published for every RID from one machine. Native Windows is required for the WiX MSI and remains the preferred environment for execution testing and Authenticode signing. release.sh runs on the Linux release host, delegates native desktop builds to the configured workers and writes SHA256SUMS for all collected artifacts.
Use build-only mode to compile and preserve release artifacts without building or pushing Docker images, creating Git tags or publishing a GitHub release:
./release.sh v1.2.3 "Local build test" --build-only
# Build only one native desktop target
./release.sh v1.2.3 "Windows desktop build test" --build-only --target desktop-win-x64
./release.sh v1.2.3 "macOS desktop build test" --build-only --target desktop-osx-arm64Target selection is intentionally restricted to build-only mode so that a partial artifact set cannot be published as a release. Windows workers can authenticate with either WINDOWS_SSH_IDENTITY_FILE or WINDOWS_SSH_PASSWORD in .env.
Project layout, publish commands and the localization rules are in Development.
Contributions are welcome when they are technical, reproducible and scoped.
- Open an issue for bugs or behavioral changes.
- Include sample command lines, tool versions and relevant MediaInfo/ffmpeg output when reporting processing issues.
- Keep pull requests focused on one change.
- Run the relevant build or test command before submitting.
- Keep copyrighted media samples out of the repository.
RemuxForge is licensed under the GNU GPLv3.
If RemuxForge is useful to you, sponsorship is available through Buy Me a Coffee.