Self-hosted · open source · mkv
Muxite
Edit the tracks inside your MKV files, from a browser, phone or tablet.
FreeMIT licenseFor Jellyfin and Plex libraries
S02E04.mkv
Tracks · 8
| Type | Codec | Res · Ch | Lang | Title | Def | Frc |
|---|---|---|---|---|---|---|
| VID | hevc | 3840×2160 | und | no title | default | |
| AUD | truehdATMOS | 7.1 | eng | English | default | |
| AUD | eac3 | 5.1 · 640k | fre | Français | ||
| AUD | ac3 | 2.0 · 224k | eng | Commentary | ||
| SUB | pgs | eng | Signs | forced | ||
| SUB | subrip | eng | English | |||
| SUB | subrip | eng | English SDH | |||
| SUB | ass | jpn | no title |
Chapters · 6
- 0100:00:00.000Cold open
- 0400:27:48.105Chapter 03
- 0200:02:41.370Opening titles
- 0500:44:12.690Chapter 04
- 0300:03:12.512Chapter 02
- 0600:57:02.233End credits
Browser
The server serves the web app
Run Muxite next to your library and open its address. Nothing to install on the computer you edit from.
iPhone and iPad
Free on the App Store
The app is a client: type in your server’s address and sign in.
What it does
Everything inside the file, without re-encoding.
Tracks
See what is really in there.
Every video, audio and subtitle track, with codec, language, channels and default and forced flags.
Muxite reads the first audio frame, so it tells DTS from DTS-HD, E-AC-3 from E-AC-3 Atmos, and TrueHD from TrueHD Atmos.
- InstantRename tracks, set languages and flags.
- RemuxRemove tracks or attachments in the background.
| Codec ID | becomes | Muxite shows |
|---|---|---|
| A_DTS | → | DTS-HD MA · 7.1 |
| A_DTS | → | DTS · 5.1 |
| A_EAC3 | → | E-AC-3 Atmos · 5.1 |
| A_TRUEHD | → | TrueHD Atmos · 7.1 |
| A_TRUEHD | → | TrueHD · 5.1 |
Subtitles
Fix the timing. Fix the typo.
A visual editor for SRT, ASS/SSA and WebVTT: timestamps, text, and shifting everything at once. A raw text mode when you would rather type.
It works on subtitles inside the MKV and on .srt files next to it. Add new ones from a file, by drag and drop, or from an OpenSubtitles search.
- 41200:41:03,120 → 00:41:05,880The ferry doesn’t run after nine.
- 41300:41:06,040 → 00:41:07,300Then we walk.
- 41400:41:08,900 → 00:41:12,450It’s eleven miles, Ines. In the dark.
- 41500:41:12,700 → 00:41:15,010I know exactly how far it is.
Bitmap subtitles
Turn PGS and VobSub into text.
Blu-ray (PGS) and DVD (VobSub) subtitles are pictures. Muxite shows them one frame at a time next to a text box: type what you see, and save the result as a new SRT track.
Drafts are kept between sessions, so a feature-length film can take a few evenings.
until the fog lifts.
Chapters and tags
Edited in place. No remux.
Chapters and Matroska tags are written without remuxing the file. Apply one chapter template to a whole season, fill the gaps, renumber.
- 0100:00:00.000Cold open
- 0200:02:41.370Opening titles
- 0300:03:12.512Chapter 02
- 0400:27:48.105Chapter 03
Bulk scripts
One rule per line, across a whole folder.
Write what should change, preview it for free, then queue it. Each changed file gets its own background job; files no rule matches are left alone.
remove subtitle where lang not in (eng, jpn)
remove audio where lang == fre
unset title where type == video
set default = true where type == audio and lang == eng
remove tags
- S02E01.mkv−1 audio · tags
- S02E02.mkv−2 sub · −1 audio · tags
- S02E03.mkv−1 audio · default
- S02E04.mkv−1 audio · title · tags
- S02E05.mkvno change
Jobs
Remuxes run in the background.
Every job shows live progress, and any job can be cancelled.
-
S02E05.mkv64%remux · −1 audio2.7 / 4.3 GB
-
S02E06.mkvqueued
-
S02E04.mkvdone · 0:41
Files
Housekeeping, too.
The chores around the library, from the same place.
-
Move, rename, delete
Files and folders. Subtitles next to a video move with it.
-
Convert to MKV
.mp4and.aviin,.mkvout. -
Verify
Check a file’s integrity before you trust it.
Fast on big files
It reads what it needs. Not the whole file.
Muxite reads Matroska itself, without ffmpeg. To pull one subtitle track out of a 19 GB file, it reads about 500 KB.
Extract one subtitle track · 19 GB file
reads ≈ 500 KB
reads 19 GB
Run the server
One Docker container.
Point it at your media, name your libraries, and give it a password.
01
Add it to your compose file
Mount the same media folder your Jellyfin or Plex server uses, and list your libraries in LIBRARIES.
services:
muxite:
image: git.buttilda.com/muxite/muxite:latest
volumes:
- /path/to/media:/media
- ./auth.toml:/etc/muxite/auth.toml:ro
environment:
- LIBRARIES=Movies,TV Shows
- AUTH_FILE=/etc/muxite/auth.toml
- MUXITE_JWT_SECRET=change-me
ports:
- "3000:3000"
02
Make a password hash
The hash goes in auth.toml.
docker run --rm -it git.buttilda.com/muxite/muxite muxite hash-password
03
Open it
Go to the server in a browser, or type its address into the app.
http://your-server:3000
The full setup, including the format of auth.toml, is in the repository.