Probe Video
Probe Video — find out what a video actually is before you trust its label
- media_info
- summary
Every video file is a small liar. The filename says 1080p, the header says 60 fps, and what actually plays is a variable-framerate 23.98 mess. Before you convert, remux, or re-encode anything, you want to know the truth. That's what Probe Video does - it runs ffprobe on a file and hands you a structured bundle of facts about it.
It's the first node in the Inspect group of the Framerate Converter pack (Trope Tools, TropeMedia). It's a building block - most people never touch it directly, because the top-level Convert Framerate node runs this exact probe internally. But if you're building your own pipeline, this is where it starts.
What you get
One input: video_path, a plain string. Give it a file path and it returns two things:
- media_info - a
MEDIA_INFObundle containing framerate, duration, frame count, resolution, video codec, whether there's audio, the audio sample rate, and the path. - summary - a human-readable text dump of the same info, for a Show Text node or just eyeballing.
The interesting engineering is in which framerate it reports. ffprobe gives you two: r_frame_rate (the nominal/timestamp-derived rate) and avg_frame_rate (total frames ÷ duration - the rate you actually perceive). This node prefers avg_frame_rate and only falls back when that's missing or zero. That distinction is not pedantry. AI-exported and variable-framerate footage routinely declares r_frame_rate=60/1 for video that genuinely plays at ~24 fps, and trusting the wrong number downstream is how you get conversions that are subtly off.
It also tolerates the junk ffprobe throws back: nb_frames is often the literal string "N/A" on MOV/MKV files, so it falls back to duration × fps instead of crashing on the parse.
Wire it up
The media_info output feeds two kinds of consumers. The pack's Extract Media Info node splits it into clean scalar outputs (source_fps, duration, frame_count, …) that wire straight into Calc Conversion and Calc Audio. Or you can run Probe Video → Extract Media Info → Calc Conversion → Calc Audio → Build Command → Run FFmpeg and have a fully custom conversion chain where you control every stage. That's the whole point of exposing these granular nodes.
Install and gotchas
Same story as the rest of the pack: ComfyUI Manager → Trope Tools - Framerate Converter, or git clone https://github.com/LaserDog80/ComfyUI-FramerateConverter into custom_nodes/ and restart. No pip dependencies - it shells out to the system ffprobe, so FFmpeg must be installed (brew install ffmpeg, apt install ffmpeg, gyan.dev on Windows).
It raises a clear error if ffprobe fails or the file has no video stream, so you'll know exactly why a path broke. And there's a 60-second timeout, which for metadata probing is generous - a probe hanging usually means the file itself is unreadable or the path is wrong (weird characters and sandboxed-Mac path issues are the usual suspects, same as anywhere else in ComfyUI).
If you only need "is this a real video, and what is it?", this is the node. It's not glamorous - it's the part of the workflow that stops you from converting a file based on a filename's promises.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| video_path | STRING | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| media_info | MEDIA_INFO | — |
| summary | STRING | — |