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.8
VapourBox 0.9.8 builds on 0.9.7 with extensive filter integration fixes across platform, and better queue handling plus a large dependency/CI overhaul under the bonnet to verify every single filter option works on every single supported platform.
What's new
TL;DR - a focus on fixes rather than features.
Encoding (issue #19)
Intel Mac bitrate control VideoToolbox on Intel has no constant-quality mode, so the quality slider produced badly under-bitrated output. The Quality section now offers native bitrate presets (Low / Medium / High / Very High) plus an editable Mb/s field. Apple Silicon keeps its quality slider unchanged.
HEVC plays in QuickTime / Apple players HEVC in MP4/MOV is now tagged hvc1 (with faststart) so Apple players no longer reject the file.
Codec selection no longer over-blocked encoders FFmpeg actually supports stay selectable even when the hardware probe fails; a failed probe now shows a warning with a viewable, copyable error log instead of silently disabling the option (e.g. h264_videotoolbox on some Intel Macs).
Copy Log button stays available the log panel (and its copy button) now remain visible after a job completes, not just while it's running.
Deinterlacing
OpenCL auto-detect with CPU fallback on macOS, QTGMC's GPU NNEDI3 path failed on machines with no usable OpenCL device (headless, VMs, remote-desktop sessions), erroring out every deinterlace job. The worker now probes for OpenCL and falls back to CPU NNEDI3 when it isn't available. Set VAPOURBOX_DISABLE_OPENCL=1 to force CPU.
Queue handling (issue #12)
Dropping more files no longer overwrites your settings scan-type auto-configuration now runs only for the first file into an empty queue, so adding files to an already-configured queue keeps your pipeline. Added audio-settings logging to aid diagnosis.
Reliability
Fixed an intermittent plugin-load failure (No attribute fmtc) caused by a shared VapourSynth autoload config being written concurrently (#36).
Under the bonnet
Dependency binaries are no longer committed the download-deps-* scripts and CI are now the source of truth, with sha256 integrity sidecars per release and a plugin-completeness guard that fails the build on missing plugins.
Numerous deps build fixes: macOS x64 FFTW reference, arm64 liblzma for BestSource, unbundled-dylib guards (issue #28), Windows VSScript init / x64 plugin selection, and a dead fmtconv download URL.
Flutter integration tests now run headless in CI.
Worker probes input frame count when a job omits total_frames (#35).
VapourBox 0.9.7
Encoder, denoiser, and dependency fixes building on the 0.9.6 cross-platform release.
What's New
Linux hardware-accelerated encoding the bundled Linux ffmpeg now includes hardware encoders (x64: Intel QSV, NVIDIA NVENC, AMD AMF, VAAPI; arm64: NVENC, AMF, V4L2 M2M). It still encodes in software where no GPU/driver is present.
Smarter hardware-encoder availability the encoder list now probes each hardware encoder and shows only what actually works on your machine (with a brief busy indicator while checking); unavailable ones are clearly disabled. Only platform-relevant encoders are listed (VideoToolbox on macOS; QSV/NVENC/AMF on Windows + Linux).
Dependency download progress the first-launch dependency dialog now shows extraction progress (previously it sat frozen on "Extracting " at 100%, which was especially noticeable on Linux).
Fixes
MCTemporalDenoise no longer crashes the TTempSmooth plugin was missing on every platform (and FFT3DFilter was missing on macOS), so havsfunc's MCTemporalDenoise denoiser failed with No attribute with the name ttmpsm. Both plugins are now bundled, and the denoiser works across macOS, Windows, and Linux.
Clean-aperture sources fixed garbage preview/encode on sources whose decoded frame size differs from the size ffprobe reports (e.g. a 10-bit 4:2:2 ProRes file with a clean aperture: reported 720Χ576 but decoded 702Χ576). The decoder is now pinned to the declared dimensions so the raw stream stays in sync; a no-op for normal sources.
Apple VideoToolbox on Intel Macs H.264/H.265 VideoToolbox now encode correctly on Intel Macs (they require an average bitrate; the previous constant-quality flag is Apple-Silicon only and made the encode fail).
Clearer encode errors when an encoder fails, VapourBox now reports the real ffmpeg error instead of a confusing vspipe SIGPIPE.
VapourBox 0.9.6
The big one: VapourBox now runs on Linux, and macOS ships as a single universal build covering both Apple Silicon and Intel.
What's New
Linux support (x86_64 + aarch64) VapourBox is now cross-platform across macOS, Windows, and Linux. It ships as a portable tarball; the VapourSynth/FFmpeg dependency stack downloads automatically on first launch (to ~/.local/share/VapourBox/), same as the other platforms. The full filter set is available.
macOS is now a Universal build a single signed & notarized DMG runs natively on both Apple Silicon and Intel Macs (Intel support is new this release)..
Fixes
Preview no longer breaks when toggling filters rapidly fixed a race condition that could leave the preview stale or errored when filters were switched in quick succession.
Clearer worker error reporting on Unix process failures now report the terminating signal (e.g. SIGSEGV) instead of an opaque exit code.
Downloads
Windows: VapourBox-0.9.6-windows-x64.zip
macOS (Universal Apple Silicon + Intel): signed & notarized VapourBox-0.9.6-macos-universal.dmg
Linux (x86_64): VapourBox-0.9.6-linux-x64.tar.gz
Linux (aarch64): VapourBox-0.9.6-linux-arm64.tar.gz
Dependencies
Dependencies (~185 MB) are downloaded automatically on first launch.
Under the hood
New cross-platform CI test gate runs the full Rust + Flutter test suites on macOS (Apple Silicon + Intel), Windows, and Linux for every push and PR.
Linux dependencies and the Linux whisper-cli are built from source via dedicated CI workflows; macOS x64 deps now build natively on the Intel runner.
VapourBox 0.9.5
What's New
New lossless codecs: HuffYUV and FFVHuff, selectable for AVI/MKV output (fast lossless intermediates alongside FFV1).
macOS builds are now (finally) signed and notarized with a Developer ID open without Gatekeeper warnings.
Fixes
#6 MP4/MOV output no longer fails on sources with image-based (PGS/VobSub) subtitles; only text subtitles are mapped to mov_text, image-based tracks are skipped.
Output paths now use the platform separator on Windows (no more mixed D:\dir/file.mov).
Preview now reports a clear error on un-analyzed files instead of a cryptic BlankClip: invalid width.
VapourBox 0.9.3
Hotfix v0.9.3
Fix DVD extraction failing on Windows physical drives root paths like D:\ produced illegal characters in temp filenames
VapourBox 0.9.2
What's New
Film Restoration Filters
DeScratch Remove vertical scratches from scanned film (spatial, single-frame analysis)
SpotLess Remove dust, dirt, and temporal spots using motion-compensated median filtering
Chroma Fixes
Chroma Shift (Y/C Delay) Precisely align chroma planes with sub-pixel accuracy for analog sources
Fixed method dropdown showing alongside individual checkboxes in Chroma Fixes
Bug Fixes
Fixed preview template unconditionally marking clips as field-based, causing resize errors with some filters
Fixed DeScratch compatibility with field-based clips and non-8-bit formats
Dependencies (deps-v1.3.0)
Added DeScratch plugin (Windows DLL + macOS arm64 dylib)
Added TemporalMedian plugin (Windows DLL + macOS arm64 dylib)
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 problemsno 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
VapourBox 0.9.8 builds on 0.9.7 with extensive filter integration fixes across platform, and better queue handling plus a large dependency/CI overhaul under the bonnet to verify every single filter option works on every single supported platform.
What's new
TL;DR - a focus on fixes rather than features.
Encoding (issue #19)
Intel Mac bitrate control VideoToolbox on Intel has no constant-quality mode, so the quality slider produced badly under-bitrated output. The Quality section now offers native bitrate presets (Low / Medium / High / Very High) plus an editable Mb/s field. Apple Silicon keeps its quality slider unchanged.
HEVC plays in QuickTime / Apple players HEVC in MP4/MOV is now tagged hvc1 (with faststart) so Apple players no longer reject the file.
Codec selection no longer over-blocked encoders FFmpeg actually supports stay selectable even when the hardware probe fails; a failed probe now shows a warning with a viewable, copyable error log instead of silently disabling the option (e.g. h264_videotoolbox on some Intel Macs).
Copy Log button stays available the log panel (and its copy button) now remain visible after a job completes, not just while it's running.
Deinterlacing
OpenCL auto-detect with CPU fallback on macOS, QTGMC's GPU NNEDI3 path failed on machines with no usable OpenCL device (headless, VMs, remote-desktop sessions), erroring out every deinterlace job. The worker now probes for OpenCL and falls back to CPU NNEDI3 when it isn't available. Set VAPOURBOX_DISABLE_OPENCL=1 to force CPU.
Queue handling (issue #12)
Dropping more files no longer overwrites your settings scan-type auto-configuration now runs only for the first file into an empty queue, so adding files to an already-configured queue keeps your pipeline. Added audio-settings logging to aid diagnosis.
Reliability
Fixed an intermittent plugin-load failure (No attribute fmtc) caused by a shared VapourSynth autoload config being written concurrently (#36).
Under the bonnet
Dependency binaries are no longer committed the download-deps-* scripts and CI are now the source of truth, with sha256 integrity sidecars per release and a plugin-completeness guard that fails the build on missing plugins.
Numerous deps build fixes: macOS x64 FFTW reference, arm64 liblzma for BestSource, unbundled-dylib guards (issue #28), Windows VSScript init / x64 plugin selection, and a dead fmtconv download URL.
Flutter integration tests now run headless in CI.
Worker probes input frame count when a job omits total_frames (#35).
VapourBox 0.9.7
Encoder, denoiser, and dependency fixes building on the 0.9.6 cross-platform release.
What's New
Linux hardware-accelerated encoding the bundled Linux ffmpeg now includes hardware encoders (x64: Intel QSV, NVIDIA NVENC, AMD AMF, VAAPI; arm64: NVENC, AMF, V4L2 M2M). It still encodes in software where no GPU/driver is present.
Smarter hardware-encoder availability the encoder list now probes each hardware encoder and shows only what actually works on your machine (with a brief busy indicator while checking); unavailable ones are clearly disabled. Only platform-relevant encoders are listed (VideoToolbox on macOS; QSV/NVENC/AMF on Windows + Linux).
Dependency download progress the first-launch dependency dialog now shows extraction progress (previously it sat frozen on "Extracting " at 100%, which was especially noticeable on Linux).
Fixes
MCTemporalDenoise no longer crashes the TTempSmooth plugin was missing on every platform (and FFT3DFilter was missing on macOS), so havsfunc's MCTemporalDenoise denoiser failed with No attribute with the name ttmpsm. Both plugins are now bundled, and the denoiser works across macOS, Windows, and Linux.
Clean-aperture sources fixed garbage preview/encode on sources whose decoded frame size differs from the size ffprobe reports (e.g. a 10-bit 4:2:2 ProRes file with a clean aperture: reported 720Χ576 but decoded 702Χ576). The decoder is now pinned to the declared dimensions so the raw stream stays in sync; a no-op for normal sources.
Apple VideoToolbox on Intel Macs H.264/H.265 VideoToolbox now encode correctly on Intel Macs (they require an average bitrate; the previous constant-quality flag is Apple-Silicon only and made the encode fail).
Clearer encode errors when an encoder fails, VapourBox now reports the real ffmpeg error instead of a confusing vspipe SIGPIPE.
VapourBox 0.9.6
The big one: VapourBox now runs on Linux, and macOS ships as a single universal build covering both Apple Silicon and Intel.
What's New
Linux support (x86_64 + aarch64) VapourBox is now cross-platform across macOS, Windows, and Linux. It ships as a portable tarball; the VapourSynth/FFmpeg dependency stack downloads automatically on first launch (to ~/.local/share/VapourBox/), same as the other platforms. The full filter set is available.
macOS is now a Universal build a single signed & notarized DMG runs natively on both Apple Silicon and Intel Macs (Intel support is new this release)..
Fixes
Preview no longer breaks when toggling filters rapidly fixed a race condition that could leave the preview stale or errored when filters were switched in quick succession.
Clearer worker error reporting on Unix process failures now report the terminating signal (e.g. SIGSEGV) instead of an opaque exit code.
Downloads
Windows: VapourBox-0.9.6-windows-x64.zip
macOS (Universal Apple Silicon + Intel): signed & notarized VapourBox-0.9.6-macos-universal.dmg
Linux (x86_64): VapourBox-0.9.6-linux-x64.tar.gz
Linux (aarch64): VapourBox-0.9.6-linux-arm64.tar.gz
Dependencies
Dependencies (~185 MB) are downloaded automatically on first launch.
Under the hood
New cross-platform CI test gate runs the full Rust + Flutter test suites on macOS (Apple Silicon + Intel), Windows, and Linux for every push and PR.
Linux dependencies and the Linux whisper-cli are built from source via dedicated CI workflows; macOS x64 deps now build natively on the Intel runner.
VapourBox 0.9.5
What's New
New lossless codecs: HuffYUV and FFVHuff, selectable for AVI/MKV output (fast lossless intermediates alongside FFV1).
macOS builds are now (finally) signed and notarized with a Developer ID open without Gatekeeper warnings.
Fixes
#6 MP4/MOV output no longer fails on sources with image-based (PGS/VobSub) subtitles; only text subtitles are mapped to mov_text, image-based tracks are skipped.
Output paths now use the platform separator on Windows (no more mixed D:\dir/file.mov).
Preview now reports a clear error on un-analyzed files instead of a cryptic BlankClip: invalid width.
VapourBox 0.9.3
Hotfix v0.9.3
Fix DVD extraction failing on Windows physical drives root paths like D:\ produced illegal characters in temp filenames
VapourBox 0.9.2
What's New
Film Restoration Filters
DeScratch Remove vertical scratches from scanned film (spatial, single-frame analysis)
SpotLess Remove dust, dirt, and temporal spots using motion-compensated median filtering
Chroma Fixes
Chroma Shift (Y/C Delay) Precisely align chroma planes with sub-pixel accuracy for analog sources
Fixed method dropdown showing alongside individual checkboxes in Chroma Fixes
Bug Fixes
Fixed preview template unconditionally marking clips as field-based, causing resize errors with some filters
Fixed DeScratch compatibility with field-based clips and non-8-bit formats
Dependencies (deps-v1.3.0)
Added DeScratch plugin (Windows DLL + macOS arm64 dylib)
Added TemporalMedian plugin (Windows DLL + macOS arm64 dylib)
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 problemsno 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