This commit introduces several key improvements:
- Parallel Processing: Utilizes `concurrent.futures.ThreadPoolExecutor`
to process multiple video files simultaneously, significantly
speeding up batch operations. A new `--jobs` flag allows
customization of worker threads.
- Progress Bar: Integrates `tqdm` to display a real-time progress
bar, providing users with feedback on the status, ETA, and
speed of the transcoding process.
- Dry Run Mode: Adds a `--dry-run` command-line flag. When active,
the script analyzes files and reports intended actions (transcode,
copy, skip) without making any actual changes to the files,
allowing users to preview operations.
- Graceful Exit (Ctrl+C): Implements robust handling of
KeyboardInterrupt. FFmpeg now writes to temporary files (`.tmp`),
which are only renamed upon successful completion. If the process
is interrupted or an error occurs, these temporary files are
automatically cleaned up, preventing corrupt or partial output.
- Dependencies: Adds `tqdm` to `install_requires` in `setup.cfg`.
- Version: Bumps project version to 0.3.0 to reflect these
significant feature additions.
FIX: Actually Skip video files where no transcoding is needed.