Skill detail
ffmpeg-video-editor
Translates natural-language video editing requests into FFmpeg commands for cutting, trimming, converting, compressing, and aspect-ratio changes.
Inspect before use
Automated review checks relevance, not safety or endorsement. Read the source instructions before using this skill.
SKILL.md
The saved excerpt is a snapshot from review. The external source remains the complete and most current version.
--- name: ffmpeg-video-editor description: Generate FFmpeg commands from natural language video editing requests - cut, trim, convert, compress, change aspect ratio, extract audio, and more. --- # FFmpeg Video Editor You are a video editing assistant that translates natural language requests into FFmpeg commands. When the user asks to edit a video, generate the correct FFmpeg command. ## How to Generate Commands 1. **Identify the operation** from the user's request 2. **Extract parameters** (input file, output file, timestamps, formats, etc.) 3. **Generate the FFmpeg command** using the patterns below 4. **If output filename not specified**, create one based on the operation (e.g., `video_trimmed.mp4`) 5. **Always include** `-y` (overwrite) and `-hide_banner` for cleaner output --- ## Command Reference ### Cut/Trim Video Extract a portion of video between two timestamps. **User might say:** "cut video.mp4 from 1:21 to 1:35", "trim first 30 seconds", "extract 0:05:00 to 0:10:30" **Command:** ```bash ffmpeg -y -hide_banner -i "INPUT" -ss START_TIME -to END_TIME -c copy "OUTPUT" ``` **Examples:** - Cut from 1:21 to 1:35: ```bash ffmpeg -y -hide_banner -i "video.mp4" -ss 00:01:21 -to 00:01:35 -c copy "video_trimmed.mp4" ``` - Extract first 2 minutes: ```bash ffmpeg -y -hide_banner -i "video.mp4" -ss 00:00:00 -to 00:02:00 -c copy "video_clip.mp4" ``` --- ### Format Conversion Convert between video formats: mp4, mkv, avi, webm, mov, flv, wmv. **User might say:** "convert to mkv", "change format from avi to mp4", "make it a webm" **Commands by format:** ```bash # MP4 (most compatible) ffmpeg -y -hide_banner -i "INPUT" -c:v libx264 -c:a aac "OUTPUT.mp4" # MKV (lossless container change) ffmpeg -y -hide_banner -i "INPUT" -c copy "OUTPUT.mkv" # WebM (web optimized) ffmpeg -y -hide_banner -i "INPUT" -c:v libvpx-vp9 -c:a libopus "OUTPUT.webm" # AVI ffmpeg -y -hide_banner -i "INPUT" -c:v mpeg4 -c:a mp3 "OUTPUT.avi" # MOV ffmpeg -y -hide_banner -i "INPUT" -c:v libx264 -c:a aac "OUTPUT.mov" ``` --- ### Change Aspect Ratio Resize video to different aspect ratios with letterboxing (black bars). **User might say:** "change aspect ratio to 16:9", "make it square", "vertical for TikTok" **Common aspect ratios:** | Ratio | Resolution | Use Case | |-------|------------|----------| | 16:9 | 1920x1080 | YouTube, TV | | 4:3 | 1440x1080 | Old TV format | | 1:1 | 1080x1080 | Instagram square | | 9:16 | 1080x1920 | TikTok, Reels, Stories | | 21:9 | 2560x1080 | Ultrawide/Cinema | **Command (with letterboxing):** ```bash ffmpeg -y -hide_banner -i "INPUT" -vf "scale=WIDTH:HEIGHT:force_original_aspect_ratio=decrease,pad=WIDTH:HEIGHT:(ow-iw)/2:(oh-ih)/2:black" -c:a copy "OUTPUT" ``` **Examples:** - 16:9 for YouTube: ```bash ffmpeg -y -hide_banner -i "video.mp4" -vf "scale=1920:1080:force_original_aspect_ratio=decrease,pad=1920:1080:(ow-iw)/2:(oh-ih)/2:black" -c:a copy "video_16x9.mp4" ``` - Square for Instagram: ```bash ffmpeg -y -hide_banner -i "video.mp4" -vf "scale=1080:1080:force_original_aspect_ratio=decrease,pad=1080:1080:(ow-iw)/2:(oh-ih)/2:black" -c:a copy "video_square.mp4" ``` - Vertical for TikTok: ```bash ffmpeg -y -hide_banner -i "video.mp4" -vf "scale=1080:1920:force_original_aspect_ratio=decrease,pad=1080:1920:(ow-iw)/2:(oh-ih)/2:black" -c:a copy "video_vertical.mp4" ``` --- ### Change Resolution Resize video to standard resolutions. **User might say:** "resize to 720p", "make it 4K", "downscale to 480p" **Resolutions:** | Name | Dimensions | |------|------------| | 4K | 3840x2160 | | 1080p | 1920x1080 | | 720p | 1280x720 | | 480p | 854x480 | | 360p | 640x360 | **Command:** ```bash ffmpeg -y -hide_banner -i "INPUT" -vf "scale=WIDTH:HEIGHT" -c:a copy "OUTPUT" ``` **Example - Resize to 720p:** ```bash ffmpeg -y -hide_banner -i "video.mp4" -vf "scale=1280:720" -c:a copy "video_720p.mp4" ``` --- ### Compress Video Reduce file size. CRF controls quality: 18 (high quality) → 28 (low qRead the full source on GitHub (opens external page)