Ino Convert Video To MP4
Normalize any video to MP4 with FFmpeg, right in the graph
- success
- message
- rel_path
- abs_path
Every video workflow eventually trips over the format problem. Your generator outputs a .webm or a raw frames folder, but the platform you're uploading to wants MP4 at a specific fps and resolution. Ino Convert Video To MP4 is the pack's answer: it converts a video in ComfyUI's file tree to MP4 via FFmpeg, with optional fps and resolution normalization, and reports the output path for the next step.
It's the single node in the InoMediaHelper category of ComfyUI-InoNodes - a 125+ node automation pack where this one sits between "generate video" and "upload the result."
The inputs
It follows the pack's standard file-node pattern, doubled:
input_parent_folder/input_folder- where the source video lives. The parent is a dropdown ofinput,output, ortemp; the folder is any subfolder.output_parent_folder/output_folder- where the MP4 lands.
Then the optional normalization controls, both on by default:
change_fps+fps(default 30) - retime the video to a target fps.change_resolution+max_resolution(default 2560) - cap the longer side, preserving aspect ratio.
Outputs are the pack standard: success, message, rel_path, and abs_path for the converted file. It's flagged as an output node, so it's a terminal side-effect step - you run it to make the file, not to feed pixels onward.
How it works
It hands the job to the shared inopyutils library's FFmpeg wrapper, pointing input and output at the resolved paths. FFmpeg does the transcode, with the fps and resolution flags applied only if you left those toggles on. If you don't want normalization - you just want a straight container conversion - flip change_fps and change_resolution off.
One thing worth stating plainly: FFmpeg has to be present for this to work. The node is a wrapper, not a bundled encoder, so on a bare ComfyUI install without FFmpeg on the system you'll get a failure message rather than a video.
Where it fits
- Pre-upload normalization. The pack's S3 video upload node takes native video; convert first so what you upload is a predictable MP4.
- Post-generation cleanup. Standardize the output of video models that emit varying containers or framerates.
- Preparing for preview. Normalize to a size and fps that render smoothly in a video player before previewing.
Because max_resolution preserves aspect ratio, a 2560 cap on a 9:16 video keeps it 9:16 - it just shrinks the long side to fit. That's the "optional resolution change" done sensibly rather than a blind resize.
Gotchas
The enabled toggle is the usual first suspect when nothing happens - an off node returns "Node is disabled" without converting. Missing FFmpeg is the second. And because it's an output node that writes to disk, make sure your output_folder exists or is creatable; the underlying helper creates parent folders, but if ComfyUI's temp/output tree is misconfigured, that's where you'll see it. Don't expect frame-perfect quality on heavy compression - this is a normalization tool, not a high-end encoder.
Installation
Ships with ComfyUI-InoNodes:
- ComfyUI Manager: search "ComfyUI Ino Nodes", install, restart.
- Manual:
cd ComfyUI/custom_nodes && git clone https://github.com/nobandegani/comfyui_ino_nodes && cd comfyui_ino_nodes && pip install -r requirements.txt, restart.
Python 3.10+, ComfyUI 0.18.1+ (V3 schema), and a working FFmpeg on your system. No model downloads, no API keys.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| enabled | BOOLEAN | true | — |
| input_parent_folder | COMBO | 3 options: input, output, temp | |
| input_folder | STRING | — | |
| output_parent_folder | COMBO | 3 options: input, output, temp | |
| output_folder | STRING | — | |
| change_fpsopt | BOOLEAN | true | — |
| fpsopt | INT | 301–1000 | — |
| change_resolutionopt | BOOLEAN | true | — |
| max_resolutionopt | INT | 2560 | — |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| success | BOOLEAN | — |
| message | STRING | — |
| rel_path | STRING | — |
| abs_path | STRING | — |