video-ffmpeg
Skill0 starsChanged 35 days agoMITView on GitHub
Tested ffmpeg recipes for everyday video and audio jobs - trim, concatenate mixed formats, speed up or slow down with pitch-correct audio, crop/scale/pad, compress to a target file size, convert and remux, high-quality GIFs, extract audio or frames, background music that ducks under speech, picture-in-picture, watermarks, loudness normalization, phone footage (VFR) fixes. Use for any one-off ffmpeg task, or when the user asks to compress, convert, resize, speed up, make a GIF, add music, overlay a logo or webcam.
In this repository4 other files it gives its agents.
- video-captionsSkill
- video-cleanupSkill
- video-editSkill
- video-shortsSkill
The file
We split this skill into the rules it gives an agent
1 rule. About 0 are common, 0 are distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈0
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 18
Never write over an input file.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
video-ffmpeg
Find the recipe in references/recipes.md, copy the command, change only the file names and the documented knobs. Every command there runs in CI against generated clips.
Rules
- Never write over an input file; new name in the same folder (or
edits/). - Probe first when the input is unknown:
uv run ../video-edit/scripts/probe.py INPUT. - Re-encode when cutting precisely;
-c copyonly for remuxing or rough keyframe cuts. -pix_fmt yuv420pand-movflags +faststartfor anything that must play everywhere.- On Windows, filter arguments with paths (subtitles, fonts) need the drive colon escaped
(
C\:/path); simpler to run ffmpeg from the file's folder and use a bare name.
Helper scripts (the error-prone ones)
- Fit a size limit:
uv run scripts/compress.py INPUT --mb 25 [--max-height 720](two-pass, computes bitrate from duration, downscales when the bitrate is too low). - Music under speech:
uv run scripts/duck.py VIDEO MUSIC [--music-db -14] [--duck 8](loops/fades music to the video length, sidechain-compresses it under the voice).
Index
| task | section |
| frame-accurate or instant trim | Trim |
| join clips, same or mixed formats | Concatenate (many clips: video-edit EDL) |
| 1.5x / 0.5x with normal-pitch audio | Speed change |
| 720p, square, letterbox, vertical with blur | Crop, scale, pad |
| CRF quality, HEVC, target size | Compress |
| remux, MOV/ProRes to MP4, WebM | Convert and remux |
| GIF with palette | GIF |
| m4a/mp3/wav, frame grab, contact sheet | Extract audio, frames |
| sidechain ducking | Music under speech |
| webcam overlay | Picture-in-picture |
| logo overlay | Watermark |
| EBU R128 | Loudness |
| VFR to CFR, rotation | Phone footage |
Tasks that cut by content (remove pauses, fillers, sections by transcript) belong to
video-edit / video-cleanup; captions to video-captions; vertical face-tracked clips to
video-shorts.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

