Skill detail

ffmpeg-video-editor

Translates natural-language video editing requests into FFmpeg commands for cutting, trimming, converting, compressing, and aspect-ratio changes.

MatchDirectReviewed for Video Editing
Sourcesundial-org/​awesome-openclaw-skillsExternal source
Reported installs1,456Popularity signal only

Inspect before use

Automated review checks relevance, not safety or endorsement. Read the source instructions before using this skill.

Saved source preview

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 q
Read the full source on GitHub (opens external page)
Context

Related work