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

# Introduction

> A Rust-based media toolkit, built to be safe and fast. It aims to become a modern alternative to FFmpeg.

## What works today

The `coreav` command reads media files and rewrites them without re-encoding:

* It describes MP4, MOV, Matroska, WebM and MPEG transport stream files as JSON.
* It cuts, splits, joins and sanitizes MP4 and MOV files by stream copy, and remuxes MP4, MOV, Matroska and WebM files to MP4 with the movie header first.
* It checks a file against an upload policy and prints the verdict.
* It copies audio, subtitles and chapters out of MP4 and MOV files, and decodes FLAC and MP3 audio to WAV.
* It serves an MP4 or MOV file as HLS.
* It takes `ffprobe` and `ffmpeg -c copy` command lines. In [strict-safe mode](/docs/strict-safe.md) it refuses the command lines it does not implement. Without that mode it hands them to the real FFmpeg.

[Commands](/docs/commands.md) has a page for each command.

Every parser takes limits on memory and work, and a damaged or hostile file gives an error instead of a crash. [Safety](/docs/safety.md) lists what enforces each property.

The same code is also a [Python module](/docs/python.md), and an npm package that runs the command natively or as WebAssembly.

## Status

CoreAV is pre-release. The workspace is at version 0.0.1, and no CoreAV release is published: not on GitHub Releases, crates.io, npm or PyPI. The first release is 0.1.0, tracked in [the 0.1.0 release issue](https://github.com/coreav-dev/coreav/issues/43). Until then, commands, options and library APIs can change. Each JSON document names a versioned schema, such as `coreav.probe/1` ([`docs/schema`](https://github.com/coreav-dev/coreav/tree/main/docs/schema)).

Some parts are experimental, not measured yet, or not in a default build:

| Part | Where it stands |
| - | - |
| [`coreav ffprobe`](/docs/commands/ffprobe) | Experimental. Its values can differ from `ffprobe`'s for MP4, MOV and MPEG-TS files ([measurements](https://github.com/coreav-dev/coreav/blob/main/docs/measurements/compat-ffprobe.md)). |
| [`coreav ffmpeg`](/docs/commands/ffmpeg) | Its outputs pass the job oracles on the fixtures in CI. Its 0.1.0 bars on held-out files are not measured yet. |
| [`coreav transcode`](/docs/commands/transcode) | Supported for H.264 sources. Experimental for other source codecs. Only in builds with a decoder backend. |
| [`coreav thumbnail`](/docs/commands/thumbnail) | Only in builds with a decoder backend. |
| The native H.264 decoder | Opt-in and never in a default build ([build features](/docs/build-features.md)). |

## Next steps

> **[Install](/docs/install.md)**
>
> Build the `coreav` command from source.

> **[Quick start](/docs/quickstart.md)**
>
> Probe, cut and check a file.

> **[Strict-safe mode](/docs/strict-safe.md)**
>
> Read files you did not make without running FFmpeg.

> **[Commands](/docs/commands.md)**
>
> Every command and its options.


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