v4: production rewrite — real progress, durations, richer UX
Complete rewrite of the application. Highlights: - Real progress bar driven by ffmpeg '-progress pipe:1' (out_time_ms vs total duration), held at 99% until 'progress=end' then snapped to 100% so the bar no longer jumps/catches up at the finish - ffprobe-based per-file duration scanning in background threads, cached per item; running total shown; probes parallelised (one thread per file) - No console/bash windows on Windows: CREATE_NO_WINDOW on all subprocesses - Optional drag-and-drop via tkinterdnd2 with a graceful fallback - Card-based scrollable UI with rows of (# index, checkbox, name, duration), per-row activate/highlight, plus Move Up/Down/Remove/Select All/Select None - Output settings: name + extension dropdown + directory, with live output path preview - Start/Stop control: terminate ffmpeg and delete the partial output on stop; overwrite, name-conflict, and single-file guards before starting - Elapsed / ETA / speed readout, collapsible ffmpeg log, light/dark toggle - Locate ffmpeg/ffprobe next to the exe/script (PyInstaller-friendly) then PATH - Output hardening: -movflags +faststart and -nostdin Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
1150
video_concat.py
1150
video_concat.py
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user