๐น๐ Concat Videos (FFmpeg)
Join clips end-to-end with FFmpeg, right inside ComfyUI
- concat_path
- ffmpeg_command
This node stitches videos together end to end - clip one, then clip two, then clip three, into a single file. It's a thin, honest wrapper around FFmpeg's concat, exposed as a ComfyUI node so you don't have to drop to a terminal. If you're generating video clips (Wan, LTX, Hunyuan, whatever) and want to chain them into one continuous output, this is the join step.
Nothing fancy, and that's the appeal. It takes video paths in, runs FFmpeg, gives you the path to the joined result plus the exact command it ran.
How it works
You tell it how many videos you're joining, it exposes that many inputs, and it concatenates them in order. By default it shells out to a system FFmpeg (fast, standard). There's a toggle to use the Python-ffmpeg binding instead. Crucially, it can take an FFMPEG_CONFIG_JSON from the pack's FFmpeg Configuration node, so you can control the output codec, container, quality, and so on rather than accepting whatever defaults - useful because concatenating clips with mismatched encodings is exactly where video joins go wrong.
The inputs and outputs that matter
number_of_videos- how many clips to join (2 to 50, default 2). Raising it adds more input slots.output_filename- the name of the joined file (defaultconcatenated.mp4).use_python_ffmpeg- off (default) uses your system FFmpeg; on uses the Python binding. Leave it off unless system FFmpeg gives you trouble.FFMPEG_CONFIG_JSON(optional) - a config blob from the FFmpeg Configuration node to set codec/quality/format on the output.
Outputs are concat_path (the path to the joined video, which you can feed into a Video Preview or a save node) and ffmpeg_command (the exact command it ran - genuinely handy for debugging). It's an output node, so it caps the branch.
How to install it
ComfyUI Manager: search Bjornulf_custom_nodes, install, restart. Manually:
cd ComfyUI/custom_nodes
git clone https://github.com/justUmen/Bjornulf_custom_nodes
pip install -r Bjornulf_custom_nodes/requirements.txt
Restart ComfyUI. You also need FFmpeg installed and on your PATH - that's the real dependency here, separate from the pip packages. On Linux, apt install ffmpeg (or your distro's equivalent); on Windows, install FFmpeg and make sure it's callable.
Common issues
Two honest heads-ups. First, the pack's video nodes are developed and tested primarily on Linux - the author has said outright that the video and TTS nodes were originally Linux-only and may not behave on Windows. If you're on Windows and a video node misfires, that's a known rough edge, not you doing something wrong; the use_python_ffmpeg toggle is one lever to try, and setting an explicit FFmpeg path in the Configuration node is another.
Second, concatenation is picky about matching formats. Clips with different resolutions, frame rates, or codecs can fail to join or produce a glitchy result. The fix is to normalize them first - route an FFMPEG_CONFIG_JSON through so every clip is re-encoded to the same spec, or convert them individually before joining. When a join fails, read the ffmpeg_command output; it usually tells you exactly what FFmpeg choked on. Also note the author rewrote all the FFmpeg nodes substantially across several versions, so make sure you're on a recent pull.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| number_of_videos | INT | 22โ50 | โ |
| output_filename | STRING | concatenated.mp4 | โ |
| use_python_ffmpeg | BOOLEAN | false | โ |
| FFMPEG_CONFIG_JSONopt | STRING | โ |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| concat_path | STRING | โ |
| ffmpeg_command | STRING | โ |