npx skills add ...
npx skills add sundial-org/awesome-openclaw-skills --skill ffmpeg-video-editor
Generate FFmpeg commands from natural language video editing requests - cut, trim, convert, compress, change aspect ratio, extract audio, and more.
npx skills add sundial-org/awesome-openclaw-skills --skill 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.
video_trimmed.mp4)-y (overwrite) and -hide_banner for cleaner outputExtract 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:
Examples:
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:
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):
Examples:
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:
Example - Resize to 720p:
Reduce file size. CRF controls quality: 18 (high quality) → 28 (low quality), 23 is balanced.
User might say: "compress video", "reduce file size", "make smaller for email"
Command:
Examples:
Extract audio track from video.
User might say: "extract audio as mp3", "get the audio from video", "convert to audio only"
Command:
Codecs by format:
| Format | Codec |
|---|---|
| mp3 | libmp3lame |
| aac | aac |
| wav | pcm_s16le |
| flac | flac |
| ogg | libvorbis |
Example - Extract as MP3:
Create silent video (remove audio track).
User might say: "remove audio", "mute video", "make silent"
Command:
Example:
Speed up or slow down video.
User might say: "speed up 2x", "slow motion", "make 10x timelapse"
Command:
Formula:
setpts = (1/speed)*PTS (2x speed → 0.5*PTS)atempo = speed (must be 0.5-2.0, chain for extremes)Examples:
Create animated GIF from video.
User might say: "make a gif", "convert to gif", "gif from 0:10 to 0:15"
Command:
Example - GIF of 5 seconds starting at 0:10:
Rotate or flip video orientation.
User might say: "rotate 90 degrees", "flip horizontally", "rotate upside down"
Commands:
Capture a single frame from video.
User might say: "screenshot at 1:30", "extract thumbnail", "get frame at 5 seconds"
Command:
Example:
Overlay image on video.
User might say: "add logo.png", "put watermark in corner", "overlay image"
Positions:
| Position | Overlay Value |
|---|---|
| Top-left | overlay=10:10 |
| Top-right | overlay=W-w-10:10 |
| Bottom-left | overlay=10:H-h-10 |
| Bottom-right | overlay=W-w-10:H-h-10 |
| Center | overlay=(W-w)/2:(H-h)/2 |
Command:
Example - Logo in top-right:
Permanently embed subtitles into video.
User might say: "add subtitles", "burn srt file", "embed captions"
Command:
Example:
Join multiple videos together.
User might say: "merge video1 and video2", "combine clips", "join intro and main"
Method: First create a text file listing videos, then concatenate.
Step 1 - Create file list (files.txt):
Step 2 - Concatenate:
Use these formats for timestamps:
HH:MM:SS → 01:30:45 (1 hour 30 min 45 sec)MM:SS → 05:30 (5 min 30 sec)SS → 90 (90 seconds)HH:MM:SS.mmm → 00:01:23.500 (with milliseconds)When generating commands:
Example response: