Releases: SysAdminDoc/VideoSubtitleRemover
Releases · SysAdminDoc/VideoSubtitleRemover
Video Subtitle Remover Pro v3.5.0
Video Subtitle Remover Pro v3.5.0
Full rewrite from v2.0: real AI inpainting, multi-engine detection, professional DPI-responsive GUI, 20+ bug fixes.
AI Inpainting Engine
- Real LaMa neural inpainting via
simple-lama-inpainting-- dramatically better quality than OpenCV - STTN and ProPainter modes available with OpenCV inpainting fallback
- Image output quality preserved per-format (JPEG 95%, PNG compression 3, WebP 95%)
Multi-Engine Text Detection
- Automatic fallback chain: PaddleOCR > EasyOCR > OpenCV
- 12 languages: English, Chinese, Japanese, Korean, French, German, Spanish, Portuguese, Russian, Arabic, Hindi, Italian
- EasyOCR language code mapping for cross-engine compatibility
- Adjustable detection threshold (10-90%) in Advanced Settings
- Improved OpenCV fallback: dual-threshold bright/dark text detection with morphological merge
Professional GUI
- DPI-responsive layout -- Per-Monitor DPI V2, proportional grid columns, all widgets resize dynamically
- Unified panel design -- Input and Settings merged with subtle divider, no cluttered borders
- Dark-themed throughout -- combobox dropdowns, scrollbars, label frames, scale sliders all properly themed
- Subtitle region selector -- draw a rectangle on the first frame to define the target area
- Detection mask preview -- right-click queue item to visualize detected text regions
- Before/after comparison -- click completed items for side-by-side preview
- Video time-range -- process only a segment (start/end seconds)
- Folder input -- drag-drop folders or right-click drop zone to browse folders
- Batch progress bar with window title progress indicator
- Collapsible log panel with color-coded output and Open Log File button
- CRF quality slider in Advanced Settings
- Tooltips on key controls with full-path tooltips on filenames
- Retry Failed button to re-queue failed/cancelled items
- Double-click completed item opens the output file
- Taskbar flash + sound on batch completion
- Settings lock during processing
- Custom output directory with Browse/Reset
- Queue capped at 500 items
- Clean, professional spacing at any resolution from 900x650 to 4K
Settings & Persistence
- All settings saved to
%APPDATA%\VideoSubtitleRemoverPro\settings.json - Subtitle region, language, threshold, CRF quality, GPU selection all persist
- Crash logging to rotating log file (5MB) + MessageBox on fatal error
CLI
python -m backend.processor -i input.mp4 -o output.mp4 -m lama --lang en --crf 20 --threshold 0.4 --start 30 --end 120
Flags: --mode, --gpu, --lang, --crf, --threshold, --start, --end, --skip-detection, --fast, --no-audio
Infrastructure
- GitHub Actions CI/CD workflow for automated Windows builds
.gitignorefor model weights, venv, build artifactssetup.pyauto-installs EasyOCR + simple-lama-inpainting + PaddleOCR- All source files pure ASCII (zero unicode characters)
- Branch protection enabled on main
Bug Fixes (20+)
- Processing was simulated, never called real backend
- Backend path pointed to nonexistent file
- InpaintMode enum mismatch between GUI and backend
- Race conditions in queue mutations during processing
- Widget destruction during processing broke progress updates
- GPU selection never synced to config
- Duplicate files could be queued
- Output files silently overwritten (now auto-increments)
- Cancel only marked one item, remaining abandoned (now marks all)
- Elapsed timer dict iteration crash
- Settings lock disabled entire widget tree (now scoped)
- Closing window during processing left orphan threads
- nvidia-smi crash on malformed output
- EasyOCR language code mismatch (ch vs ch_sim)
- FFmpeg subprocess deadlock (added 10min timeout)
- Subtitle area not persisted in settings
- ModernButton fired on release outside bounds
- Region selector VideoCapture resource leak
- Division by zero on 0-frame video containers
- Batch progress bar stuck at 100% after completion
- Eager output directory creation (deferred to processing)
v2.0
Add files via upload