Local media automation / signal online

FFmpeg jobs you can explain.

Preflight the machine. Preview the exact plan. Run a maintained workflow. Keep a privacy-redacted receipt. PyFFmpegCore turns fragile media commands into repeatable operations for the terminal, Python, and CI.

Proof channel / local ● ready

$ pyffmpegcore doctor

FFmpeg: found / capabilities indexed

FFprobe: found / probe channel ready


$ pyffmpegcore smoke-test

Smoke test: PASS

Synthetic input: mpeg4 320x180

Verified thumbnail: 160x90


No personal media. Artifacts cleaned.

3operating systems
5Python versions
0default telemetry
1shared typed engine

One job.
Four proofs.

Most wrappers start at execution. PyFFmpegCore starts one step earlier and leaves evidence one step later, so the same intent is reviewable before and after FFmpeg touches a file.

01 / Preflight

Know the machine

Resolve binaries, encoders, filters, muxers, protocols, streams, destination, and disk requirements.

02 / Plan

See the exact work

Inspect a deterministic argument vector and human explanation without mutating the filesystem.

03 / Run

Control failure

Use explicit overwrite, timeout, cancellation, cleanup, progress, and stable exit-code policies.

04 / Receipt

Keep the evidence

Record redacted plans, tool versions, probes, elapsed results, and output facts without uploading media.

Measured.
Not mocked.

These are reproducible runs against generated first-party fixtures, with the commands, probes, receipts, and checksums published for inspection.

Web video / size change −19.4%

688,662-byte MOV to a 555,083-byte browser-compatible H.264 MP4.

Inspect the evidence →
Exact-size / output 248,417 B

A 4,042,503-byte source compressed below a strict 256 KiB target.

Inspect the evidence →
Podcast / measured loudness −16.2 LUFS

A −22.0 LUFS WAV normalized toward the declared −16.0 LUFS speech target.

Inspect the evidence →

Choose your lane.

Start from the outcome you need. Every lane reaches the same planner, preflight, runner, and receipt model.

One useful file

Convert a web video, fit an upload limit, normalize speech, burn subtitles, extract audio, or make thumbnails.

Open the recipe index →

Repeatable pipeline

Validate, visualize, run, cache, and resume strict JSON or TOML DAGs without embedding raw shell strings.

Build a pipeline →

Automation surface

Use the same typed engine from Python, a digest-pinned GitHub Action, or the multi-architecture container.

Open the Python API →

Know when not to use it.

Raw FFmpeg is better when you already own the exact argument vector. Graph builders are better for arbitrary filter graphs. PyAV is better for direct packet and frame access. PyFFmpegCore owns the repeatable task layer: diagnostics, plans, execution policy, and proof.

Read the factual comparison →