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.
$ 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.
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.
Know the machine
Resolve binaries, encoders, filters, muxers, protocols, streams, destination, and disk requirements.
See the exact work
Inspect a deterministic argument vector and human explanation without mutating the filesystem.
Control failure
Use explicit overwrite, timeout, cancellation, cleanup, progress, and stable exit-code policies.
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.
688,662-byte MOV to a 555,083-byte browser-compatible H.264 MP4.
Inspect the evidence →A 4,042,503-byte source compressed below a strict 256 KiB target.
Inspect the evidence →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 →