FFmPEG-this
FFmpeg, but you'll actually use it.
Professional video editing, AI tools, and downloads — all in an interactive CLI menu. No commands to memorize.
Why This Exists
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 luck
peg_this replaces all of that:
peg_this
Pick from a menu. Follow the prompts. No flags, no syntax, no StackOverflow.
Get Started in 10 Seconds
pip install peg_this
Prerequisite: 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] # Everything
From source:
git clone https://github.com/hariharen9/ffmpeg-this.git && cd ffmpeg-this
pip install -r requirements.txt
python -m src.peg_this.peg_this
Pre-built binaries: Download for Windows / macOS / Linux →
What Can It Do?
CLI Quick Commands
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 development
Spotlight Features
📥 Download Engine
Download 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"
📐 AI Smart Reframe
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.
💬 AI Subtitles & Captions
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 |
🎙️ AI Auto-Dubbing
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
🚀 AI Video Upscaling
| 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.
🖥️ Graphical Interface
peg_this --gui
The full feature set in a hardware-accelerated desktop GUI. Same engine, visual workflow.
Beta — requires
dearpygui(installed automatically).
📋 Full Feature Reference (100+ operations)
Video Operations
| 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 |
Audio Operations
| 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) |
Image Operations
| 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 |
Subtitle Models
| 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+ |
Supported Formats
| 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 |
Star History
Sponsor
Contributors
Contributing
Contributions are welcome! Please see the Contributing Guidelines for more information.
License
MIT License. See LICENSE for details.
Made with ❤️ by Hariharen
Metadata
Release files for peg-this 5.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| peg_this-5.2.1.tar.gz | 127.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| peg_this-5.2.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 268.7 kB
Release files / peg_this-5.2.1.tar.gz
| Download URL | peg_this-5.2.1.tar.gz |
|---|---|
| Size | 127.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
62b1a1aae71fa6ffe77a75cda9e444b5a585a52af9e42e3c2a8d2f69acb64f79
|
|
BLAKE2b-256 checksum How to use checksums |
c28577953c9766d576dee9ef2729ae07a7bceb39f11f0b0358a142d424f79272
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / peg_this-5.2.1-py3-none-any.whl
| Download URL | peg_this-5.2.1-py3-none-any.whl |
|---|---|
| Size | 140.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
fc2240a34f7d10d7b330c3664643d34e6fcc5250f5d90b097cf4e687e248fe62
|
|
BLAKE2b-256 checksum How to use checksums |
3b628800914a576162035c89b7956cbf880986e7a6698b04871c7f07bd7a15a9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|