Remux Container
Remux Container — swap .mp4 to .mov without re-encoding a single frame
- input
Here's the situation: your editor refuses to import the .mkv, or the client needs a .mov deliverable and Final Cut keeps rejecting your .mp4. The actual video and audio streams are fine - it's just the wrapper they're packed in. Re-encoding to fix that would take ten minutes, waste a generation's worth of quality, and solve nothing.
Remux Container is the other flagship node in the Framerate Converter pack (Trope Tools, TropeMedia), and it does the one thing the name says: it changes the container format - mov, mp4, or mkv - by stream-copying every track with FFmpeg's -c copy. No decode, no re-encode, no quality loss, and near-instant even on long files. It's the same trick professional video folk use daily.
The inputs
Three required fields, all simple:
- input - a
VIDEO, typically from Load Video or chained off the pack's Convert Framerate node. - target_format - dropdown with
mov,mp4,mkv. Defaultmov. - filename_prefix - controls where and how it's named, default
video/ComfyUI(i.e.output/video/ComfyUI_00001.mov).
That's it. There are no optional inputs and deliberately no output port.
Why no output port? That's the interesting part
Most nodes you meet pass data along. This one doesn't, and it's a deliberate design call. It writes the remuxed file straight to ComfyUI's output/ folder and returns an inline video preview so you can see the result in-graph. If it handed you a VIDEO and you piped it into Save Video, the built-in save node would re-encode and re-wrap it back to .mp4 - silently undoing the entire remux. The author hit that trap and just removed the escape hatch. Respect.
Because it uses the VIDEO type on the input, it chains perfectly off Convert Framerate: "take this 24 fps .mp4 and give me a 25 fps .mov" - conversion then remux in one queue.
Install
ComfyUI Manager → search Trope Tools - Framerate Converter → Install, or:
cd ComfyUI/custom_nodes
git clone https://github.com/LaserDog80/ComfyUI-FramerateConverter
Restart, then find it under Trope Tools / Framerate Converter / Remux Container. No pip packages - the whole pack is Python's standard library plus the system ffmpeg binary, which you must have installed separately (brew install ffmpeg, apt install ffmpeg, or gyan.dev on Windows). The pack warns at startup if it's missing.
Gotchas
- Don't wire its output into Save Video - there isn't one, which is the point. Set
filename_prefixon the node instead. - Not every codec survives every container. Stream-copying is lossless, but if your video uses a codec the target container can't hold (say, certain audio codecs in a
.mov), FFmpeg will fail with a somewhat cryptic error. The workaround is to re-encode that one stream - which means you've outgrown this node and want the full pipeline. - It has a 10-minute timeout, which for a stream-copy of basically anything is a lot of headroom.
Remuxing is one of those tasks where people stubbornly keep re-encoding because they don't know the word "remux" exists. Now you do - and there's a node for it.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| input | VIDEO | — | |
| target_format | COMBO | mov | 3 options: mov, mp4, mkv |
| filename_prefix | STRING | video/ComfyUI | — |
Outputs (0)
No outputs