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 issue #43. 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.