🎬🪡AGSoft Video Concatenate
Join clips instantly with stream copy — when they match
- video_path
- duration_seconds
- duration_timecode
- file_size_mb
- width
- height
- fps
- frames_est
🎬🪡AGSoft Video Concatenate is the fast way to glue clips together. It joins multiple videos with FFmpeg stream copy - no re-encoding, which means it's essentially instant and there's zero generation loss. You set inputs_count (2 or more), the node grows that many video_N inputs, and whatever you feed in comes out as one file.
The catch, and it's a real one: stream copy only works when the clips actually agree with each other. Same codec, same resolution, same frame rate, same pixel format. Generate a batch of clips from the same sampler at the same settings and you're golden. Feed it a mix of 1080p and 720p, or a 24fps clip next to a 30fps one, and FFmpeg will refuse or produce garbage - because it's copying packets, not making them compatible.
That's the design trade-off, and it's why the pack ships two concatenators. This one is for the "my clips already match, just stitch them" case. The Plus variant (AGSoft Video Concatenate Plus) re-encodes and handles mismatched clips, transitions, and rescaling - slower, but it doesn't lecture you about resolution.
Inputs and outputs
Only a few things to touch:
output_name- the filename for the result.inputs_count- how many clips you're joining.output_path(optional) - where to save it; leave empty forComfyUI/output.
Outputs are the pack's standard video set: video_path (STRING), duration_seconds, duration_timecode, file_size_mb, plus width, height, fps, and frames_est from the joined result.
Install
Part of the comfyui-AGSoft pack. ComfyUI Manager → search "comfyui-AGSoft" → Install → restart, or:
cd ComfyUI/custom_nodes
git clone https://github.com/Art-xmaster/comfyui-AGSoft
Restart and you're done. No models, no heavy dependencies - the node drives the FFmpeg binary ComfyUI bundles via imageio-ffmpeg (or a system ffmpeg on your PATH).
Where people get burned
The "clips must match" constraint is the #1 failure mode. The symptom is an ffmpeg error about mismatched streams, or a file that plays wrong. Before you blame the node, check three things: resolution, fps, and codec - all visible on the width/height/fps outputs. If they disagree, either normalize them first or switch to Video Concatenate Plus, which will happily re-encode everything into one consistent output. Stream copy is a scalpel; don't ask it to be a hammer.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| output_name | STRING | output_video.mp4 | The filename for the concatenated output video (e.g., result.mp4). The .mp4 extension will be added automatically if missing. --- Имя итогового видеофайла (например, result.mp4). Расширение .mp4 применится автоматически, если оно не указано. |
| inputs_count | COMBO | 2 | Select the total number of video clips you want to concatenate. --- Выберите общее количество видеороликов, которые необходимо объединить. |
| output_pathopt | STRING | Optional: Absolute directory path to save the file (e.g., D:/Videos). If left empty, the file will be saved in ComfyUI/output directory. --- Опционально: абсолютный путь к папке сохранения (например, D:/Videos). Если оставить пустым, сохранится в стандартную папку ComfyUI/output. |
Outputs (8)
| Name | Type | Description |
|---|---|---|
| video_path | STRING | — |
| duration_seconds | FLOAT | — |
| duration_timecode | STRING | — |
| file_size_mb | FLOAT | — |
| width | INT | — |
| height | INT | — |
| fps | FLOAT | — |
| frames_est | INT | — |