Nodes/Bjornulf_custom_nodes/๐Ÿ“น๐Ÿ” Video details (FFmpeg) โš™
ComfyUI Node

๐Ÿ“น๐Ÿ” Video details (FFmpeg) โš™

Ffprobe a video file straight into your graph

By justUmenยทCreated 2 years agoยทUpdated about a year agoยท 545
๐Ÿ“น๐Ÿ” Video details (FFmpeg) โš™
    • filename
    • video_path
    • width
    • height
    • fps
    • total_frames
    • duration_seconds
    • video_codec
    • video_bitrate
    • pixel_format
    • audio_codec
    • audio_bitrate
    • container_format
    • duration_seconds_float
    • full_info
    • FFMPEG_CONFIG_JSON
    โ—„video_pathโ–บ
    โ—„ffprobe_pathffprobeโ–บ
    โ—„use_python_ffmpegfalseโ–บ

    If you're doing anything with video in ComfyUI beyond generating one clip and calling it done - syncing audio, concatenating clips, converting formats - you'll eventually need to know a video's actual fps, resolution, or duration instead of guessing. Video details is justUmen's answer: point it at a file on disk and it probes the file with ffprobe and hands you back every stat you'd normally have to check manually in a terminal, wired straight into your workflow.

    It's one of a small cluster of ffmpeg-flavored nodes in the Bjornulf_custom_nodes pack - sits alongside FFmpeg Configuration, Convert Video, and the Concat Videos nodes, all of which share a common FFMPEG_CONFIG_JSON payload so you don't have to re-enter codec and format settings in five different places.

    How it works

    Under the hood this is a thin wrapper around ffprobe, the metadata-inspection half of ffmpeg. Give it a path to a video file and it shells out to the ffprobe binary (or, if you flip use_python_ffmpeg, goes through the python-ffmpeg wrapper library instead of calling the binary directly) and parses the result into a pile of individual outputs you can wire wherever you need them.

    The inputs and outputs that matter

    • video_path - the file to inspect. This has to be a real path on disk; there's no browse/upload here, you're typically feeding it the output of another Bjornulf video node (like "Images to Video path") or a path you've typed in yourself.
    • ffprobe_path (default "ffprobe") - where to find the ffprobe executable. Leave it as-is if ffmpeg is installed and on your system PATH; only change it if you've got a non-standard install location.
    • use_python_ffmpeg (default false) - switches the extraction method from shelling out to the binary to going through the Python wrapper library instead.

    The output list is long because it's genuinely comprehensive: filename, video_path passed through, width, height, fps, total_frames, duration_seconds (INT) and duration_seconds_float (FLOAT) if you need sub-second precision, video_codec, video_bitrate, pixel_format, audio_codec, audio_bitrate, container_format, a catch-all full_info STRING dump, and - the one that matters most if you're chaining this into other Bjornulf video nodes - FFMPEG_CONFIG_JSON, a pre-packaged config blob that Convert Video and the Concat nodes can consume directly.

    How to install it

    Via ComfyUI Manager: search "Bjornulf_custom_nodes," install, restart. Or manually:

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

    then restart ComfyUI. The pack's requirements.txt includes ffmpeg-python and opencv-python among others (pip install -r requirements.txt from inside the custom node folder, ideally with a venv active on Linux; on Windows portable, run the install through python_embeded\python.exe).

    Common issues & troubleshooting

    ffmpeg-python being installed does not mean ffmpeg is installed. This is the single most likely thing to trip people up: the pack's requirements.txt pulls in the Python wrapper for ffmpeg, but that wrapper still needs the real ffmpeg/ffprobe binaries present on the system and reachable on PATH - it doesn't bundle them. If this node fails with something about ffprobe not being found, that's your answer: install ffmpeg system-wide (apt install ffmpeg on Linux, brew install ffmpeg on macOS, or grab a Windows build and add it to PATH), don't just re-check your pip packages.

    Wrong or relative video_path. Since there's no file browser, a typo or a relative path that doesn't resolve the way you expect will fail silently or point at the wrong file. Double-check with an absolute path if you're not sure.

    Windows users specifically. justUmen's own README flags that the pack's video-related nodes were primarily developed and tested on Linux; if you're on Windows and something in the ffmpeg chain misbehaves, that's a known rough edge rather than something unique to your setup - worth trying use_python_ffmpeg toggled the other way as a first thing to test if the default path isn't working for you.

    CategoryBjornulf

    Inputs (3)

    NameTypeDefaultDescription
    video_pathSTRINGโ€”
    ffprobe_pathSTRINGffprobeโ€”
    use_python_ffmpegBOOLEANfalseโ€”

    Outputs (16)

    NameTypeDescription
    filenameSTRINGโ€”
    video_pathSTRINGโ€”
    widthINTโ€”
    heightINTโ€”
    fpsFLOATโ€”
    total_framesINTโ€”
    duration_secondsINTโ€”
    video_codecSTRINGโ€”
    video_bitrateSTRINGโ€”
    pixel_formatSTRINGโ€”
    audio_codecSTRINGโ€”
    audio_bitrateSTRINGโ€”
    container_formatSTRINGโ€”
    duration_seconds_floatFLOATโ€”
    full_infoSTRINGโ€”
    FFMPEG_CONFIG_JSONSTRINGโ€”