FFmpeg, but you'll actually use it.
Professional video editing, AI tools, and downloads — all in an interactive CLI menu. No commands to memorize.
FFmpeg is powerful. FFmpeg is also this:
# Crop to 9:16 portrait
ffmpeg -i input.mp4 -vf "crop=iw*9/16:ih:(iw-iw*9/16)/2:0" -c:v libx264 -crf 23 -preset medium -c:a aac output.mp4
# Extract audio as MP3
ffmpeg -i input.mp4 -vn -acodec libmp3lame -ab 320k output.mp3
# Compress to 25MB for Discord
ffmpeg -i input.mp4 -c:v libx264 -b:v $(( 25*8192/$(ffprobe -v error -show_entries format=duration \
-of csv=p=0 input.mp4 | cut -d. -f1) ))k -pass 1 -f null /dev/null && ffmpeg -i input.mp4 -c:v \
libx264 -b:v ... -pass 2 output.mp4
# Add subtitles... good luckpeg_this replaces all of that:
peg_thisPick from a menu. Follow the prompts. No flags, no syntax, no StackOverflow.
pip install peg_thisPrerequisite: FFmpeg must be installed.
brew install ffmpeg(macOS) ·choco install ffmpeg(Windows) ·sudo apt install ffmpeg(Linux)
More install options
Optional extras:
pip install peg_this[download] # yt-dlp download engine
pip install peg_this[demucs] # AI music stem separation (~1.5GB)
pip install peg_this[upscale] # AI video upscaling (~1.5GB)
pip install peg_this[all-ai,download] # EverythingFrom source:
git clone https://github.com/hariharen9/ffmpeg-this.git && cd ffmpeg-this
pip install -r requirements.txt
python -m src.peg_this.peg_thisPre-built binaries: Download for Windows / macOS / Linux →
|
Convert · Compress · Trim · Crop · Split · Join · Rotate · Flip · Speed · Reverse · Stabilize · Color Grade · Denoise · Watermark · PiP · Loop · Fade · GIF · Change FPS · Change Resolution |
Auto Subtitles (99 languages) · Brainrot Captions · Smart Reframe · Face Blur · Background Removal · Video Upscaling (Real-ESRGAN) · Music Stem Separation · Auto-Dubbing (24 languages) |
|
YouTube · TikTok · Twitter · 1000+ sites · Playlists · Audio extraction · Subtitle download · Quality picker · SponsorBlock · Progress bar · Post-download processing |
Extract · Remove · Merge · Volume · Fade · Normalize · Visualizer · Convert · Stem Separation |
|
Resize · Rotate · Flip · Crop · Colors · Blur · Sharpen · Effects · Border · Text · Compress · Convert · Background Removal |
Batch Convert · Slideshow Creator · Metadata Editor · File Inspector · GUI Mode · Configurable Encoding · Hardware Acceleration |
peg_this # Interactive menu
peg_this --gui # Launch graphical interface (Experimental, beta)
peg_this -d "https://youtu.be/..." # Download video (pick quality)
peg_this -dy "https://youtu.be/..." # Download instantly (best MP4, no prompts)
# more to come... This tool is in active developmentDownload from YouTube, TikTok, Twitter, and 1000+ sites — powered by yt-dlp.
| Modes | Single video · Audio only · Playlist · Subtitles · Thumbnail |
| Quality | Up to 4K · MP4/MKV/WebM container picker |
| Info Panel | Title, channel ✓, views, likes, duration, codecs, file size — before you download |
| Audio | MP3 · FLAC · WAV · AAC · Opus · M4A (128k–320k) |
| Playlist | All · First N · Range · Specific items · Auto-numbering |
| Advanced | SponsorBlock · Speed limit · Time range · Cookies · Proxy · Embed metadata |
| After Download | Trim → Compress → Convert → Subtitles — without leaving peg_this |
One-liner download:
peg_this -dy "https://youtube.com/watch?v=dQw4w9WgXcQ"Auto-crop 16:9 → 9:16 keeping the subject in frame. Face tracking with smooth cinematic panning.
| Target | Use Case |
|---|---|
| 9:16 | TikTok · Reels · YouTube Shorts |
| 1:1 | Instagram Feed · Twitter/X |
| 4:5 | Instagram Portrait |
How: Samples frames → Haar cascade face detection → Temporal smoothing (EMA) → Per-frame crop → Audio merge. No GPU required.
Generate subtitles using Faster-Whisper with 7 model sizes (tiny → large-v3) in 99+ languages.
| Output | Description |
|---|---|
.srt / .vtt / .txt / .lrc |
Sidecar files |
| Soft subs | Embedded, toggleable in players |
| Hard subs | Burned permanently into video |
| Brainrot | TikTok-style word-by-word animated captions |
Translate and re-voice videos into 24+ languages — transcription, translation, and voice synthesis all run locally.
Spanish · French · German · Italian · Portuguese · Japanese · Chinese · Korean · Russian · Arabic · Hindi · and more
| Mode | Speed | Best For |
|---|---|---|
| Quick (FFmpeg) | ⚡ Instant | Basic upscaling |
| Fast AI | 🚀 Fast | General content |
| Quality AI | 🐢 Slow | Final renders |
| Anime AI | 🚀 Fast | Animation |
Supports NVIDIA CUDA, Apple Silicon (MPS), and CPU.
peg_this --guiThe full feature set in a hardware-accelerated desktop GUI. Same engine, visual workflow.
Beta — requires
dearpygui(installed automatically).
| Operation | Method | Re-encode? |
|---|---|---|
| Convert (MP4, MKV, MOV, AVI, WebM) | FFmpeg transcode | Yes |
| Compress (target size or CRF) | 2-pass encoding | Yes |
| Change Resolution (4K/1080p/720p/480p/custom) | Scale filter | Yes |
| Change FPS (24/30/60/120) | fps / minterpolate | Yes |
| Trim | Stream copy | No (lossless) |
| Crop (visual selection) | crop filter | Yes |
| Split (equal parts or by duration) | Stream copy or re-encode | Configurable |
| Join / Concatenate | Concat filter | Yes |
| Speed (0.25x – 4x) | setpts + atempo | Yes |
| Reverse | Reverse filter | Yes |
| Rotate (90°/180°) / Flip | transpose / hflip/vflip | Yes |
| Fade In/Out (black or white) | fade filter | Yes |
| Loop (N times or target duration) | stream_loop | No |
| Color Correction | eq filter | Yes |
| Denoise (fast / quality) | hqdn3d / nlmeans | Yes |
| Blur/Pixelate Region (visual) | boxblur / scale | Yes |
| Picture-in-Picture | overlay filter | Yes |
| Stabilize | vidstab (two-pass) | Yes |
| Add Watermark (image or text) | overlay filter | Yes |
| Extract Frames | Frame extraction | N/A |
| Create GIF | 2-pass palette | Yes |
| Smart Reframe (AI) | Haar face tracking + crop | Yes |
| Background Removal (AI) | rembg (U2-Net) | Yes |
| Brainrot Captions (AI) | Whisper + ASS | Yes |
| Auto-Dubbing (AI) | Whisper + Piper TTS | Yes |
| Video Upscaling (AI) | Real-ESRGAN | Yes |
| Operation | Notes |
|---|---|
| Extract from video | MP3, FLAC, WAV |
| Remove from video | Stream copy (fast) |
| Merge with video | Replace or mix |
| Adjust Volume | Presets, dB, multiplier |
| Fade In/Out | 6 curve types |
| Normalize | EBU R128, Peak, RMS, Dynamic |
| Visualizer | Spectrum, Waveform, CQT |
| Convert format | MP3, FLAC, WAV |
| Stem Separation (AI) | Vocals, drums, bass, other (Demucs) |
| Operation | Options |
|---|---|
| Convert | JPG, PNG, WebP, BMP, TIFF |
| Resize | Custom dimensions, preserve aspect ratio |
| Rotate / Flip | 90° CW/CCW, 180°, horizontal, vertical |
| Crop | Visual interactive selection |
| Adjust Colors | Brightness, contrast, saturation, gamma (8 presets) |
| Blur / Sharpen | 4 blur levels, 3 sharpen levels |
| Effects | Grayscale, sepia, invert |
| Add Border | Custom size, 7 colors + hex |
| Add Text | 7 positions, font, color, shadow/outline |
| Compress | Quality 40-90%, auto format conversion |
| Model | Size | Speed | Languages |
|---|---|---|---|
tiny.en |
~75 MB | Fastest | English |
base.en |
~150 MB | Fast | English |
small.en |
~500 MB | Balanced | English |
medium.en |
~1.5 GB | Slower | English |
small |
~500 MB | Balanced | 99+ |
medium |
~1.5 GB | Slower | 99+ |
large-v3 |
~3 GB | Slowest | 99+ |
| Type | Formats |
|---|---|
| Video In | .mp4 .mkv .avi .mov .webm .flv .wmv .gif |
| Video Out | .mp4 .mkv .mov .avi .webm .gif |
| Audio In | .mp3 .flac .wav .ogg .aac .m4a |
| Audio Out | .mp3 .flac .wav |
| Image | .jpg .png .webp .bmp .tiff |
| Subtitle | .srt .vtt .txt .lrc |
Contributions are welcome! Please see the Contributing Guidelines for more information.
MIT License. See LICENSE for details.
Made with ❤️ by Hariharen
