
Convert Video
- 34 installs
- 269 repo stars
- Updated June 11, 2026
- gupsammy/claudest
convert-video is an agent skill that performs general FFmpeg video manipulation with user-confirmed ffprobe and ffmpeg commands.
About
convert-video is a Claude agent skill for solo builders who need general FFmpeg video work—format changes, trims, speed ramps, resize, rotation, flip, and remux—without pulling in sibling skills for compression, GIFs, social presets, or audio/frame extraction. It instructs the agent to classify the operation first, probe with ffprobe when codec or dimensions matter, build a single chained command for multi-step edits, ask for confirmation, then report output path and size. Allowed tools are scoped Bash for ffprobe and ffmpeg plus AskUserQuestion. It fits indie founders prepping launch demos, course creators normalizing footage, and developers embedding MP4 assets in docs or marketing sites. Use when triggers like convert this video, change format to mp4, trim from X to Y, timelapse, or remux appear and the task is not covered by the dedicated media skills in the same family.
- Maps user intent to FFmpeg operation patterns before running commands
- Probes codec with ffprobe for safe remux versus re-encode decisions
- Chains trim, resize, speed, rotate, and convert in one ffmpeg invocation
- Confirms with the user before executing shell ffmpeg/ffprobe
- Explicitly excludes compress-video, make-gif, share-social, extract-audio, and extract-frames scopes
Convert Video by the numbers
- 34 all-time installs (skills.sh)
- Ranked #949 of 1,335 Generative Media skills by installs in the Skillselion catalog
- Security screen: LOW risk (skills.sh audit)
- Data as of Aug 4, 2026 (Skillselion catalog sync)
npx skills add https://github.com/gupsammy/claudest --skill convert-videoAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 34 |
|---|---|
| repo stars | ★ 269 |
| Security audit | 3 / 3 scanners passed |
| Last updated | June 11, 2026 |
| Repository | gupsammy/claudest ↗ |
What it does
Convert, trim, remux, speed-change, resize, rotate, or flip local videos with ffprobe and ffmpeg when the job is outside compress, GIF, social-share, or audio/frame extract skills.
Who is it for?
Best when you have ffmpeg installed and need one-off convert/trim/speed/resize jobs outside specialized compress or GIF skills.
Skip if: Compression-only workflows, GIF creation, social platform export presets, or audio/frame extraction—those belong to sibling claudest media skills.
When should I use this skill?
User asks to convert this video, change format to mp4, trim, cut, speed up, slow motion, timelapse, resize, scale, rotate, flip, remux, or general FFmpeg manipulation not covered by compress-video, make-gif, share-social
What you get
You get a confirmed ffmpeg pipeline and a reported output file path and size, with multi-step filters applied in one run when possible.
- Converted or edited video file at a reported path
- Output file size summary after successful run
Files
Video Convert
Identify the operation type first, then apply the matching pattern below. For multi-operation requests (e.g., trim + resize + convert), chain all filters in a single ffmpeg invocation — avoid intermediate files.
Process
1. Identify the operation(s) from the user's request. 2. Probe codec when converting formats; probe dimensions when resizing. Speed, rotation, flip, and frame extraction do not require probing. 3. Construct the command using the appropriate pattern. 4. Confirm with the user before running. 5. Run and report output file path and size.
Operation Patterns
Format Conversion
Probe codec first — determines whether -c copy is safe:
ffprobe -v quiet -show_streams "$INPUT" | grep codec_name# Remux: same codec, different container (e.g., H.264 MKV → MP4) — instant, lossless:
ffmpeg -i input.mkv -c copy output.mp4
# Re-encode: different codec required:
ffmpeg -i input.avi -c:v libx264 -crf 23 -c:a aac -b:a 128k output.mp4Trimming
# Fast trim without re-encoding (-ss before -i = container-level seek):
ffmpeg -ss 00:01:30 -to 00:03:45 -i "$INPUT" -c copy "$OUTPUT"
# Re-encoding trim (use when -c copy causes A/V sync issues near keyframes):
ffmpeg -ss 00:01:30 -to 00:03:45 -i "$INPUT" -c:v libx264 -crf 23 -c:a copy "$OUTPUT"Always try -c copy first. Fall back to re-encoding only if the user reports sync issues or the cut must land on a non-keyframe boundary.
Speed Change
# 2x speed:
ffmpeg -i "$INPUT" -filter:v "setpts=0.5*PTS" -filter:a "atempo=2.0" "$OUTPUT"
# 0.5x slow-motion:
ffmpeg -i "$INPUT" -filter:v "setpts=2.0*PTS" -filter:a "atempo=0.5" "$OUTPUT"setpts factor = 1 / speed_multiplier. atempo range is 0.5–2.0 — chain for higher multiples: atempo=2.0,atempo=2.0 achieves 4x. For silent video, omit -filter:a entirely.
Resize / Scale
Probe dimensions first: ffprobe -v quiet -show_streams "$INPUT" | grep -E "width|height"
# Scale to width, auto height (-2 ensures H.264-compatible even height):
ffmpeg -i "$INPUT" -vf "scale=1280:-2" -c:a copy "$OUTPUT"
# Fit within bounding box without upscaling:
ffmpeg -i "$INPUT" \
-vf "scale='min(1280,iw)':'min(720,ih)':force_original_aspect_ratio=decrease,pad=ceil(iw/2)*2:ceil(ih/2)*2" \
-c:a copy "$OUTPUT"Rotation / Flip
# 90° clockwise: ffmpeg -i "$INPUT" -vf "transpose=1" "$OUTPUT"
# 90° counter-clockwise: ffmpeg -i "$INPUT" -vf "transpose=2" "$OUTPUT"
# 180°: ffmpeg -i "$INPUT" -vf "transpose=1,transpose=1" "$OUTPUT"
# Horizontal flip: ffmpeg -i "$INPUT" -vf "hflip" "$OUTPUT"
# Vertical flip: ffmpeg -i "$INPUT" -vf "vflip" "$OUTPUT"Frame Extraction
# Single frame at timestamp:
ffmpeg -ss 00:00:10 -i "$INPUT" -frames:v 1 -q:v 2 output.jpg
# One frame every N seconds:
ffmpeg -i "$INPUT" -vf "fps=1/$N" -q:v 2 frames/frame_%04d.jpg-q:v 2 is near-maximum JPEG quality. Use -q:v 1 for the highest quality setting.
Key Decisions
- Never upscale — add
force_original_aspect_ratio=decreasewhen fitting to a bounding box. - For multi-filter operations, chain with commas in a single
-vf; but-filter:vand-filter:amust remain separate flags. - Use
-c:a copyin all re-encode operations unless the audio format itself needs to change. - If ffprobe reveals a
rotatemetadata tag on the stream, use-vf "transpose=..."to bake rotation into pixels —-c copypreserves the metadata flag without rotating the actual frame data, which confuses many players.
Related skills
How it compares
Narrow FFmpeg workflow skill for general edits—not a browser-based editor or cloud transcoding SaaS.
FAQ
Who is convert-video for?
Developers and content-focused solos who drive video changes through Claude Code or similar agents with local ffmpeg access.
When should I use convert-video?
Use it during Build docs when preparing demo MP4s, in Grow content when normalizing clips for posts, and before Launch distribution when you need container or codec fixes without re-exporting from an NLE.
Is convert-video safe to install?
It allows shell ffmpeg and ffprobe on user files; review Security Audits on this Prism page and only confirm commands you understand before execution.