Skip to main content

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 it refuses the command lines it does not implement. Without that mode it hands them to the real FFmpeg.
Commands 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 lists what enforces each property. The same code is also a Python module, 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. Until then, commands, options and library APIs can change. Each JSON document names a versioned schema, such as coreav.probe/1 (docs/schema). Some parts are experimental, not measured yet, or not in a default build:

Next steps

Install

Build the coreav command from source.

Quick start

Probe, cut and check a file.

Strict-safe mode

Read files you did not make without running FFmpeg.

Commands

Every command and its options.