A powerful desktop video editor that creates professional 1920×1080 MP4 videos with advanced features like text overlays, fade transitions, and support for both image and video inputs. Designed for artists, musicians, designers, and anyone making YouTube, TikTok, Loom, Shorts, Reels, or visual loop content.
Current Version: v3.0.0 (Enhanced Edition) | Download Latest Previous Version: v2.0.0 (PySide6) | v1.0.1 (PyQt5)
Add custom text to your videos with full styling control:
- Position Control: Top, Center, or Bottom placement
- Font Sizing: 12-200pt adjustable text size
- Color Picker: Choose any color for your text
- Perfect for titles, credits, captions, and watermarks
No longer limited to just images! Now supports:
- Video Formats: MP4, MOV, AVI, MKV, WEBM, FLV, WMV, M4V, MPG, MPEG
- Image Formats: JPG, PNG, WEBP (as before)
- Intelligent processing based on input type
Add professional polish with fade effects:
- Video Fades: Smooth fade in/out for visual content
- Audio Fades: Synchronized audio fading
- Precise Control: 0-10 seconds in 0.5 second increments
- Independent fade in and fade out settings
We are excited to announce the release of v2.0, a major rewrite of the Panek Video Program. This update completely modernizes the codebase, improves the user experience, and establishes a professional architecture that is more stable, maintainable, and responsive.
The application has been rebuilt from the ground up, moving from a single-file PyQt5 script to a modern, decoupled PySide6 application. This addresses several long-standing bugs, simplifies the code, and adds critical new features.
-
Framework Migration:
PyQt5toPySide6The entire application has been ported fromPyQt5toPySide6. This moves the project to a more modern toolkit with a more flexible (LGPL) license, ensuring future compatibility and easier distribution. -
New Architecture: Decoupled UI and Backend
- Before: The original script was a single monolithic class (
MainUI) that handled both the UI layout and theQProcessexecution. - After: The new architecture (based on the "Modern Python Application" guide) separates concerns. The
MainWindowclass now only handles UI events. A newFFmpegRunnerclass now lives in the "core" and manages allQProcesslogic, emitting signals for logs, progress, and completion. This makes the application far more stable and prevents the UI from freezing.
- Before: The original script was a single monolithic class (
-
New UI: Professional Dark Theme & Minimalist Layout
- Before: The UI used custom-coded stylesheets (e.g., the gray/green render button, colored labels) that were difficult to maintain.
- After: All custom stylesheets have been removed. The app now uses the
qdarkthemelibrary to apply a consistent, professional, and fully-featured dark theme with a single line of code. The layout has also been simplified from manualQHBoxLayouts to a cleanQFormLayout.
-
New Feature: File Overwrite Confirmation
- Before: The app used an
ffmpeg -yflag, which would silently overwrite any existing video with the same name. - After: The app now checks if the output file exists before rendering. If it does, a native confirmation dialog asks the user if they wish to proceed, preventing accidental data loss.
- Before: The app used an
-
New Feature: Pre-flight File Validation
- Before: A render could be started, only to fail 30 seconds later because an input file was moved or deleted.
- After: The app now performs validation before starting
ffmpeg. It checks that the selected image file, audio file, and output directory all exist, showing a clear warning if anything is missing.
-
Code Simplification: Removed Dialog Cascade
- Before: The original script included ~100 lines of complex "cascade" logic (
kde_getopenfilename,zenity_getopenfilename,osascript_choose_file) to manually detect the user's OS and show the "correct" native file dialog. - After: This entire system has been removed. The new script uses
QFileDialogdirectly, whichPySide6automatically and correctly maps to the native system dialog on Windows, macOS, KDE, and GNOME.
- Before: The original script included ~100 lines of complex "cascade" logic (
-
Bug Fix: Correct Progress Bar Parsing
- Before: The original script had a bug where it used
ffmpeg -nostats, which disables the progress information it was trying to read. - After: The bug is fixed. The
ffmpegcommand now correctly pipes progress tostdout(which theFFmpegRunnerreads for the progress bar) and logs tostderr(which is shown in the log window). This results in a reliable and responsive progress bar.
- Before: The original script had a bug where it used
To run this new version, the dependencies will change.
Old Dependencies:
python3-pyqt5
New Dependencies:
PySide6qdarktheme
They can be installed via pip:
pip install PySide6 qdarktheme- User Manual - Complete guide with installation, usage, and troubleshooting
- 🤖 AI Help Desk - Get instant help with installation and debugging across all platforms
New in v3.0:
- ✨ Text Overlays with position, size, and color controls
- 🎬 Video File Input support (MP4, MOV, AVI, MKV, WEBM, and more)
- 🌅 Fade Transitions for professional video and audio fading
Core Features:
- Supports JPG, PNG, WEBP images and 10+ video formats
- Supports MP3 and WAV audio
- Output: H.264 MP4, yuv420p, CRF 20, faststart enabled
- Native system file dialogs via QFileDialog
- Render button only enables when both files are selected
- Output filename auto-generates if no title is given
- Real-time progress tracking
- Overwrite protection with confirmation
- Pre-flight file validation
- ffmpeg and ffprobe must be installed
Need help installing FFmpeg? → AI Help Desk
Download the .AppImage or .deb from Releases:
➡️ https://github.com/Nickpanek/panek-video-program/releases/latest
Installation issues? → AI Help Desk for step-by-step guidance
# Install dependencies
pip install PySide6 qdarktheme
# Run the program
python3 panek_video_program.py- 🤖 AI Help Desk - Trained on installation & debugging
- 📖 User Manual - Comprehensive documentation
- 🐛 GitHub Issues - Bug reports & feature requests
- ☕ Buy Me a Coffee - Support development
- 🔬 PatternRipple Lab - More tools