<strong>🎥 Transform natural language into FFmpeg commands using AI</strong>
<a href="#-features">Features</a> •
<a href="#-installation">Installation</a> •
<a href="#-quick-start">Quick Start</a> •
<a href="#-examples">Examples</a> •
<a href="#-supported-ai-models">Models</a> •
<a href="#-contributing">Contributing</a>
<a href="https://www.npmjs.com/package/@usex/llmpeg">
<img src="https://img.shields.io/npm/v/@usex/llmpeg?style=flat-square&color=00DC82&label=npm" alt="npm version">
</a>
<a href="https://github.com/ali-master/llmpeg/blob/master/LICENSE">
<img src="https://img.shields.io/github/license/ali-master/llmpeg?style=flat-square&color=00DC82" alt="license">
</a>
<a href="https://github.com/ali-master/llmpeg">
<img src="https://img.shields.io/github/stars/ali-master/llmpeg?style=flat-square&color=00DC82" alt="github stars">
</a>
# npm
npm install -g @usex/llmpeg
# bun (recommended)
bun install -g @usex/llmpeg
# yarn
yarn global add @usex/llmpeg
# pnpm
pnpm add -g @usex/llmpeg
llmpeg init
This creates a configuration file at ~/.llmpeg/config.json with placeholders for your API keys.
# Choose your preferred AI provider
llmpeg config --openai YOUR_OPENAI_KEY
llmpeg config --claude YOUR_ANTHROPIC_KEY
llmpeg config --gemini YOUR_GOOGLE_KEY
llmpeg config --grok YOUR_XAI_KEY
llmpeg "convert video.mp4 to gif with 10fps"
llmpeg [options] "<your request in natural language>"
| Option | Alias | Description |
|---|---|---|
--model <provider> |
-m |
AI provider to use (openai, claude, gemini, grok) |
--provider <model> |
-p |
Specific model variant (e.g., gpt-4, claude-3-opus) |
--copy |
-c |
Copy command to clipboard |
--execute |
-e |
Execute the generated command immediately |
--verbose |
-v |
Show detailed output |
# Initialize configuration
llmpeg init [--force]
# Show current configuration
llmpeg config --show
# Set API keys
llmpeg config --openai YOUR_KEY
llmpeg config --claude YOUR_KEY
llmpeg config --gemini YOUR_KEY
llmpeg config --grok YOUR_KEY
# Set preferences
llmpeg config --default-provider claude
llmpeg config --default-model gpt-4-turbo
llmpeg config --auto-copy true
# Interactive history browser (default)
llmpeg history
# List recent commands
llmpeg history --list
llmpeg history -l
# Show favorites
llmpeg history --favorites
llmpeg history -f
# Search history
llmpeg history --search "convert to gif"
llmpeg history -s "video compression"
# Filter by tag
llmpeg history --tag video
llmpeg history -t audio
# View statistics
llmpeg history --stats
# Export history
llmpeg history --export json
llmpeg history --export csv
# Clear history (with confirmation)
llmpeg history --clear
# Interactive preset browser (default)
llmpeg presets
# List all presets
llmpeg presets --list
llmpeg presets -l
# Filter by category
llmpeg presets --category "Video Conversion"
llmpeg presets -c "Audio Processing"
# Search presets
llmpeg presets --search "compress"
llmpeg presets -s "gif"
# Use a specific preset
llmpeg presets --use convert-to-mp4
llmpeg presets -u video-to-gif
# Create custom preset
llmpeg presets --create
# Export all presets
llmpeg presets --export
Convert Formats
llmpeg "convert video.mov to mp4 with h264 codec"
# Output: ffmpeg -i video.mov -c:v libx264 -c:a aac output.mp4
Resize Video
llmpeg "resize video to 720p maintaining aspect ratio"
# Output: ffmpeg -i input.mp4 -vf scale=-1:720 output.mp4
Create GIF
llmpeg "create gif from video between 5-10 seconds"
# Output: ffmpeg -i input.mp4 -ss 5 -t 5 -vf "fps=10,scale=320:-1:flags=lanczos" output.gif
Extract Frames
llmpeg "extract 1 frame per second as jpg images"
# Output: ffmpeg -i input.mp4 -vf fps=1 frame_%04d.jpg
Extract Audio
llmpeg "extract audio from video as mp3 320kbps"
# Output: ffmpeg -i input.mp4 -vn -acodec mp3 -ab 320k output.mp3
Change Volume
llmpeg "increase audio volume by 50%"
# Output: ffmpeg -i input.mp4 -af "volume=1.5" output.mp4
Batch Processing
llmpeg "convert all mp4 files to webm with vp9 codec"
# Output: for f in *.mp4; do ffmpeg -i "$f" -c:v libvpx-vp9 "${f%.mp4}.webm"; done
Streaming
llmpeg "stream video to rtmp server"
# Output: ffmpeg -re -i input.mp4 -c copy -f flv rtmp://server/live/stream
gpt-4o-mini (default) - Fast and efficientgpt-4 - Most capablegpt-4-turbo - Latest GPT-4 with visiongpt-3.5-turbo - Fast and cost-effectiveclaude-3-haiku-20240307 (default) - Fast and efficientclaude-3-sonnet-20240229 - Balanced performanceclaude-3-opus-20240229 - Most capablegemini-1.5-flash (default) - Fast multimodalgemini-1.5-pro - Advanced reasoninggemini-pro - Balanced performancegrok-beta (default) - Latest model~/.llmpeg/config.json).env filesexport OPENAI_API_KEY="your-key"
export ANTHROPIC_API_KEY="your-key"
export GOOGLE_GENERATIVE_AI_API_KEY="your-key"
export XAI_API_KEY="your-key"
export LLMPEG_DEFAULT_PROVIDER="claude"
{
"openai": {
"apiKey": "your-openai-key",
"defaultModel": "gpt-4o-mini"
},
"claude": {
"apiKey": "your-claude-key",
"defaultModel": "claude-3-haiku-20240307"
},
"gemini": {
"apiKey": "your-gemini-key",
"defaultModel": "gemini-1.5-flash"
},
"grok": {
"apiKey": "your-grok-key",
"defaultModel": "grok-beta"
},
"defaultProvider": "openai",
"autoCopy": false
}
LLmpeg includes 30+ professionally crafted presets for common FFmpeg tasks, organized by category. Each preset is a parameterized template that guides you through the process.
llmpeg presets to explore available templatesExample workflow:
$ llmpeg presets
> Browse by category
> Video Conversion
> Convert to MP4
> Input file: movie.avi
> Quality: 23 (Medium)
✓ Generated command: ffmpeg -i movie.avi -c:v libx264 -crf 23 -c:a aac output.mp4
LLmpeg automatically tracks all your generated commands, making it easy to reuse, organize, and learn from your past work.
The interactive mode provides a user-friendly interface to: - Browse recent commands with arrow keys - Search through your entire history - Mark commands as favorites - Add tags and categories - Copy or execute commands directly - View detailed statistics
~/.llmpeg/history.jsonNative support via pbcopy
Native support via clip
Install one of these utilities:
# X11 users
sudo apt-get install xclip
# or
sudo apt-get install xsel
# Wayland users
sudo apt-get install wl-clipboard
# Clone repository
git clone https://github.com/ali-master/llmpeg
cd llmpeg
# Install dependencies
bun install
# Development
bun run start:dev # Run in dev mode
bun run start:cli:dev # Run CLI in dev mode
# Build
bun run build # Build for production
bun run test:types # Type checking
bun run format # Format code
bun run lint # Lint code
We love contributions! Please see our Contributing Guide for details.
git checkout -b feature/amazing-feature)git commit -m 'Add amazing feature')git push origin feature/amazing-feature)No API key found
# Check your configuration
llmpeg config --show
# Ensure at least one API key is set
llmpeg config --openai YOUR_KEY
Command execution fails
ffmpeg -versionllmpeg -v "your command"Clipboard not working
xclip, xsel, or wl-copyMIT © Ali Torki
<sub>Built with ❤️ by <a href="https://github.com/ali-master" target="_blank">Ali Torki</a>, for developers. Happy encoding! 🎬</sub>
<a href="https://github.com/ali-master/llmpeg">⭐ Star us on GitHub</a> •
<a href="https://linkedin.com/in/alitorki">🐦 Follow on Linkedin</a>
$ claude mcp add llmpeg \
-- python -m otcore.mcp_server <graph>