Releases: SimpNick6703/Video-Compression
Releases · SimpNick6703/Video-Compression
v1.1.3
v1.1.3 - Architecture Refactor, Build Parallelization & Frontend Modularization
CLI & Argument Parsing
- Flexible Argument Parsing: Re-implemented the CLI parser to intelligently identify input files, output paths, target sizes, and codec flags (
hevc,h264) irrespective of their order. - Preset Override Priority: Preset binaries now treat hardcoded values as defaults, allowing users to fully override the codec, target size, and output path via command-line arguments.
- Unified Command Interface: Consolidated CLI behavior across all preset variants for a more intuitive user experience.
Subprocess & Stability Enhancements
- Deadlock Resolution: Fixed potential subprocess deadlocks in both single-pass and split-pass hardware encoding by optimizing stdout/stderr pipe handling.
- Improved Progress Parsing: Re-engineered progress monitoring to be more resilient, using character-by-character reading and centralized formatting (
format_progress). - Standardized Encoding: Enforced UTF-8 encoding across all subprocess communications for improved robustness.
System & Build Optimization
- Parallelized Build System: The
build.pyscript now compiles all 8 preset variants (HEVC/H264) in parallel usingThreadPoolExecutor, significantly reducing release preparation time. - Modern Resource Management: Adopted
tempfile.TemporaryDirectorycontext managers for guaranteed cleanup of temporary staging areas. - Enhanced Logging: Replaced silent
passblocks with explicit exception catching and stderr logging for better debug context. - Cross-Platform Build Isolation: Isolated PyInstaller's work and configuration directories to resolve race conditions during parallel builds, ensuring success on macOS, Windows, and Linux.
Frontend Re-architecture
- Modularized Documentation: Successfully split the 700+ line
index.htmlinto a cleaner structure within thedocs/directory, extracting CSS and JavaScript into standalonestyles.cssandapp.jsfiles. - Deployment Syncing: Updated GitHub Actions (
deploy.yml) to correctly route deployments through the new modulardocs/architecture.
CI/CD & Code Quality
- Improved Pipeline Speed: Added
pipdependency caching to GitHub Actions to accelerate CI/CD workflows. - Static Analysis Compliance: Resolved numerous Pyre linting issues and removed brittle regex-based source mutations from the build pipeline.
Full Changelog: v1.1.2...v1.1.3
v1.1.3-pre
Full Changelog: v1.1.2...v1.1.3-pre
v1.1.2
What's new
This Release provides support for Two-Pass Encoding for AMD GPUs on Windows. We're also adopting MIT License with this release.
Auto Resolution and Framerate Scaling
The tool now dynamically scales down resolution and framerate if the target file size is too small, prioritizing 60 FPS for gaming content.
Codec & Encoder Enhancements
- Added full H.264 support. The tool now provides separate executables for both H.264 and HEVC (H.265) codecs.
- Ensured native playback compatibility on Apple devices (macOS/iOS) by applying the correct
hvc1andavc1video tags. - Improved and streamlined the hardware encoder fallback logic across Windows, Linux, and macOS.
Build System Improvements
Build process now generates versioned binaries for all combinations of file size presets and codecs.
Full Changelog
v1.1.2-pre
Full Changelog: v1.1.1...v1.1.2-pre
v1.1.1
What's Changed
Multi-GPU Encoder Support
- Added split dual-worker encoding for AMD (HEVC AMF), Intel (HEVC QSV), Apple (HEVC VideoToolbox), and VAAPI
- Expanded hardware compatibility beyond NVIDIA to leverage diverse GPU vendors
Encoding Enhancements
- Parallel split-pass encoding for improved efficiency on non-NVENC hardware
- Enhanced VAAPI device initialization and configuration
- Improved hardware encoder abstraction and modularity
Implementation
- New
build_single_pass_cmd()helper for encoder-specific command construction - New
encode_split_single_pass_hw()for parallel dual-worker workflows - Refactored command building with hardware-specific optimizations
Full Changelog: v1.1.0...v1.1.1
v1.1.1-pre
Full Changelog: v1.1.0...v1.1.1-pre
v1.1.0
Changelog for Release
v1.1.0 - AMD/Intel GPU Support & Documentation
Features
- Added support for AMD GPU acceleration (
hevc_amfencoder on Windows) - Added support for Intel GPU acceleration (
hevc_qsvencoder on Windows) - Added support for VAAPI acceleration (covers AMD & Intel on Linux)
- Added encoder availability checking during startup based on OS
- Implemented intelligent encoder selection with fallback chain: NVENC → VAAPI → VideoToolbox → AMF → QSV → CPU
Improvements
- Refactored encoder selection logic into a unified
select_best_encoder()function - Replaced NVENC-specific code with generic hardware encoder support
- Implemented
encode_single_pass_hw()for non-NVENC encoders with platform-specific optimizations - Enhanced docstrings with detailed parameter/return documentation across all functions
- Improved error handling in audio bitrate detection with sensible defaults
Documentation
- Added comprehensive "Encoder Priority Logic" table showing encoder chains per platform (Windows/Linux/macOS)
- Documented encoder priority reasoning and hardware selection behavior
- Updated usage examples to include optional
target_size_in_mbparameter for Linux - Added note about Two-Pass encoding availability (NVENC only)
- Removed outdated caution about limited GPU support
Bug Fixes & Refinements
- Fixed audio bitrate detection to default to 128kbps when no audio stream found
- Improved progress reporting formatting and cancellation handling
- Optimized bitrate calculation with safety factor for consistent target sizes
Full Changelog: v1.0.4...v1.1.0
v1.1.0-pre
Full Changelog: v1.0.4...v1.1.0-pre
v1.0.4
What's Changed
Changelog: main → multi-nvenc-use
New Features
- Parallel NVENC encoding - Uses 2 physical encoders simultaneously with smart scene-based splitting
- Unified build system - Single build.py replaces 4 preset scripts, auto-downloads FFmpeg
Improvements
- Progress display now shows FPS, Speed, and ETA for both NVENC and CPU paths
- Changed to
hevc_nvenccodec and-c:a copy(preserves audio quality) - Added
maxrateandbufizeargs to avoid bitrate overshooting final output filesize - Added
BITRATE_SAFETY_FACTORto CPU fallback - Better error handling with specific exceptions and cleanup on failure
Full Changelog: v1.0.3...v1.0.4
v1.0.3
Changelog: multi-nvenc-use Branch
New Features
- Multi-GPU NVENC support - Added threading for parallel video encoding
- Smart split point analysis - New function to find optimal keyframe-aligned split points for parallel encoding
- Progress tracker - New class for real-time progress monitoring across parallel encoding streams
Changes
- Simplified
format_size()andget_video_info()functions - Extended
clean_log_file()to support custom prefixes for multi-instance log cleanup - Replaced
run_ffmpeg_pass()withmonitor_process()for threaded progress tracking - Removed verbose docstrings and inline comments
- Added
jsonandthreadingmodule imports - Removed unused
Uniontype import