π₯ Transform natural language into FFmpeg commands using AI
Features β’ Installation β’ Quick Start β’ Examples β’ Models β’ Contributing
- π€ Multi-Model Support: OpenAI, Claude, Gemini, and Grok
- π― Natural Language: Describe tasks in plain English
- π Cross-Platform Clipboard: Works on macOS, Windows, Linux
- β‘ Direct Execution: Run commands immediately
- π Secure Configuration: API keys stored locally
- π¨ Beautiful CLI: Colorful and intuitive interface
- π Command History: Track all generated commands with smart search
- β Favorites System: Save and organize frequently used commands
- π·οΈ Smart Tagging: Auto-categorize commands for easy retrieval
- π Usage Analytics: View statistics about your command usage
- π― Preset Templates: 30+ built-in presets for common FFmpeg tasks
- π οΈ Custom Presets: Create your own parameterized templates
- π Category Browser: Organized presets by task type
# 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
- Node.js 18.0.0 or higher
- FFmpeg installed on your system (Download FFmpeg)
- API Key from at least one AI provider
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-effective
claude-3-haiku-20240307
(default) - Fast and efficientclaude-3-sonnet-20240229
- Balanced performanceclaude-3-opus-20240229
- Most capable
gemini-1.5-flash
(default) - Fast multimodalgemini-1.5-pro
- Advanced reasoninggemini-pro
- Balanced performance
grok-beta
(default) - Latest model
- CLI flags (highest priority)
- Environment variables
- Config file (
~/.llmpeg/config.json
) .env
files
export 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.
- Video Conversion: MP4, WebM, AVI, MOV conversions with optimal settings
- Video Compression: Optimize for web, Discord, social media platforms
- GIF Creation: Create high-quality GIFs with palette optimization
- Audio Processing: Extract, convert, normalize audio tracks
- Video Editing: Trim, merge, watermark, resize videos
- Effects & Filters: Blur, stabilize, color correction
- Social Media: Instagram, TikTok, YouTube optimized formats
- Streaming: RTMP streaming setup for various platforms
- Advanced: Frame extraction, thumbnail generation, batch processing
- Smart Parameters: Each preset includes customizable parameters with validation
- Difficulty Levels: Marked as beginner, intermediate, or advanced
- Common Use Marking: Quickly find the most popular presets
- Examples: See how each preset works with real examples
- Custom Presets: Create and save your own templates
- Browse: Use
llmpeg presets
to explore available templates - Select: Choose a preset that matches your task
- Customize: Fill in the required parameters (files, quality, etc.)
- Execute: Generate and run the FFmpeg command
Example 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
- Auto-tagging: Commands are automatically tagged based on content (video, audio, conversion, etc.)
- Usage tracking: See how often you use each command
- Favorites: Star frequently used commands for quick access
- Categories: Organize commands by project or purpose
- Export/Import: Backup your history or share with team members
- History is stored in
~/.llmpeg/history.json
- Maximum 1000 commands are kept (favorites are never deleted)
- Failed attempts are also tracked for learning purposes
Native 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.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
- Command history and favorites β
- Preset templates for common tasks β
- Interactive mode for command refinement
- Integration with popular video platforms
- Web interface
- VSCode extension
- Team collaboration features
- AI-powered command suggestions based on history
- Plugin system for custom extensions
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
- Ensure FFmpeg is installed:
ffmpeg -version
- Use verbose mode:
llmpeg -v "your command"
- Check the generated command before executing
Clipboard not working
- Linux: Install
xclip
,xsel
, orwl-copy
- WSL: May need additional configuration
- Use manual copy as fallback
MIT Β© Ali Torki
- Vercel AI SDK - AI model integration
- Bun - JavaScript runtime
- Commander.js - CLI framework
- Chalk - Terminal styling
Built with β€οΈ by Ali Torki, for developers. Happy encoding! π¬