12 KiB
name, description, license, compatibility
| name | description | license | compatibility |
|---|---|---|---|
| ffmpeg | Use this skill for local FFmpeg/FFprobe media inspection, remuxing, transcoding, filtering, evidence-bounded video review, transcript-assisted editorial plans, edit decision lists, podcast/audio cleanup, rendering, and output acceptance. It emphasizes explicit stream selection, source preservation, build-aware commands, bounded evidence, and verified new outputs. Do not use it for libav API programming, opaque whole-video understanding, automatic publishing, rights clearance, DRM circumvention, professional broadcast/color certification, or HyperFrames-authored compositions; route those tasks to their owning capabilities. | MIT | Requires ffmpeg and ffprobe for execution; exact filters, codecs, protocols, and hardware backends vary by build and version. |
FFmpeg Expert
Treat FFmpeg as a typed media pipeline and media editing as an evidence-driven workflow. Inspect the actual source, separate measurements from interpretations, make decisions reviewable, render to a new path, and verify at the intended boundary.
When Not to Use
- Do not use this skill for libav API programming, opaque whole-video semantic understanding, automatic publishing, rights clearance, DRM circumvention, professional broadcast/color certification, or HyperFrames-authored compositions.
- Route online media or transcript acquisition to the owning source skill, semantic frame interpretation to a vision-capable reviewer, and platform upload/API work to the platform skill.
Boundaries and Routing
- Use a YouTube/transcript capability to acquire online video or transcripts; return here only for local supplied media and transcript artifacts.
- Use HyperFrames for HTML-authored motion graphics or composition; use this skill to inspect and preprocess its media inputs or verify rendered outputs.
- Use the named platform skill for upload, publishing, account, or API operations.
- FFmpeg can extract bounded frames and audio segments but does not interpret their semantic content. Route visual interpretation to a vision-capable reviewer and preserve its observations as attributed evidence.
- Do not infer rights, consent, identity, intent, or whole-program meaning from technical metadata, sparse frames, silence intervals, or an unaligned transcript.
Evidence Classes
Label consequential claims so unlike evidence is not blended:
- Technical contract — behavior documented by an official FFmpeg or standards source.
- Observed artifact — probe output, measured signal result, extracted frame, listened segment, or downstream test from this source/output.
- Reproducible experiment — exact version, input identity/generator, command, result, and limits.
- Editorial heuristic — a reversible judgment that requires human review, not a fact established by FFmpeg.
- User requirement — the requested output contract, preservation policy, and acceptance threshold.
Media Editing Loop
- Intake. Confirm authorization and privacy boundaries; identify every source; use a private workspace copy of
templates/media-intake.jsonto record probe evidence, timing, the output contract, preservation policy, and unresolved assumptions. Keep raw probe output and media in the restricted task workspace, and minimize any shareable derivative. - Inspect. Probe streams and format. Check required local capabilities with inventories or
scripts/ffmpeg-preflight; never assume a filter, encoder, or hardware backend exists. - Collect bounded evidence. Extract only the frames, clips, waveform/signal measurements, or transcript spans needed for the decision. Record sample timestamps, count, byte/size limits, and the statement that samples cover sampled times only.
- Plan before rendering. For editorial changes, write a reviewable EDL or podcast edit plan. Every consequential cut needs a source range, reason, evidence, confidence, treatment, mapping, and verification state. Leave ambiguous decisions unresolved rather than improvising.
- Render safely. Make stream mapping explicit; prefer
-nand a new output path; avoid untrusted shell concatenation. Distinguish keyframe-limited stream copy from decoded/re-encoded precise cuts. - Verify in layers. Check exit status, decodeability, output probe, stream/timing contract, bounded frame/audio evidence, editorial review, and the actual downstream consumer as applicable. Treat probe/decode success and destination acceptance as separate gates; a local file can pass the former and fail the latter.
- Accept or stop. Use a private workspace copy of
templates/media-acceptance-report.mdto record pass/fail/blocked per criterion. A valid container or successful command alone is not acceptance.
Start technical inspection with:
ffprobe -v error -show_format -show_streams -of json INPUT
For shipped helper workflows, run the helper from the skill root with explicit output paths and limits; treat its JSON result as a report to verify, not as acceptance by itself. When using extract-review-frames, pass timestamps as separate values (--timestamps 0 5 9), not one comma-separated value.
Route to the Focused Reference
Evidence-driven media work
- Read
references/media-intake-and-manifest.mdbefore handling supplied/generated media, sensitive material, multiple sources, or a defined delivery contract. - Read
references/video-inspection-and-visual-evidence.mdwhen extracting or reviewing frames/clips, choosing samples, or making visual claims. - Read
references/editorial-video-editing.mdfor transcript-assisted selection, sequencing, pacing, transitions, overlays, and reviewable editorial decisions. - Read
references/audio-and-podcast-editing.mdfor podcast cuts, signal cleanup, silence/noise analysis, loudness measurement, and listening gates. - Read
references/ffmpeg-edit-decision-lists.mdbefore creating, validating, or turning an EDL into a command plan. - Read
references/media-verification-and-acceptance.mdbefore declaring an output complete or compatible. - Read
references/media-failure-modes.mdwhen evidence is contradictory, a cut drifts, a filter is missing, review samples are sparse, or a workflow repeatedly fails. - Read
references/media-research-source-index.mdwhen supporting claims, refreshing version-sensitive guidance, or recording a technical experiment. - Read
references/editorial-workflow-example.mdwhen proving that intake, evidence, EDL, rendering, and acceptance artifacts compose end to end on a synthetic fixture. - Read
references/synthetic-media-fixtures.mdwhen a change needs bounded real-media fixtures for cuts, cadence, concat, audio, subtitles, or visual-boundary sampling.
Core FFmpeg work
- Read
references/core-model-and-command-anatomy.mdfor containers, streams, codecs, option scope, mapping, copy/transcode, and timestamps. - Read
references/filters-and-transformations.mdfor filtergraphs, labels, audio/video processing, and incremental graph debugging. - Read
references/intermediate-workflows.mdfor seeking, trimming, concat, metadata, subtitles, batching, pipes, and streaming. - Read
references/advanced-operations-and-safety.mdfor hardware acceleration, synchronization, reproducibility, network safety, and failure boundaries. - Read
references/command-cookbook.mdonly after inspection and capability checks; every recipe is conditional. - Read
references/learning-summary.mdfor the newcomer-first mental model. - Read
references/source-inventory.mdfor the original FFmpeg source survey andreferences/local-verification.mdonly for its explicitly host-specific FFmpeg 8.1.2 observations.
Templates
templates/media-intake.json— source identities, probes, contract, privacy, preservation, assumptionstemplates/edit-decision-list.json— reviewable source ranges and treatmentstemplates/video-inspection-report.md— technical inspection and bounded evidence ledgertemplates/visual-review-packet.md— attributed frame/clip observations and coverage limitstemplates/vision-review-observations.json— parseable attributed observation block for a prepared packettemplates/podcast-edit-plan.md— mechanical, signal, and editorial audio decisionstemplates/media-acceptance-report.md— layered verification and criterion verdictstemplates/media-acceptance-contract.json— machine-readable stream, format, evidence, loudness, and downstream requirementstemplates/target-compatibility-manifest.json— one named target, sourced requirements, technical constraints, and downstream lanetemplates/research-experiment-record.md— reproducible version/command/result record
Run scripts/editorial-workflow-example in a new or empty task-local directory when a reproducible synthetic integration proof is required. Its PASS_WITH_UNVERIFIED_BOUNDARIES result is deliberately narrower than editorial or destination acceptance.
Run scripts/generate-media-fixtures when tests need deterministic non-personal media. Keep its generated binaries and manifest in the task workspace; commit the generator and assertions, not the outputs.
Use scripts/render-edl for a non-executing single- or multi-source plan. Default to decoded concat-filter assembly; select concat-demuxer stream copy only with matching probe-derived signatures and verified packet/keyframe boundaries. Unsupported transitions must remain explicit errors.
Use scripts/audio-inspect for bounded silence, EBU R128, peak/clipping, and transcript-alignment evidence. Request each measurement explicitly, preserve unavailable filters as UNAVAILABLE, and treat every interval or transcript range as a listening-review candidate. Its optional report output refuses overwrite.
Use scripts/media-verify with a declared acceptance contract, output FFprobe JSON, and optional evidence JSON. It reports every criterion independently as PASS, FAIL, BLOCKED, UNVERIFIED, or NOT_APPLICABLE; only a report with no failed or missing required evidence is an overall pass.
Use scripts/target-compatibility when acceptance names a real player, editor, host, archive, or service. Keep sourced technical requirements and local probe results separate from evidence produced by that exact consumer; a pass applies only to the named target/version.
Use scripts/vision-review-handoff to prepare bounded, privacy-safe frame packets for an authorized human or vision reviewer. Import only attributed reviewed observations with scripts/import-vision-review; treat proposed editorial consequences as evidence for review, never automatic decisions.
Copy a template into the task workspace and replace its placeholder/example values. Do not put private paths, media, transcripts, or review evidence in the public skill repository.
Non-Negotiable Checks
- Make stream selection explicit whenever multiple inputs/tracks or a complex graph are involved.
- Treat option order as significant: options generally apply to the next input or output.
- Do not call silence useless;
silencedetectreports threshold crossings, not editorial value. - Claim loudness, clipping, timing, or keyframe status only from an available measurement method and retain its output.
- A transcript is evidence only for its text and supplied timing quality; spot-check alignment against media before frame-accurate edits.
- Stop for review when evidence is sparse, ambiguity could remove meaningful content, an optional tool/filter is absent, privacy/authorization is unclear, or two materially different approaches fail.
Completion
Finish only when the requested artifact exists at a new path, required probes and bounded reviews are recorded, the output has been exercised at the relevant downstream boundary, and every acceptance criterion is passed or explicitly blocked. Report untested claims and remaining assumptions instead of filling gaps with plausible output.