Help us keep the list up to date and submit new video software here.
Tool
Complete Version history / Release notes / Changelog / What's New for VapourBox
VapourBox 0.9.1
What's New
Bug Fixes
Fix filter parameter values silently lost on UI round-trips due to schema-converter mismatches
Fix resize kernel always resetting to default when saving/loading presets
Fix MCTemporalDenoise settings param not passed to VapourSynth
Fix QTGMC built-in denoising values ignored when set from noise reduction panel
Remove dead blockSize/overlap fields from deblock filter
Improvements
Add comprehensive schema-converter integration tests (98 tests) to prevent future mismatches
Case-insensitive dropdown matching prevents silent enum fallback bugs
Dependencies
Uses deps release: deps-v1.2.0
VapourBox 0.9.0
What's New
DVD Disc Import
Import directly from DVD discs, VIDEO_TS folders, and ISO images. VapourBox extracts individual titles using libdvdread, with progress tracking and automatic cleanup of temp files. CSS decryption supported if the user installs libdvdcss separately.
OpenCL GPU Acceleration on macOS
QTGMC now automatically uses NNEDI3CL (OpenCL GPU) on macOS, where the CPU-only ZNEDI3/NNEDI3 plugins lack ARM NEON optimisations and run pure scalar C. This significantly speeds up the interpolation step on Apple Silicon.
Replace BestSource/FFMS2 with FFmpeg Pipe Source
BestSource's frame-accurate seeking could cause A/V desync on certain sources. This release replaces the entire source chain with a single FFmpeg pipe architecture:
No more slow indexing — FFmpeg pipe starts immediately, no frame index needed
Consistent preview and encode paths — preview uses the identical pipeline as conversion
Preview respects encoding settings — chroma subsampling and other parameters reflected in previews
Advanced QTGMC Parameters Overhaul
All advanced QTGMC parameters are now optional with proper defaults matching havsfunc internals. When a checkbox is unchecked, the parameter is omitted entirely — letting QTGMC use its own preset-driven defaults (matching how tools like Hybrid handle these settings).
30 advanced parameters (TrueMotion, GlobalMotion, DCT, SubPelInterp, ThSAD1/2, ThSCD1/2, etc.) are now optional — previously always passed even when untouched
All optional parameter defaults match the actual havsfunc function signatures, not custom presets
User-adjusted values are preserved when disabling and re-enabling a parameter checkbox
5 parameters (Str, Amp, FastMA, ESearchP, RefineMotion) were not being passed to the script at all — now properly wired through
Bug Fixes
Fix advanced settings optional parameter checkboxes not toggling (#4) — optional params had null defaults, so clicking the checkbox called onChanged(null) which kept the parameter disabled
Fix 4 VapourSynth parameter name mismatches in deinterlace schema (BlockSizeBlocksize, SBBSbb, Devicedevice, OpenCLopencl) that caused silent parameter drops
Remove non-existent vinverseScl parameter from Vinverse filter (havsfunc Vinverse only has sstr, amnt, chroma)
Fix all filter schema defaults to match actual havsfunc function signatures (dehalo, noise_reduction, sharpen, deband, chroma_fixes)
Fix display aspect ratio for anamorphic DVD previews (SAR correction)
Fix queue info dialog overflow when showing long DVD extraction logs
Fix ffmpeg reading full audio track when exporting trimmed segments
Fix orphaned vspipe process on cancel by calling vspipe-bin directly
Fix progress tracking showing wrong frame count when trimming with in/out points
Fix phase-aware progress tracking for telecine pipeline
Fix whisper deadlock on long videos and subtitle-only output path bugs
Fix pipe_source.py not bundled in release builds
Embed VapourBox version in output file metadata and preserve source subtitles
Testing
Added schema-driven integration tests for all filter types (QTGMC, noise reduction, dehalo, deblock, deband, sharpen, chroma fixes, color correction)
Tests verify every optional parameter name and value in the generated VapourSynth script against the filter schema
Basic-mode test verifies no advanced parameters leak into the script when Advanced mode is off
12 new integration tests, all passing
Internal
QTGMC parameters are now nullable — null means "let the preset decide" vs an explicit user override
lastOptionalValues in DynamicParameters preserves user values across disable/re-enable cycles
Renamed RestorationPipeline ProcessingPipeline across codebase
Filter category restoration cleanup
Removed FFMS2 and BestSource dependencies entirely — smaller dependency footprint
Patched havsfunc EEDI3CL fallback for modern eedi3m plugin (no OpenCL EEDI3)
VapourBox 0.8.0
Whisper Subtitle Generation
Add Whisper-powered subtitle generation as a pipeline pass (SRT file, embedded, or both)
Subtitle-only mode: generate subtitles without video re-encoding
UX Improvements
Visual "Post-Processing" separator between video filters and subtitles in pass list
Context-aware pass summary (e.g. "2 video passes, subtitles enabled", "Subtitle generation only")
Context-aware completion label ("Subtitles saved to:" vs "Output saved to:")
Output path automatically switches to .srt extension in subtitle-only SRT mode
Bug Fixes
Fix aspect ratio (SAR) not preserved in output video — ffmpeg setsar filter was receiving : as option separator instead of ratio separator
VapourBox 0.7.1
Changes
Fix false telecine detection on VHS tapes: Interlaced PAL VHS content was being misclassified as hard telecine due to stray repeated fields from tracking instability. Now requires 15% repeated fields ratio (real 3:2 pulldown is ~40%) instead of triggering on any single repeated field.
Skip VHS leader for scan analysis: idet analysis now skips the first 2 seconds of longer videos to avoid unstable VHS leader/tracking sections.
VapourBox 0.7.0
What's New
Soft Telecine Support
Added soft telecine (IVTC) as a deinterlace method
Replaced scan type detection with ffmpeg idet filter for more accurate interlace/telecine detection
Auto-detects soft telecine content and suggests appropriate processing
Preset System Improvements
Update presets: Sync button on user presets to update with current settings
Overwrite warning: Confirmation dialog when saving a preset with a duplicate name
UI/UX Improvements
Show actual frame rates (e.g., 29.97 fps) in QTGMC output rate options instead of rounded values
Disable processing button during active processing, with cancel confirmation dialog
Hide TFF field order parameter when not using QTGMC deinterlace method
Developer Improvements
Added macOS debug build-and-run script (Scripts/run-debug-macos.sh)
Fixed macOS GitHub Actions workflow (correct Rust action, xcodebuild build process)
Added Scripts/ci-build-and-release.sh to trigger CI builds and upload artifacts to draft releases
Fixed macOS debug SIGPIPE crash caused by Flutter 3.35+ merged UI/platform thread mode
VapourBox 0.5.2
Changes
Update to try to track down dependency resolution issues. For diagnostics on MacOS launch from the terminal with /Applications/VapourBox.app/Contents/MacOS/vapourbox.
Fix macOS dependency detection after extraction
Ad-hoc codesign all dylibs and executables after dependency download (fixes Gatekeeper blocking on macOS Sequoia+)
Add python/lib to DYLD_LIBRARY_PATH to match Rust worker environment
Set PYTHONNOUSERSITE=1 to prevent user site-packages interference
Add diagnostic logging to ToolLocator for easier debugging
Uses dependencies from: deps-v1.0.0
VapourBox 0.5.1
Changes
Fix hardware codec determination, show all hardware codecs and warn about the unsupported ones
Centralize tool path management, fix warnings
Bug fixes and improvements
VapourBox 0.5.0
What's New
Hardware Encoding Support
Added support for hardware-accelerated encoding: NVENC (NVIDIA), QSV (Intel), VideoToolbox (macOS), AMF (AMD)
Audio & Encoding Improvements
Audio mode selection (copy, transcode, or remove)
Chroma subsampling options
Codec and pixel format info in video info dialog
Quality of Life
Videos can now be re-processed without restarting the app
Dependencies
Uses existing dependency release: deps-v1.0.0
Full Changelog
Add hardware encoding support (NVENC, QSV, VideoToolbox, AMF)
Add audio mode selection, chroma subsampling, and integration tests
Add codec and pixel format info to video info dialog
Document macOS build workaround and release packaging requirements
VapourBox 0.4.0
What's New
Processing Improvements
Batch processing fix: Fixed race condition in batch processing queue
Re-process videos: Videos can now be re-processed without restarting the app
Overwrite confirmation: Added confirmation dialog when output file already exists
Video Info
Codec and pixel format info: Video info dialog now shows codec name and pixel format details
Auto-Updates
Update checker: App now checks for updates on startup and notifies when a new version is available
VapourBox 0.3.0
What's New
Video Queue
Batch processing: Add multiple videos to a queue for sequential processing
Process your entire collection without manual intervention
Output Configuration
Custom output directory: Choose where processed videos are saved
Filename patterns: Configure output filenames with variables like {original}, {date}, etc.
Compatibility
NTSC DV support: Automatically convert 4:1:1 chroma to 4:2:2 for filter compatibility
VapourBox 0.2.1
What's New
Bug Fixes & Improvements
Fix preview generation working directory for dependency paths
Add delay before worker exit to ensure completion message is received
Remove legacy qtgmc_template fallback and fix dev path security
Add audio codec compatibility warning dialog and full E2E tests
Document dev vs production build strategy for dependency location
macOS
Build for Apple Silicon (arm64) only - Intel Mac support removed
Fixed release script version parsing
VapourBox 0.2.0
Cross-platform video restoration application using VapourSynth.
Changes
Switch from http to rhttp for Windows certificate support
Security: Only check development paths in debug builds
Fix macOS deps storage location to use Application Support
Reorganize Settings dialog into Input and Output tabs
Update README with screenshot and improved description
VapourBox 0.1.0
A user-friendly wrapper for VapourSynth that makes video processing accessible to everyone.
VapourBox Screenshot
What is VapourBox?
VapourBox provides a simple drag-and-drop interface for powerful video processing tasks that normally require scripting knowledge. Convert interlaced footage, apply QTGMC deinterlacing, reduce noise, and fix common video problems—no command line needed.
Features
QTGMC deinterlacing - Industry-standard deinterlacing with full parameter control
Multi-pass restoration pipeline - Denoise, sharpen, dehalo, deblock, deband
Real-time preview - Side-by-side before/after comparison
Timeline with zoom - Navigate and set in/out points for partial exports
Multiple output codecs - ProRes, FFV1, H.264, H.265
Preset system - Save and reuse your filter configurations
Use Cases
Convert interlaced video to progressive
Clean up noisy or soft footage
Archive DVDs with proper deinterlacing
Restore VHS captures
Platforms
macOS ARM64 (Apple Silicon)
Windows x64
Installation
Download the zip for your platform
Extract and run
Dependencies (~94 MB macOS, ~183 MB Windows) download automatically on first launch
Requirements
macOS 11+ (Apple Silicon) or Windows 10/11 (x64)
Internet connection for first launch
What's New
Bug Fixes
Fix filter parameter values silently lost on UI round-trips due to schema-converter mismatches
Fix resize kernel always resetting to default when saving/loading presets
Fix MCTemporalDenoise settings param not passed to VapourSynth
Fix QTGMC built-in denoising values ignored when set from noise reduction panel
Remove dead blockSize/overlap fields from deblock filter
Improvements
Add comprehensive schema-converter integration tests (98 tests) to prevent future mismatches
Case-insensitive dropdown matching prevents silent enum fallback bugs
Dependencies
Uses deps release: deps-v1.2.0
VapourBox 0.9.0
What's New
DVD Disc Import
Import directly from DVD discs, VIDEO_TS folders, and ISO images. VapourBox extracts individual titles using libdvdread, with progress tracking and automatic cleanup of temp files. CSS decryption supported if the user installs libdvdcss separately.
OpenCL GPU Acceleration on macOS
QTGMC now automatically uses NNEDI3CL (OpenCL GPU) on macOS, where the CPU-only ZNEDI3/NNEDI3 plugins lack ARM NEON optimisations and run pure scalar C. This significantly speeds up the interpolation step on Apple Silicon.
Replace BestSource/FFMS2 with FFmpeg Pipe Source
BestSource's frame-accurate seeking could cause A/V desync on certain sources. This release replaces the entire source chain with a single FFmpeg pipe architecture:
No more slow indexing — FFmpeg pipe starts immediately, no frame index needed
Consistent preview and encode paths — preview uses the identical pipeline as conversion
Preview respects encoding settings — chroma subsampling and other parameters reflected in previews
Advanced QTGMC Parameters Overhaul
All advanced QTGMC parameters are now optional with proper defaults matching havsfunc internals. When a checkbox is unchecked, the parameter is omitted entirely — letting QTGMC use its own preset-driven defaults (matching how tools like Hybrid handle these settings).
30 advanced parameters (TrueMotion, GlobalMotion, DCT, SubPelInterp, ThSAD1/2, ThSCD1/2, etc.) are now optional — previously always passed even when untouched
All optional parameter defaults match the actual havsfunc function signatures, not custom presets
User-adjusted values are preserved when disabling and re-enabling a parameter checkbox
5 parameters (Str, Amp, FastMA, ESearchP, RefineMotion) were not being passed to the script at all — now properly wired through
Bug Fixes
Fix advanced settings optional parameter checkboxes not toggling (#4) — optional params had null defaults, so clicking the checkbox called onChanged(null) which kept the parameter disabled
Fix 4 VapourSynth parameter name mismatches in deinterlace schema (BlockSizeBlocksize, SBBSbb, Devicedevice, OpenCLopencl) that caused silent parameter drops
Remove non-existent vinverseScl parameter from Vinverse filter (havsfunc Vinverse only has sstr, amnt, chroma)
Fix all filter schema defaults to match actual havsfunc function signatures (dehalo, noise_reduction, sharpen, deband, chroma_fixes)
Fix display aspect ratio for anamorphic DVD previews (SAR correction)
Fix queue info dialog overflow when showing long DVD extraction logs
Fix ffmpeg reading full audio track when exporting trimmed segments
Fix orphaned vspipe process on cancel by calling vspipe-bin directly
Fix progress tracking showing wrong frame count when trimming with in/out points
Fix phase-aware progress tracking for telecine pipeline
Fix whisper deadlock on long videos and subtitle-only output path bugs
Fix pipe_source.py not bundled in release builds
Embed VapourBox version in output file metadata and preserve source subtitles
Testing
Added schema-driven integration tests for all filter types (QTGMC, noise reduction, dehalo, deblock, deband, sharpen, chroma fixes, color correction)
Tests verify every optional parameter name and value in the generated VapourSynth script against the filter schema
Basic-mode test verifies no advanced parameters leak into the script when Advanced mode is off
12 new integration tests, all passing
Internal
QTGMC parameters are now nullable — null means "let the preset decide" vs an explicit user override
lastOptionalValues in DynamicParameters preserves user values across disable/re-enable cycles
Renamed RestorationPipeline ProcessingPipeline across codebase
Filter category restoration cleanup
Removed FFMS2 and BestSource dependencies entirely — smaller dependency footprint
Patched havsfunc EEDI3CL fallback for modern eedi3m plugin (no OpenCL EEDI3)
VapourBox 0.8.0
Whisper Subtitle Generation
Add Whisper-powered subtitle generation as a pipeline pass (SRT file, embedded, or both)
Subtitle-only mode: generate subtitles without video re-encoding
UX Improvements
Visual "Post-Processing" separator between video filters and subtitles in pass list
Context-aware pass summary (e.g. "2 video passes, subtitles enabled", "Subtitle generation only")
Context-aware completion label ("Subtitles saved to:" vs "Output saved to:")
Output path automatically switches to .srt extension in subtitle-only SRT mode
Bug Fixes
Fix aspect ratio (SAR) not preserved in output video — ffmpeg setsar filter was receiving : as option separator instead of ratio separator
VapourBox 0.7.1
Changes
Fix false telecine detection on VHS tapes: Interlaced PAL VHS content was being misclassified as hard telecine due to stray repeated fields from tracking instability. Now requires 15% repeated fields ratio (real 3:2 pulldown is ~40%) instead of triggering on any single repeated field.
Skip VHS leader for scan analysis: idet analysis now skips the first 2 seconds of longer videos to avoid unstable VHS leader/tracking sections.
VapourBox 0.7.0
What's New
Soft Telecine Support
Added soft telecine (IVTC) as a deinterlace method
Replaced scan type detection with ffmpeg idet filter for more accurate interlace/telecine detection
Auto-detects soft telecine content and suggests appropriate processing
Preset System Improvements
Update presets: Sync button on user presets to update with current settings
Overwrite warning: Confirmation dialog when saving a preset with a duplicate name
UI/UX Improvements
Show actual frame rates (e.g., 29.97 fps) in QTGMC output rate options instead of rounded values
Disable processing button during active processing, with cancel confirmation dialog
Hide TFF field order parameter when not using QTGMC deinterlace method
Developer Improvements
Added macOS debug build-and-run script (Scripts/run-debug-macos.sh)
Fixed macOS GitHub Actions workflow (correct Rust action, xcodebuild build process)
Added Scripts/ci-build-and-release.sh to trigger CI builds and upload artifacts to draft releases
Fixed macOS debug SIGPIPE crash caused by Flutter 3.35+ merged UI/platform thread mode
VapourBox 0.5.2
Changes
Update to try to track down dependency resolution issues. For diagnostics on MacOS launch from the terminal with /Applications/VapourBox.app/Contents/MacOS/vapourbox.
Fix macOS dependency detection after extraction
Ad-hoc codesign all dylibs and executables after dependency download (fixes Gatekeeper blocking on macOS Sequoia+)
Add python/lib to DYLD_LIBRARY_PATH to match Rust worker environment
Set PYTHONNOUSERSITE=1 to prevent user site-packages interference
Add diagnostic logging to ToolLocator for easier debugging
Uses dependencies from: deps-v1.0.0
VapourBox 0.5.1
Changes
Fix hardware codec determination, show all hardware codecs and warn about the unsupported ones
Centralize tool path management, fix warnings
Bug fixes and improvements
VapourBox 0.5.0
What's New
Hardware Encoding Support
Added support for hardware-accelerated encoding: NVENC (NVIDIA), QSV (Intel), VideoToolbox (macOS), AMF (AMD)
Audio & Encoding Improvements
Audio mode selection (copy, transcode, or remove)
Chroma subsampling options
Codec and pixel format info in video info dialog
Quality of Life
Videos can now be re-processed without restarting the app
Dependencies
Uses existing dependency release: deps-v1.0.0
Full Changelog
Add hardware encoding support (NVENC, QSV, VideoToolbox, AMF)
Add audio mode selection, chroma subsampling, and integration tests
Add codec and pixel format info to video info dialog
Document macOS build workaround and release packaging requirements
VapourBox 0.4.0
What's New
Processing Improvements
Batch processing fix: Fixed race condition in batch processing queue
Re-process videos: Videos can now be re-processed without restarting the app
Overwrite confirmation: Added confirmation dialog when output file already exists
Video Info
Codec and pixel format info: Video info dialog now shows codec name and pixel format details
Auto-Updates
Update checker: App now checks for updates on startup and notifies when a new version is available
VapourBox 0.3.0
What's New
Video Queue
Batch processing: Add multiple videos to a queue for sequential processing
Process your entire collection without manual intervention
Output Configuration
Custom output directory: Choose where processed videos are saved
Filename patterns: Configure output filenames with variables like {original}, {date}, etc.
Compatibility
NTSC DV support: Automatically convert 4:1:1 chroma to 4:2:2 for filter compatibility
VapourBox 0.2.1
What's New
Bug Fixes & Improvements
Fix preview generation working directory for dependency paths
Add delay before worker exit to ensure completion message is received
Remove legacy qtgmc_template fallback and fix dev path security
Add audio codec compatibility warning dialog and full E2E tests
Document dev vs production build strategy for dependency location
macOS
Build for Apple Silicon (arm64) only - Intel Mac support removed
Fixed release script version parsing
VapourBox 0.2.0
Cross-platform video restoration application using VapourSynth.
Changes
Switch from http to rhttp for Windows certificate support
Security: Only check development paths in debug builds
Fix macOS deps storage location to use Application Support
Reorganize Settings dialog into Input and Output tabs
Update README with screenshot and improved description
VapourBox 0.1.0
A user-friendly wrapper for VapourSynth that makes video processing accessible to everyone.
VapourBox Screenshot
What is VapourBox?
VapourBox provides a simple drag-and-drop interface for powerful video processing tasks that normally require scripting knowledge. Convert interlaced footage, apply QTGMC deinterlacing, reduce noise, and fix common video problems—no command line needed.
Features
QTGMC deinterlacing - Industry-standard deinterlacing with full parameter control
Multi-pass restoration pipeline - Denoise, sharpen, dehalo, deblock, deband
Real-time preview - Side-by-side before/after comparison
Timeline with zoom - Navigate and set in/out points for partial exports
Multiple output codecs - ProRes, FFV1, H.264, H.265
Preset system - Save and reuse your filter configurations
Use Cases
Convert interlaced video to progressive
Clean up noisy or soft footage
Archive DVDs with proper deinterlacing
Restore VHS captures
Platforms
macOS ARM64 (Apple Silicon)
Windows x64
Installation
Download the zip for your platform
Extract and run
Dependencies (~94 MB macOS, ~183 MB Windows) download automatically on first launch
Requirements
macOS 11+ (Apple Silicon) or Windows 10/11 (x64)
Internet connection for first launch