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

# coreav probe

> Describe an MP4, MOV, Matroska, WebM or MPEG-TS file as JSON.

`coreav probe FILE` describes a media file as a JSON document on standard output: its container, its duration and each stream's codec, size, timing and metadata. It reads MP4, MOV, Matroska, WebM and MPEG transport stream files. The document's schema depends on the container:

| Container | Schema |
| - | - |
| MP4 and MOV | [`coreav.probe/1`](https://github.com/coreav-dev/coreav/blob/main/docs/schema/probe-v1.md) |
| Matroska and WebM | [`coreav.probe-matroska/1`](https://github.com/coreav-dev/coreav/blob/main/docs/schema/probe-matroska-v1.md) |
| MPEG-TS | [`coreav.probe-mpegts/1`](https://github.com/coreav-dev/coreav/blob/main/docs/schema/probe-mpegts-v1.md) |

## Examples

```sh theme={null}
coreav probe input.mp4
coreav probe https://example.com/video.mp4
coreav probe --allow h264,aac --strict upload.mp4
```

`--allow` keeps only the streams whose codec is on the list, and `--strict` rejects the whole file (exit status 1) instead of dropping a stream. `--ffprobe-compat` prints the shape of `ffprobe -of json -show_format -show_streams` instead, limited to the fields that are checked against `ffprobe`.

## Options

```text theme={null}
Describe an MP4, MOV, Matroska, WebM or MPEG-TS file as JSON

Usage: coreav probe [OPTIONS] <FILE>

Arguments:
  <FILE>  The file to probe

Options:
      --ffprobe-compat     Print the `ffprobe -of json -show_format -show_streams` shape, limited to fields checked against `ffprobe`
      --scan-fragments     Read every movie fragment so that fragmented streams get their durations (the default with --ffprobe-compat)
      --no-scan-fragments  Do not read movie fragments, even with --ffprobe-compat
      --scan-frame-sizes   Read the parameter sets and frame headers in every sample of each video stream for `video.scanned_size` (docs/design/frame-sizes.md). Reads the headers of every sample, not their coded data. For Matroska and WebM, the same pass also gives each stream's `duration`, `frame_count` and `bit_rate`
      --allow <CODEC>      Codecs to accept, comma separated (for example `h264,aac`); streams with any other codec are dropped. Default: every supported codec. Unsupported codecs (`other`) can never be allowed. Names of codecs a container cannot hold are ignored for that container
      --strict             Reject the whole file when a stream's codec is not allowed, instead of dropping that stream
  -h, --help               Print help
```


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