Stop Googling ffmpeg commands. Just describe what you want.

ai-ffmpeg-cli is an AI-powered CLI that translates natural language into safe, previewable ffmpeg commands. Built for developers, content creators, and anyone who works with media files but doesnโt want to memorize complex syntax.
# Instead of this...
ffmpeg -i input.mp4 -vf "scale=1280:720" -c:v libx264 -c:a aac -b:v 2000k output.mp4
# Just say this... (cli command is different)
aiclip "convert input.mp4 to 720p with good quality"
# Install from PyPI
pip install ai-ffmpeg-cli
# Set your OpenAI API key
export OPENAI_API_KEY="sk-your-key-here"
# Or create a .env file
echo "OPENAI_API_KEY=sk-your-key-here" > .env
Interactive mode (type your request after launching):
aiclip
___ ____________ ________
/ | / _/ ____/ / / _/ __ \
/ /| | / // / / / / // /_/ /
/ ___ |_/ // /___/ /____/ // ____/
/_/ |_/___/\____/_____/___/_/
AI-Powered Video & Audio Processing
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โญโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ Welcome to Interactive Mode โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ
โ โ
โ ai-ffmpeg-cli v0.2.5 โ
โ โ
โ AI-powered video and audio processing with natural language โ
โ Type your request in plain English and let AI handle the ffmpeg complexity! โ
โ โ
โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
Available Media Files
โโโโโโโโโโณโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Type โ Count โ Files โ
โกโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฉ
โ Videos โ 1 โ โข input.mp4 โ
โ Images โ 2 โ โข logo.png โ
โ โ โ โข watermark.png โ
โโโโโโโโโโดโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โญโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ Output Configuration โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ
โ Output Directory: /path/to/your/aiclip โ
โ Generated files will be saved here โ
โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
aiclip> convert this video to 720p
๐ parse_intent: 2,073 โ 47 (2,120 total) | $0.0057
โโโโโณโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโ
โ # โ Command โ Output โ Status โ
โกโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฉ
โ 1 โ ffmpeg -i input.mp4 -vf scale=1280:720... โ /path/to/your/aiclip/input_720p.mp4 โ New โ
โโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโ
โญโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ Confirmation Required โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ
โ โ
โ Run these commands? โ
โ โ
โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
[y/n]: Using default: Y
Or run a one-shot command (no interactive prompt):
aiclip --dry-run "convert input.mp4 to 720p with good quality"
# Convert formats
aiclip "convert input.mov to mp4 with h264 and aac"
# Resize videos
aiclip "downscale video.mp4 to 720p"
aiclip "make input.mp4 1080p resolution"
# Compress files
aiclip "compress large-video.mp4 to smaller size"
aiclip "reduce file size with CRF 23"
# Create animated GIFs
aiclip "convert input.mp4 to animated gif"
aiclip "create a 5 second animated gif from video.mp4"
# Extract audio
aiclip "extract audio from movie.mp4 to mp3"
aiclip "get audio track from video as wav"
# Remove audio
aiclip "remove audio from video.mp4"
# Time-based cutting
aiclip "trim first 30 seconds from video.mp4"
aiclip "keep segment from 2:15 to 3:45 in input.mp4"
aiclip "cut out middle 5 minutes"
# Thumbnails
aiclip "create thumbnail at 10 seconds from video.mp4"
aiclip "extract frame at 2:30 as PNG"
# Frame sequences
aiclip "extract one frame every 5 seconds"
aiclip "get all frames from video as images"
# Overlays
aiclip "add watermark logo.png to top-right of video.mp4"
aiclip "overlay text on video at position 10:10"
# Batch processing
aiclip "convert all .mov files to .mp4"
# One-shot mode (no interaction)
aiclip "your command here"
# Skip confirmation prompts
aiclip --yes "convert video.mp4 to 720p"
# Preview only (don't execute)
aiclip --dry-run "compress input.mp4"
# Use different AI model
aiclip --model gpt-4o-mini "extract audio"
# Increase timeout for complex requests
aiclip --timeout 120 "complex processing task"
# Verbose logging for troubleshooting
aiclip --verbose "your command"
# Specify custom output directory
aiclip --output-dir /path/to/output "convert video.mp4 to 720p"
# View token usage statistics anytime
aiclip> tokens
# Beautiful ASCII art welcome screen
# Responsive terminal UI that adapts to your screen width
# Real-time token usage tracking with cost estimates
You can also use the explicit nl subcommand. Put global options before the subcommand:
aiclip --yes nl "thumbnail at 10s from test.mp4"
aiclip --dry-run --model gpt-4o-mini nl "compress input.mp4"
Do not invoke the binary twice:
# Incorrect
aiclip aiclip --yes nl "..."
aiclip uses environment variables and .env files for configuration:
# Required
OPENAI_API_KEY=sk-your-openai-api-key
# Optional
AICLIP_MODEL=gpt-4o # AI model to use
AICLIP_DRY_RUN=false # Preview commands by default
AICLIP_OUTPUT_DIR=aiclip # Default output directory
-c copy for trimming when possible (faster, lossless)aiclip automatically organizes all generated files in a dedicated output directory:
# Default behavior - files saved to "aiclip" folder
aiclip "convert video.mp4 to 720p"
# Output: ./aiclip/video_720p.mp4
# Custom output directory
aiclip --output-dir /path/to/output "convert video.mp4 to 720p"
# Output: /path/to/output/video_720p.mp4
# Environment variable configuration
export AICLIP_OUTPUT_DIR=my_outputs
aiclip "convert video.mp4 to 720p"
# Output: ./my_outputs/video_720p.mp4
Benefits:
aiclip provides complete transparency into your AI usage and costs:
# Real-time token usage displayed after each operation
aiclip> convert video.mp4 to 720p
๐ parse_intent: 2,073 โ 47 (2,120 total) | $0.0057
# View detailed session statistics anytime
aiclip> tokens
Token Usage Summary
โโโโโโโโโโโโโโโโโโณโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Metric โ Value โ Details โ
โกโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฉ
โ Session ID โ a1b2c3d4 โ Started at 14:30:15 โ
โ Duration โ 45.2s โ Session duration โ
โ Operations โ 3 โ Total operations performed โ
โ Input Tokens โ 6,142 โ Total tokens sent to AI โ
โ Output Tokens โ 156 โ Total tokens received from AI โ
โ Total Tokens โ 6,298 โ Combined input + output โ
โ Estimated Cost โ $0.0171 โ Based on OpenAI pricing โ
โโโโโโโโโโโโโโโโโโดโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
# Session summary displayed at the end of each session
Features:
aiclip intelligently handles time-based requests for video and GIF creation:
# Create GIFs with specific duration
aiclip "convert video.mp4 to 5 second animated gif"
aiclip "create a 10 second animated gif from input.mp4"
# Time-based video operations
aiclip "extract first 30 seconds from video.mp4"
aiclip "create 15 second clip from input.mp4"
# Thumbnails at specific times
aiclip "extract frame at 2:30 from video.mp4"
aiclip "create thumbnail at 10 seconds from input.mp4"
Supported time formats:
| Operation | Examples | ffmpeg Equivalent |
|---|---|---|
| Convert | โconvert to mp4โ, โmake it h264โ | -c:v libx264 -c:a aac |
| Resize | โ720pโ, โ1920x1080โ, โscale to 50%โ | -vf scale=1280:720 |
| Compress | โmake smallerโ, โCRF 28โ | -c:v libx265 -crf 28 |
| Extract Audio | โget audio as mp3โ | -q:a 0 -map a |
| Trim | โfirst 30 secondsโ, โ2:15 to 3:45โ | -ss 00:02:15 -to 00:03:45 |
| Thumbnail | โframe at 10sโ | -ss 00:00:10 -vframes 1 |
| Overlay | โwatermark top-rightโ | -filter_complex overlay=W-w-10:10 |
| Batch | โall *.mov filesโ | Shell loops with glob patterns |
| GIF Creation | โanimated gifโ, โ5 second gifโ | -vf fps=10,scale=320:-1:flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse -c:v gif |
# Clone and setup
git clone https://github.com/d-k-patel/ai-ffmpeg-cli.git
cd ai-ffmpeg-cli
make setup
# Run tests
make test
# Check code quality
make lint
# Try demo commands
make demo
brew install ffmpegsudo apt install ffmpegโOPENAI_API_KEY is requiredโ
# Set your API key
export OPENAI_API_KEY="sk-your-key-here"
# Or add it to .env file
โffmpeg not found in PATHโ
# Install ffmpeg
brew install ffmpeg # macOS
sudo apt install ffmpeg # Ubuntu
# Windows: download from ffmpeg.org
โFailed to parse natural language promptโ
--model gpt-4o for better accuracy--timeout 120โNo input files foundโ
ls to verify available filesโDuration not applied to GIF/videoโ
We love contributions! Whether itโs:
See our Contributing Guide to get started.
MIT License - see LICENSE file for details.
If aiclip saves you time, please:
Made with โค๏ธ by developers who got tired of Googling ffmpeg commands
๐ฌ Turn your words into perfect video commands