Skip to content

Releases: SimpNick6703/Video-Compression

v1.1.3

11 Apr 07:41
d8ad1d6

Choose a tag to compare

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.py script now compiles all 8 preset variants (HEVC/H264) in parallel using ThreadPoolExecutor, significantly reducing release preparation time.
  • Modern Resource Management: Adopted tempfile.TemporaryDirectory context managers for guaranteed cleanup of temporary staging areas.
  • Enhanced Logging: Replaced silent pass blocks 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.html into a cleaner structure within the docs/ directory, extracting CSS and JavaScript into standalone styles.css and app.js files.
  • Deployment Syncing: Updated GitHub Actions (deploy.yml) to correctly route deployments through the new modular docs/ architecture.

CI/CD & Code Quality

  • Improved Pipeline Speed: Added pip dependency 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

25 Mar 19:15

Choose a tag to compare

v1.1.3-pre Pre-release
Pre-release

Full Changelog: v1.1.2...v1.1.3-pre

v1.1.2

11 Mar 17:34
02ddec9

Choose a tag to compare

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 hvc1 and avc1 video 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.1...v1.1.2

v1.1.2-pre

26 Feb 18:03

Choose a tag to compare

v1.1.2-pre Pre-release
Pre-release

Full Changelog: v1.1.1...v1.1.2-pre

v1.1.1

13 Jan 18:15

Choose a tag to compare

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

10 Jan 15:55

Choose a tag to compare

v1.1.1-pre Pre-release
Pre-release

Full Changelog: v1.1.0...v1.1.1-pre

v1.1.0

07 Jan 19:58
2bebbe8

Choose a tag to compare

Changelog for Release

v1.1.0 - AMD/Intel GPU Support & Documentation

Features

  • Added support for AMD GPU acceleration (hevc_amf encoder on Windows)
  • Added support for Intel GPU acceleration (hevc_qsv encoder 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_mb parameter 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

07 Jan 18:14

Choose a tag to compare

v1.1.0-pre Pre-release
Pre-release

Full Changelog: v1.0.4...v1.1.0-pre

v1.0.4

04 Jan 14:37

Choose a tag to compare

What's Changed

Changelog: mainmulti-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_nvenc codec and -c:a copy (preserves audio quality)
  • Added maxrate and bufize args to avoid bitrate overshooting final output filesize
  • Added BITRATE_SAFETY_FACTOR to CPU fallback
  • Better error handling with specific exceptions and cleanup on failure

Full Changelog: v1.0.3...v1.0.4

v1.0.3

03 Jan 07:40

Choose a tag to compare

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() and get_video_info() functions
  • Extended clean_log_file() to support custom prefixes for multi-instance log cleanup
  • Replaced run_ffmpeg_pass() with monitor_process() for threaded progress tracking
  • Removed verbose docstrings and inline comments
  • Added json and threading module imports
  • Removed unused Union type import