Concat Videos
The simplest way to stick two generated clips together
- video_a
- video_b
- video_c
- video
- output_path
- summary
So you've generated five clips and you want one video. MKRConcatVideos is the node that stitches them together, and it's smart enough to do it fast when it can: by default it stream-copies the streams if the inputs match, so concatenation can be near-instant instead of a full re-encode. It's the boring-but-essential "put the shots in order" step in the pack's video lane, and if you've been avoiding it by rendering everything in one long generation, this is the better path.
From MKRShift_Nodes by criskb. Install via ComfyUI Manager (search "MKRShift_Nodes") or git clone https://github.com/criskb/MKRShift_Nodes into custom_nodes/, restart. Real concatenation needs ffmpeg on your system (the pack's README says so explicitly for the video/audio nodes); there's a light fallback for GIF/WEBP when it's missing, but don't count on it for anything else.
How it works
You wire video_a and video_b (required), and optionally a third video_c plus a video_paths multiline field if you're concatenating more than three by listing file paths. The node collects the underlying files, picks the output format (auto keeps the first input's container), and runs ffmpeg's concat. With stream_copy_if_possible on, matching codecs are copied bit-for-bit - fast, lossless, and the reason this node feels instant. When the inputs don't match (different resolution, codec, fps), it re-encodes to make them fit.
Inputs worth touching
stream_copy_if_possible(default true) - leave it on. Flip it off only when concat artifacts appear.output_format- auto/mp4/mov/webm/gif/webp.filename_prefix,subfolder,overwrite- where the result lands (plus optionalfilename_label).
Outputs: video (MKR_VIDEO), output_path, and a summary that reports what it did and any warnings.
The gotcha nobody warns you about
Stream copy is a lie detector: it only works when the streams are actually compatible, and the failure mode isn't an error - it's a second or two of glitchy frames or a frozen frame at the seam. If your joined clip looks broken at the cut, the first thing to try is turning stream_copy_if_possible off and letting it re-encode. Different frame rates between AI clips are the usual culprit, and no amount of copy-mode hope fixes physics.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| video_a | * | — | |
| video_b | * | — | |
| output_format | COMBO | auto | 6 options: auto, mp4, mov, webm, gif, webp |
| filename_prefix | STRING | MKR_concat_video | — |
| subfolder | STRING | — | |
| overwrite | BOOLEAN | false | — |
| stream_copy_if_possible | BOOLEAN | true | — |
| video_copt | * | — | |
| video_pathsopt | STRING | — | |
| filename_labelopt | STRING | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| video | MKR_VIDEO | — |
| output_path | STRING | — |
| summary | STRING | — |