> ## Documentation Index
> Fetch the complete documentation index at: /docs/llms.txt
> Use this file to discover all available pages before exploring further.

# coreav ffprobe

> Experimental. Run an ffprobe command line over CoreAV's own probes.

> [!WARNING]
>
> `coreav ffprobe` is experimental. Its values can differ from `ffprobe`'s for MP4, MOV and MPEG-TS files. [The measurement page](https://github.com/coreav-dev/coreav/blob/main/docs/measurements/compat-ffprobe.md) has the agreement of every key.

`coreav ffprobe ARGS` takes an `ffprobe` command line in `ffprobe`'s own syntax and answers it from CoreAV's own probes. It prints the format, stream, chapter, program and packet sections that the container describes, in `ffprobe`'s writers (`default`, `compact`, `csv`, `flat` and `json`). It reads MP4, MOV, Matroska, WebM and MPEG-TS files, and `https://` URLs.

A command line outside what it implements, such as `-show_frames`, which needs a decoder, is refused in strict-safe mode and goes to the real `ffprobe` otherwise ([strict-safe mode and the fallback](/docs/strict-safe.md)).

## Examples

```sh theme={null}
coreav --strict-safe ffprobe -v error -show_format -show_streams -of json input.mp4
coreav --strict-safe ffprobe -v error -show_entries stream=codec_name,width,height -of csv=p=0 input.mp4
```

## Use it in place of ffprobe

A link named `ffprobe` that points to `coreav` behaves as `coreav ffprobe` with the whole argument list, so a script that runs `ffprobe` can run CoreAV without changes. Under that name, only `COREAV_STRICT_SAFE=1` turns on strict-safe mode, since every argument belongs to the tool:

```sh theme={null}
ln -s "$(command -v coreav)" /usr/local/bin/ffprobe
COREAV_STRICT_SAFE=1 ffprobe -v error -show_format input.mp4
```

## Options

`coreav ffprobe --help` prints a usage text of its own, not the full `ffprobe` option list:

```text theme={null}
usage: coreav ffprobe [OPTIONS] INPUT

Experimental: values can differ from ffprobe's for MP4/MOV and MPEG-TS
(measured on 1,315 files: of the keys outside the tags, 9 of 101
MP4/MOV and 35 of 157 MPEG-TS agree on fewer than 98% of files);
Matroska/WebM agree on 98% or more of files for all 101 keys.
See docs/measurements/compat-ffprobe.md.

The common ffprobe invocations, over CoreAV's own probes. Options:
  -show_format -show_streams -show_chapters -show_programs -show_packets
  -show_error -count_packets -show_entries SECTION[=KEYS][:...]
  -select_streams SPEC -read_intervals INTERVALS -f FORMAT
  -of|-print_format default|compact|csv|flat|json[=OPTIONS]
  -pretty -sexagesimal -v LEVEL -loglevel LEVEL -hide_banner -nostdin
Reads MP4, MOV, Matroska, WebM and MPEG-TS files and HTTP(S) URLs.

For untrusted input, set COREAV_STRICT_SAFE=1: anything else is then
refused (exit status 4). Without it, anything else runs the ffprobe
program on PATH instead (or the one COREAV_FALLBACK names), which is
FFmpeg's C code, and says so on standard error.
See docs/design/compat-cli.md.
```

[The compatibility command's design note](https://github.com/coreav-dev/coreav/blob/main/docs/design/compat-cli.md) has the grammar and the bars.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.