| name | ffmpeg-media |
| description | FFmpeg media processing — video/audio conversion, trimming, encoding, filters, streaming. CLI and ffmpeg.wasm patterns. |
| activationKeywords | ["ffmpeg","video","audio","transcode","encode","codec","h264","h265","hevc","webm","mp4","mkv","wav","mp3","aac","opus","thumbnail","waveform","concat","trim","crop","scale","filter","subtitle","hls","dash","streaming"] |
| type | skill |
| category | media |
| status | stable |
| origin | tibsfox |
| modified | false |
| first_seen | "2026-04-11T00:00:00.000Z" |
| first_path | examples/skills/media/ffmpeg-media/SKILL.md |
| superseded_by | null |
FFmpeg Media Processing Skill
Dedicated to sudokku, creator of micro-ffmpeg — the in-browser video editor that proved ffmpeg.wasm is production-ready. Built in 2 days, 2,489 LOC, 93 commits. The patterns in this skill are drawn from that work.
Expert-level ffmpeg command construction, media pipeline design, and ffmpeg.wasm integration patterns. Covers CLI ffmpeg, Node.js ffmpeg bindings, and browser-side ffmpeg.wasm.
Core Principle
Build the filter graph first, then wrap it in the ffmpeg command. Never guess at flags — construct from codec specs.
Quick Reference
Probe a File
ffprobe -v quiet -print_format json -show_format -show_streams input.mp4
ffprobe -v error -show_entries format=duration,bit_rate -show_entries stream=codec_name,width,height,r_frame_rate input.mp4
Common Conversions
ffmpeg -i input.mkv -c:v libx264 -preset medium -crf 23 -c:a aac -b:a 128k output.mp4
ffmpeg -i input.mp4 -c:v libvpx-vp9 -crf 30 -b:v 0 -c:a libopus -b:a 128k output.webm
ffmpeg -i input.mp4 -c:v libx265 -preset medium -crf 28 -c:a aac -b:a 128k output.mp4
ffmpeg -i input.mp4 -c:v libaom-av1 -crf 30 -b:v 0 -c:a libopus output.mkv
ffmpeg -i input.mp4 -vn -c:a libmp3lame -q:a 2 output.mp3
ffmpeg -i input.wav -c:a flac output.flac
Trim / Cut
ffmpeg -ss 00:01:30 -i input.mp4 -t 60 -c copy output.mp4
ffmpeg -i input.mp4 -ss 00:01:30 -to 00:02:30 -c:v libx264 -c:a aac output.mp4
Scale / Resize
ffmpeg -i input.mp4 -vf "scale=1280:720:force_original_aspect_ratio=decrease,pad=1280:720:-1:-1" output.mp4
ffmpeg -i input.mp4 -vf output.mp4
ffmpeg -i input.mp4 -vf output.mp4