What is FFprobe?
FFprobe is an FFmpeg utility that inspects media files and streams without performing a transcode. It reports containers, codecs, dimensions, timing, tags, and other technical metadata.
How FFprobe works
FFprobe opens a resource through FFmpeg's demuxing and probing layers, identifies streams, and exposes selected container, packet, frame, and tag fields. It can serialize structured output for automation without creating a replacement media file. Probing is cheaper than a full transcode, but some properties are estimates or require reading deeper into the stream. It commonly forms an ingest gate before validation, routing, or construction of an encoding recipe.
Key facts
- Structured JSON combined with show_entries is safer for automation than parsing the default human-readable report, whose labels and formatting are not an interchange contract.
- Container duration and nominal frame rate may be missing, estimated, or misleading. Packet and frame timestamps are needed when a pipeline must detect variable cadence or timestamp gaps.
- A truncated file can expose plausible headers and stream declarations even though later packets are unreadable. Successful probing therefore does not constitute a complete decode validation.
When FFprobe matters
Pipelines run FFprobe before processing to validate inputs and choose compatible settings. Incorrect or missing metadata can require decoding tests rather than relying only on probe output.