Edit and enhance AI-generated videos using FFmpeg. Add captions, trim clips, merge videos, add audio, convert formats, and create professional video content for social media distribution.
Install
npx skillscat add oyi77/1ai-skills/video-editor Install via the SkillsCat registry.
SKILL.md
Video Editor Skill
Overview
Post-production video editing using FFmpeg automation. Enhance videos from google-flow and grok-video-generation with captions, audio, transitions, and format optimization for different platforms.
When to Use
- Add captions/subtitles to videos
- Trim or cut video clips
- Merge multiple videos
- Add background music
- Convert video formats
- Optimize for platform specs
- Create video thumbnails
- Batch process videos
FFmpeg Commands
1. Add Captions/Subtitles
# Generate SRT file
cat > captions.srt << EOF
1
00:00:00,000 --> 00:00:03,000
Welcome to AI Video Tutorial
2
00:00:03,000 --> 00:00:06,000
Learn how to create amazing content
EOF
# Burn subtitles into video
ffmpeg -i input.mp4 -vf subtitles=captions.srt output.mp42. Trim Video
# Trim from 5s to 15s
ffmpeg -i input.mp4 -ss 00:00:05 -to 00:00:15 -c copy trimmed.mp43. Merge Videos
# Create file list
cat > filelist.txt << EOF
file 'video1.mp4'
file 'video2.mp4'
file 'video3.mp4'
EOF
# Concatenate
ffmpeg -f concat -safe 0 -i filelist.txt -c copy merged.mp44. Add Audio/Music
# Add background music
ffmpeg -i video.mp4 -i music.mp3 -c:v copy -c:a aac -map 0:v:0 -map 1:a:0 -shortest output.mp4
# Adjust audio volume
ffmpeg -i input.mp4 -af "volume=0.5" output.mp45. Convert Format
# MP4 to WebM
ffmpeg -i input.mp4 -c:v libvpx-vp9 -c:a libopus output.webm
# Optimize for Instagram (1080x1920, 9:16)
ffmpeg -i input.mp4 -vf "scale=1080:1920:force_original_aspect_ratio=decrease,pad=1080:1920:(ow-iw)/2:(oh-ih)/2" instagram.mp4
# Optimize for TikTok
ffmpeg -i input.mp4 -vf "scale=1080:1920" -c:v libx264 -preset slow -crf 22 tiktok.mp46. Create Thumbnail
# Extract frame at 3 seconds
ffmpeg -i video.mp4 -ss 00:00:03 -vframes 1 thumbnail.jpg7. Add Watermark
# Add logo watermark
ffmpeg -i video.mp4 -i logo.png -filter_complex "overlay=W-w-10:H-h-10" watermarked.mp4Automation Examples
Auto-Caption Generator
const { exec } = require('child_process');
const util = require('util');
const execPromise = util.promisify(exec);
async function addCaptions(videoPath, captionText) {
// Generate SRT file
const srtContent = generateSRT(captionText);
await fs.writeFile('captions.srt', srtContent);
// Add to video
await execPromise(
`ffmpeg -i ${videoPath} -vf subtitles=captions.srt output.mp4`
);
return 'output.mp4';
}
function generateSRT(text) {
// Simple SRT generation
return `1\n00:00:00,000 --> 00:00:05,000\n${text}\n`;
}Batch Processing
async function batchOptimizeForPlatforms(videoPath) {
const platforms = {
instagram: '-vf "scale=1080:1920" -c:v libx264',
tiktok: '-vf "scale=1080:1920" -c:v libx264 -preset slow',
youtube: '-vf "scale=1920:1080" -c:v libx264',
x: '-vf "scale=1280:720" -c:v libx264'
};
for (const [platform, params] of Object.entries(platforms)) {
await execPromise(
`ffmpeg -i ${videoPath} ${params} ${platform}.mp4`
);
}
}Platform Specifications
| Platform | Resolution | Aspect Ratio | Max Length | Format |
|---|---|---|---|---|
| Instagram Feed | 1080x1080 | 1:1 | 60s | MP4 |
| Instagram Reels | 1080x1920 | 9:16 | 90s | MP4 |
| TikTok | 1080x1920 | 9:16 | 10min | MP4 |
| X | 1280x720 | 16:9 | 2:20 | MP4 |
| 1920x1080 | 16:9 | 10min | MP4 | |
| YouTube | 1920x1080 | 16:9 | Unlimited | MP4 |
Related Skills: productivity/google-flow, content/grok-video-generation, marketing/social-media-upload