Nodes/Bjornulf_custom_nodes/๐Ÿ“นโžœ๐Ÿ“น Convert Video (FFmpeg)
ComfyUI Node

๐Ÿ“นโžœ๐Ÿ“น Convert Video (FFmpeg)

Reformat a video and see the exact command it ran

By justUmenยทCreated 2 years agoยทUpdated about a year agoยท 545
๐Ÿ“นโžœ๐Ÿ“น Convert Video (FFmpeg)
    • video_path
    • ffmpeg_command
    โ—„video_pathโ€”โ–บ
    โ—„output_filenameconverted.mp4โ–บ
    โ—„use_python_ffmpegfalseโ–บ
    โ—„FFMPEG_CONFIG_JSONโ€”โ–บ

    A straightforward video-format converter, wrapped around FFmpeg the way most of this pack's video tooling is. Give it a path to a video and a target filename, and it re-encodes into whatever format that filename's extension implies. Where it's a little more thoughtful than a bare wrapper: it hands back the actual FFmpeg command it ran, so you're not stuck guessing what happened when something looks off.

    Why you'd reach for it

    A lot of the intermediate video files produced elsewhere in this pack - the temporary videos out of Images to Video, the synced output of Audio Video Sync - aren't necessarily in the container or codec you want for a final deliverable. This node is the cleanup step: point it at a .webm you need as .mp4, or a raw temp file you want re-encoded before handing to another tool entirely.

    The inputs and outputs that matter

    Three required fields: video_path, the source file; output_filename (default converted.mp4), which sets both the destination name and - via its extension - the target format; and use_python_ffmpeg (boolean, default false), which switches the node between calling the system ffmpeg binary directly and going through the ffmpeg-python wrapper library instead. There's also an optional FFMPEG_CONFIG_JSON input - wire this in from the pack's own FFmpeg Configuration node if you need control over encoding settings beyond a simple format swap; without it, you get sensible defaults.

    Two outputs come back: video_path, the converted file, and - the genuinely useful one - ffmpeg_command, the exact command line the node executed. If a conversion doesn't do what you expected, that string is the fastest way to find out why: copy it, run it in a terminal yourself, and you'll see FFmpeg's real error output instead of whatever ComfyUI's console gives you.

    Installing it

    Through ComfyUI Manager: search Bjornulf_custom_nodes, install, restart. Or by hand:

    cd ComfyUI/custom_nodes
    git clone https://github.com/justUmen/Bjornulf_custom_nodes
    

    Then pip install -r requirements.txt inside that folder, which pulls in ffmpeg-python along with the rest of the pack's shared dependencies. That package is a wrapper, not a bundled binary - you still need ffmpeg itself installed separately and reachable on your system PATH, regardless of whether you leave use_python_ffmpeg on or off. Skipping that step is the single most common reason any FFmpeg-backed node in this pack fails on a fresh install.

    Where people get burned

    If the node errors out or silently produces nothing, check the ffmpeg_command output first (or your console log) before assuming the node itself is broken - nine times out of ten it's a missing ffmpeg binary, an unsupported codec for your target extension, or a source file path that's wrong. And because this pack's video tooling has a Linux-first history by the author's own account, if you're on Windows and a conversion that should work is silently failing, that's a known rough edge worth ruling out before you go debugging your own workflow.

    CategoryBjornulf

    Inputs (4)

    NameTypeDefaultDescription
    video_pathSTRINGโ€”
    output_filenameSTRINGconverted.mp4โ€”
    use_python_ffmpegBOOLEANfalseโ€”
    FFMPEG_CONFIG_JSONoptSTRINGโ€”

    Outputs (2)

    NameTypeDescription
    video_pathSTRINGโ€”
    ffmpeg_commandSTRINGโ€”