A desktop app for archiving and converting video — tape captures, camcorder footage, film scans, DVDs, and the digital files you already have. Choose an output format, optionally run some cleanup, and it produces the file.
VapourBox runs VapourSynth, QTGMC and FFmpeg — the tools the video archiving and restoration community already uses — without requiring you to write a script, install a plugin or open a terminal. Everything it needs is downloaded on first launch. It runs on macOS, Windows and Linux, and it's free and open source.
Conversion. Reads the DV and AVCHD files a camcorder writes, MPEG-2 from discs and set-top recorders, MXF from scanners and broadcast gear, and the ordinary MP4/MKV/AVI/MOV files you already have. Writes H.264, H.265, ProRes or lossless FFV1. It also handles the source formats that quietly defeat consumer converters — NTSC DV's 4:1:1 chroma, 4:1:0, and the 10- to 16-bit RGB and grayscale material film scans arrive in. Audio can be passed through untouched, re-encoded to AAC, Opus or FLAC, or dropped, and hardware encoders are used where the machine has them.
Archiving. Old footage tends to be stuck in a format that's awkward to keep: a tape capture in a codec nothing opens any more, a MiniDV file straight off the camera, a stack of DVDs, a film scan too large to keep as-is. VapourBox turns any of it into something that will still open in twenty years — FFV1 for a lossless master, or H.265 for a copy that's watchable on a phone. DVDs and VIDEO_TS folders are read directly, so a disc needs no separate ripping step — pick a title and it's extracted, processed and encoded in one pass. Aspect ratio is carried through correctly, including non-square pixels through a resize, which is a common way for archived video to end up the wrong shape.
Correcting how the picture is stored. Most consumer and broadcast video recorded before the 2010s is interlaced — VHS, Video8 and Hi8, DV camcorders, DVDs, off-air recordings — and needs converting to progressive to display properly on a modern screen. Film transferred to video was padded with pulldown instead, which can be reversed to recover the original 23.976 fps frames. VapourBox detects which case applies and handles both: QTGMC for deinterlacing, IVTC for telecined film.
Cleanup, when the source needs it. Twenty-one optional filters covering tape noise and smeared color, dust and scratches on scanned film, the dirty rows at the edge of a capture, ghosting from an aerial, the brightness flicker of scanned cine film, blocking from a heavily compressed disc or recorder, jagged diagonal edges, camera shake, and halos, banding, color balance and detail lost in dark footage. All off by default, and the presets turn on what a given kind of source actually needs.
Anime. Line art has needs of its own, and VapourBox covers the usual anime toolkit. Descale undoes the upscale most HD anime went through in production: its Detect button finds the resolution the show was drawn at and the scaler the studio used, then rebuilds the picture without the softness and halos, leaving credits and on-screen text alone. BM3D cleans flat colour without smearing lines. AI upscaling redraws line art at 2x or 4x on the graphics card with Real-ESRGAN, Real-CUGAN or AnimeJaNai. RIFE interpolates frames for frame-rate conversion. The Anime DVD preset handles inverse telecine, halos, banding and rainbowing on SD discs.
Subtitles. Speech is transcribed with Whisper AI to a separate .srt, embedded in the output, or both.
- Add the source. Drop in a file, a folder of files, a
VIDEO_TSfolder, or open a DVD in the drive. VapourBox inspects it and reports what it found — interlaced, telecined or progressive — so the choice isn't guesswork. - Set the output and any processing. Pick a codec and container, then either start from a preset — three quality tiers, plus seven named after the source, from VHS Cleanup to Low-Light Phone / Camera Video — or switch individual filters on. Each filter's controls open in place beneath it, with a summary of what it does and when it applies.
- Check the preview, then run it. The preview shows source and processed output side by side and updates as settings change, so settings can be judged before a long encode. Multiple files queue up and process unattended.
| Platform | Minimum OS | File |
|---|---|---|
| macOS (Apple Silicon) | macOS 15 Sequoia | VapourBox-x.x.x-macos-arm64.dmg |
| macOS (Intel) | macOS 12 Monterey | VapourBox-x.x.x-macos-x64.dmg |
| Windows (x64) | Windows 10/11 | VapourBox-x.x.x-windows-x64-setup.exe |
| Linux (x64) | glibc 2.39 (Ubuntu 24.04, Debian 13) | VapourBox-x.x.x-x86_64.AppImage |
| Linux (arm64) | glibc 2.39 (Ubuntu 24.04, Debian 13) | VapourBox-x.x.x-aarch64.AppImage |
All processing is local. There is no account, no telemetry, and nothing is uploaded.
Installing on macOS
- Download the
.dmgmatching your Mac's CPU — Apple menu → About This Mac. Apple Silicon takesarm64(macOS 15+), Intel takesx64(macOS 12+). - Open it and drag VapourBox to Applications.
- First launch downloads its processing dependencies (~100 MB).
VapourBox is signed with an Apple Developer ID and notarized, so it opens without Gatekeeper warnings.
Installing on Windows
- Download the
-setup.exeinstaller and run it. - The installer isn't code-signed, so Windows SmartScreen may say it "protected your PC" — choose More info → Run anyway.
- Launch VapourBox from the Start menu.
- First launch downloads its processing dependencies (~145 MB).
It installs for the current user only (under %LOCALAPPDATA%\Programs\VapourBox), so it never asks for administrator rights. Running a newer installer upgrades in place and keeps the downloaded dependencies; uninstalling from Settings → Apps removes them too. Your saved presets are left alone.
Portable option: each release also carries a .zip of the same build. Extract it anywhere you can write to (e.g. C:\VapourBox, not Program Files) and run vapourbox.exe.
Installing on Linux
- Download the
.AppImagefor your architecture (x86_64for Intel/AMD,aarch64for ARM). - Make it executable:
chmod +x VapourBox-x.x.x-x86_64.AppImage(or tick Allow executing file as program in the file manager's Properties). - Run it:
./VapourBox-x.x.x-x86_64.AppImage - First launch unpacks the processing dependencies it carries. No download is needed, so it works offline.
The AppImage is a single file that needs no installation and can live anywhere. To get a menu entry and icon, open it with an AppImage manager such as Gear Lever or AppImageLauncher; those, and AppImageUpdate, can also update it in place, downloading only what changed.
Each release also carries a plain .tar.gz of the same build, for systems where an AppImage can't be mounted: extract it and run ./vapourbox. It is much smaller because it leaves the processing dependencies out, and downloads them on first launch (~240 MB) instead.
GPU-accelerated deinterlacing (NNEDI3CL) needs your GPU's OpenCL driver installed. Without it, VapourBox falls back to the CPU automatically.
RIFE frame interpolation (in the Frame Rate pass) and AI upscaling with Real-ESRGAN, Real-CUGAN or AnimeJaNai (in Crop & Resize) run on the GPU through Vulkan. They work on any Apple Silicon Mac, and on Windows and Linux x64 PCs with a current graphics driver; RIFE on Windows also needs the Microsoft Visual C++ Redistributable. They aren't available on Intel Macs or Linux on ARM yet. When you choose one, VapourBox checks that it can run and, if it can't, says what is missing and how to fix it.
Add-ons. Some features use third-party downloads that aren't part of VapourBox: the Whisper speech-recognition engine and its language models for Subtitles, and the AnimeJaNai models for AI upscaling. VapourBox offers to download one the first time you choose a feature that needs it, saying where it comes from and under what licence. Settings → Add-ons lists them all, to install or remove at any time. The AnimeJaNai models are free for non-commercial use only (CC BY-NC-SA 4.0); if you use VapourBox for paid work, use Real-ESRGAN or Real-CUGAN instead.
Older Intel and AMD processors (before about 2013 — no AVX2) are supported on all three platforms. On first launch VapourBox checks the processor and installs the matching set of processing components; a machine moved to a different CPU gets the right set on its next launch. The older-CPU set runs some filters more slowly, never differently. Every build of that set is checked for pre-AVX processors (e.g. a 2010 Mac Pro) on macOS and Linux; on Windows it is checked for processors with AVX but no AVX2, and older ones are expected to work but can't be tested automatically.
| Video | H.264, H.265, ProRes (Proxy, LT, 422, 422 HQ, 4444, 4444 XQ), FFV1 (lossless), with hardware encoding via VideoToolbox, NVENC, Quick Sync or AMF where available |
| Audio | Passthrough, or re-encode to AAC, Opus or FLAC, or strip |
| Containers | MKV, MP4, MOV, AVI |
| Reads | .dv · .mts .m2ts (AVCHD) · .vob .m2v .mpg .mpeg · .mxf · .avi .mov .mp4 .mkv .ts .wmv .webm .flv, plus DVD discs and VIDEO_TS folders |
| Source formats | 4:1:1 (NTSC DV), 4:1:0, 4:2:0/4:2:2/4:4:4 up to 16-bit, RGB, grayscale |
| Colour format out | Match the source, or convert to 4:2:0 8-bit (plays everywhere), 4:2:0 10-bit (the only 10-bit layout GPU encoders take), 4:2:2 8-bit, 4:2:2 10-bit, or 4:4:4 10-bit (ProRes 4444 and the software encoders). Worth setting for a 10-bit source: matching it produces a 10-bit file that some players and browsers refuse to open |
| Aspect ratio | Non-square pixels preserved through the pipeline, including through a resize; or square up anamorphic pixels, force a display aspect, or letterbox to a target size |
Twenty-two filters, each switchable independently. Most sources need none or a few. They always run in the order below, top to bottom, whichever ones are switched on — the same order the list in the app shows them in. The order cannot be rearranged.
| # | Filter | What it addresses |
|---|---|---|
| 1 | Deinterlace | Comb-like jagged edges on moving objects. QTGMC for interlaced video, IVTC to recover the original film frames from telecined DVD, or Bwdif when you want it done in a fraction of the time. |
| 2 | Edge Repair | The dirty rows and columns at the very edge of a tape capture — rebuilt from the picture just inside, instead of cropped away. |
| 3 | Ghost Removal | A faint second copy of the picture shifted sideways, left behind by an aerial or a long cable run. |
| 4 | Deflicker | Brightness pulsing between frames, which is what scanned cine film almost always has. |
| 5 | DeScratch | Vertical scratch lines on scanned film. |
| 6 | SpotLess | Dust, dirt and single-frame specks. RemoveDirt is the faster choice — around six times the speed for about 60% of the removal. |
| 7 | Descale | Soft, haloed line art in HD anime and other video drawn below its delivery resolution and upscaled by the studio. Inverts that upscale exactly and upscales again with NNEDI3; Detect finds the resolution and kernel the studio used, and says so when a source was never upscaled. Credits and text drawn at full resolution are left untouched. |
| 8 | Noise Reduction | Grain and video noise across the whole frame. Motion-compensated by default, with mClean as a gentler alternative that keeps more detail; DFTTest, FFT3DFilter, TTempSmooth, FluxSmooth, STPresso, TemporalDegrain2, BM3D, KNLMeansCL (GPU) and a large-window median are available under advanced options for noise the default handles badly. BM3D is the usual choice for anime: it cleans flat colour without smearing line art. KNLMeansCL needs a graphics card with working OpenCL; VapourBox says so when you pick it if yours has none. |
| 9 | Chroma Denoise | Blotchy, smeared color — common on VHS captures and old camcorder footage. Leaves luma detail untouched. |
| 10 | Dehalo | Bright outlines around edges, ringing, and residual ghosting left by a deinterlacer. HQDeringmod targets ringing specifically. |
| 11 | Deblock | Square blocking from heavy compression, and the ringing around edges that comes with it. |
| 12 | Deband | Visible steps in gradients and skies. |
| 13 | Anti-Aliasing | Stair-stepping on diagonal edges, left by deinterlacing or upscaling. Runs before sharpening, which would otherwise make the steps more visible. |
| 14 | Chroma Fixes | Colour that sits sideways from the picture (corrected automatically or by hand), bleeding past edges, rainbowing and dot crawl — including the shimmering kind that only shows when the picture moves — and residual combing. Each repair has its own switch, and its settings appear only once it is on. |
| 15 | Color Correction | Brightness, contrast, saturation, hue, levels, white balance (warm/cool, green/magenta), lifting detail out of the shadows of underexposed footage, and lifting local contrast across a dim or flat picture. Levels and white balance can each be measured automatically or set by hand. |
| 16 | Stabilize | Shake and weave — telecine wobble, jittery film scans, handheld footage. Runs last before cropping, so a small crop removes the edges it exposes. |
| 17 | Rotate / Flip | Footage shot sideways, mirrored captures, scans that came off the scanner the wrong way round. |
| 18 | Crop & Resize | Trimming overscan, scaling, and upscaling — edge-directed, or with Real-ESRGAN, Real-CUGAN or AnimeJaNai (an optional, non-commercial download), AI upscalers trained on anime that run on the GPU — plus bars in a colour of your choice to bring a cropped picture back to an exact frame size (720×576 for PAL DVD, 720×480 for NTSC) without rescaling it. |
| 19 | Sharpen | Soft sources needing edge and fine detail recovery. aWarpSharp2 sharpens by warping edges instead of raising contrast, so it adds no halos. Runs after the resize, on the picture that is actually delivered, and before any added grain. |
| 20 | Film Grain | Grain added back after denoising, so the picture is not left plastic — and to hide banding in skies and fades. |
| 21 | Frame Rate | Converting between PAL and NTSC rates, for a tape that was already converted once and now plays at the wrong speed. New frames come from motion interpolation, from RIFE (an AI interpolator that runs on the GPU), or from plain frame repetition. |
| 22 | Subtitles | Whisper AI speech-to-text — written alongside the video as .srt, embedded as a selectable track, burnt into the picture, or a combination. |
A few things about the order are worth knowing:
- Crop & Resize is one step, cropping first. It runs after Stabilize and Rotate / Flip, so a small crop removes the thin edges stabilising exposes, and the four crop sides are the sides of the picture after any rotation. Everything before it works on the uncropped frame.
- Clean up, then frame, then finish. Damage and noise are removed first, colour is corrected next, the picture is stabilised, turned and resized, and only then sharpened. Sharpening earlier would have its work softened again by the resize.
- Grain goes on after sharpening, so it is neither sharpened into grit nor resampled away, and the frame rate is converted last of all, so every other filter works on real frames rather than invented ones.
- After the filters: any Custom VapourSynth code runs next, then the conversion to the output colour format, then added borders — last, so that nothing touches the bars. Subtitles are transcribed from the source and added once the video has been encoded.
Each filter leads with a plain-language summary and a More expander describing what it does and when it's the right choice, so the settings can be understood in place rather than looked up elsewhere.
The list also reacts to the file you dropped in. Filters that match what was detected in your source are marked Suggested with the reason — "source is hard telecine (3:2 pulldown)", "anamorphic source (10:11) — check pixel aspect" — and ones that can't apply say so, such as deinterlacing a progressive file. Nothing is switched on or off for you; detection is sometimes wrong, so it stays a hint. Filters whose problems can't be spotted from the file alone — dirt, scratches, grain, halos — say nothing either way.
Where two filters work against each other, the one that loses out says so when you open it: sharpening that would put back the halos Dehalo has just removed, for instance.
DVDs and folders
From a disc: insert it and click the disc icon in the toolbar, or Open DVD on the drop zone. VapourBox reads the disc structure and shows a title picker with duration, resolution, chapters and audio tracks. Select a title and Add to Queue — it's extracted to a temporary file, then analyzed and queued like any other video.
From a ripped folder: drag in a folder containing VIDEO_TS, the VIDEO_TS folder itself, or a flat rip — the VIDEO_TS contents (VIDEO_TS.IFO, VTS_01_1.VOB, …) sitting directly in a folder named after the disc. The title picker appears automatically in all three cases.
A folder of loose files: drag it in, or use Open Folder — the folder is scanned recursively and everything found is queued.
VapourBox decides between the two by looking for a DVD IFO: a folder is only treated as a disc if one is present, and a flat rip additionally needs at least one .VOB, so a stray VIDEO_TS.IFO beside ordinary videos won't divert the whole folder into the title picker.
Encrypted discs. Most commercial DVDs use CSS encryption. VapourBox reads discs via libdvdread, which can load libdvdcss at runtime to decrypt them, but libdvdcss is not bundled — install it separately if you need it. Unencrypted discs (home recordings, some independent releases) work without it.
- macOS:
brew install libdvdcss - Windows: download
libdvdcss-2.dllfrom VideoLAN and place it next tovapourbox.exe - Linux:
sudo apt install libdvdcss2·sudo dnf install libdvdcss(RPM Fusion) ·sudo pacman -S libdvdcss
CSS decryption may carry legal restrictions in some jurisdictions. VapourBox does not endorse or support it; libdvdcss is a third-party library loaded automatically by libdvdread if present on the system.
Preview, timeline and trimming
- Click a thumbnail to jump to that position; drag to scrub. The transport buttons step one frame at a time or jump to either end.
- The before/after preview zooms with the mouse wheel or pinch and pans once zoomed; double-click resets it. 1:1 in its bottom-left corner shows the frame at actual pixels — one video pixel per screen pixel, the way to judge fine detail — and Fit goes back to the whole frame. The readout there is the zoom as a percentage of actual pixels.
- Mouse wheel or pinch zooms the timeline, keeping the point under the cursor in place; Shift+wheel or a two-finger swipe pans a zoomed timeline. The − / + / fit buttons under the strip do the same around the playhead.
- Set In / Set Out mark an export range so only part of the source is processed — useful for trying settings on a short section first. ✕ removes the markers.
- Panel dividers are draggable, so the preview or the filter list can take whatever share of the window suits the job.
Keyboard shortcuts
The keys follow common video-editor conventions. Every button that has one shows it in its tooltip, and ? (or the keyboard button in the toolbar) lists them all.
| Action | macOS | Windows / Linux |
|---|---|---|
| Previous / next frame | ← / → | ← / → |
| Back / forward 10 frames | ⇧← / ⇧→ | Shift+← / Shift+→ |
| Go to start / end | Home / End | Home / End |
| Set in / out point | I / O | I / O |
| Go to in / out point | ⇧I / ⇧O | Shift+I / Shift+O |
| Clear in and out points | ⌥X | Alt+X |
| Preview at actual pixels (1:1) / fit | ⌘1 / ⌘0 | Ctrl+1 / Ctrl+0 |
| Zoom timeline in / out / to fit | = / - / \ | = / - / \ |
| Add videos | ⌘O | Ctrl+O |
| Start processing | ⌘↩ | Ctrl+Enter |
| Settings | ⌘, | Ctrl+, |
Shortcuts without ⌘/Ctrl are ignored while you are typing in a text box, so they never get in the way of entering a filename or a value.
Themes
Settings → General → Appearance picks the colour theme: Auto (follows the system light/dark setting, the default), Light, Dark, Monokai, or Pride (rainbow accents, following the system light/dark setting). It applies immediately and is remembered.
Deinterlacing and telecine in more depth
- All 70+ QTGMC parameters are exposed, from Draft to Placebo.
- Higher-precision deinterlacing, both opt-in: interlaced 4:2:0 stores chroma per field, so the pass can upsample to 4:2:2 first; separately it can run at 16-bit, avoiding rounding accumulated across QTGMC's many internal steps. Both are off by default and each states what it costs.
- Soft telecine pulldown flags can be stripped without re-encoding fields.
- Edge-directed upscaling — NNEDI3 or EEDI3 integer doubling with full neuron, quality and prescreener control, plus seven resampling kernels with per-kernel tuning.
- AI upscaling at 2x or 4x on the GPU: Real-ESRGAN (sharpest, fastest), Real-CUGAN (gentler, with three denoise strengths) or AnimeJaNai (three model sizes trading detail for speed, and a Sharp variant; an optional non-commercial download). HD frames are processed in tiles, so 1080p fits in a laptop GPU's memory.
- Descale tuning — the studio's kernel (bilinear, bicubic with its b/c, Lanczos with its taps, Spline16/36/64) and native height, which Detect fills in, plus an explicit native width, edge handling, and how far a pixel may miss before it counts as credits or text and is kept.
Presets
Presets store the whole pipeline plus encoding settings, and the menu splits them by the question they answer.
For Your Source — pick the one matching what you have and you can ignore the pass list entirely: VHS Cleanup, DV Camcorder Tape, PAL DVD / Broadcast, DVD IVTC, Anime DVD, 8mm / Super 8 Film Scan, Low-Light Phone / Camera Video.
Quality Only — Fast, Balanced and High Quality just deinterlace, at three levels of effort. Use one when the picture is already clean.
Your own presets save alongside them and persist across sessions, and can be exported to a file and imported — so a setup that works for a particular camcorder or capture card can be handed to someone else.
An imported preset is shown to you before it is installed, because a preset can carry custom VapourSynth and FFmpeg arguments, and those run on your machine when you process a video. If it does, the code is displayed and you can import the preset without it.
Advanced options
Each filter shows a short, curated set of choices by default. Settings → General → Show advanced options reveals the rest — every method and every parameter, in every filter. The switch beside a filter's options does the same thing; either way it applies everywhere and is remembered.
Turning it off never changes what a filter is doing: if a preset selected an advanced method, that method stays selected and stays visible.
Temporary files
Scratch files — generated scripts, preview frames, job files, extracted DVD titles — go to the system temp directory. DVD extraction can need several GB, so if the system temp is on a small or slow volume it can be redirected: Settings → General → Temporary Files. The ✕ beside the path resets it to the default. The setting persists and applies to the next job.
Existing output files
When a job's output file already exists, VapourBox asks what to do by default. Settings → General → Existing Output Files can change that to always overwrite, or always write to a new, numbered filename (name (2).ext, name (3).ext, …) instead of touching the existing file. The dialog itself links back here.
Shutting down after an overnight queue
While a queue is running, tick Shut down computer when the queue finishes under the progress bar. When the last video is done — even if some failed — VapourBox counts down for 60 seconds, with Cancel Shutdown and Shut Down Now buttons, and then asks the system to shut down. Cancelling the queue switches the option off again; it applies only to the run it was ticked for.
If any video failed, its log is saved before the shutdown as <output name>.error.log, next to where its output would have been written (or next to the source, if that folder can't be written to).
The shutdown is an ordinary one, never forced, so an app with unsaved changes can stop it and the computer stays on. VapourBox checks when you tick the option that the shutdown would actually be allowed, and says why if not:
- macOS asks once for permission for VapourBox to control System Events. Answer it then — if it's refused, allow it later in System Settings → Privacy & Security → Automation.
- Linux needs systemd-logind and an account allowed to power off without a password (normally true for the one person logged in at the desktop).
Settings → General → "Report a bug or give feedback" opens the issue tracker. Reports about specific problem sources are useful — several fixes in VapourBox came from them.
See docs/BUILDING.md for build instructions, project structure and development workflow.
Free software under the GNU General Public License, version 3 or (at your option) any later version. Full license texts and third-party attributions are in licenses/.
Stuart Cameron — stuart-cameron.com
- QTGMC by Vit, originally based on TempGaussMC_beta2 by Didée — the deinterlacing algorithm
- VIVTC by Fredrik Mellbin — VFM field matching and VDecimate for inverse telecine
- VapourSynth by Fredrik Mellbin — video processing framework
- havsfunc, maintained by HolyWu — the VapourSynth script library QTGMC and many other passes come from
- MVTools — the motion estimation QTGMC is built on; VapourSynth port by dubhater, from the AviSynth plugin by Manao with later work by Fizick, Pinterf and the SVP team
- NNEDI3 by Kevin Stone (tritical) — the edge-directed interpolator behind QTGMC, via znedi3 by sekrit-twc and dubhater's nnedi3, whose NEON kernels are what make it fast on Apple Silicon and ARM Linux
- akarin by Akarin, now maintained by the Jaded Encoding Thaumaturgy project — an LLVM-JIT expression evaluator. VapourSynth's own compiler for filter expressions is x86-only, so on ARM every expression was interpreted once per pixel; this is the single biggest reason Apple Silicon is now several times faster
- fmtconv by Firesledge (Laurent de Soras) — format conversion and resampling
- zsmooth by Austin Dworaczyk Wiltshire — chroma denoising (CCD, originally written by Sergey Stolyarevsky for VirtualDub) and the RemoveGrain family
- dubhater — a long list of VapourSynth ports this app relies on: MVTools, nnedi3, AWarpSharp2, TemporalMedian, FluxSmooth, Bifrost and the
adjustTweak port - HolyWu — the VapourSynth ports of DFTTest, TTempSmooth, TCanny, CTMF, DCTFilter, Deblock, AddGrain, CAS, EEDI3 and NNEDI3CL
- mawen1250 — Retinex, BM3D and mvsfunc
- Edoardo Brunetti — KNLMeansCL
- Frechdachs (maintained by Jaded Encoding Thaumaturgy) — descale
- vszip by Julek — CLAHE, the local-contrast lift in Color Correction
- RIFE by hzwer (with Megvii) — the frame interpolation network, run through HolyWu's VapourSynth plugin (built on nihui's rife-ncnn-vulkan and Tencent's ncnn), with MoltenVK for Vulkan on macOS
- Real-ESRGAN by Xintao Wang and Real-CUGAN by bilibili — the AI upscaling networks, run through AmusementClub's vs-mlrt (VSNCNN)
- AnimeJaNai by the-database — the anime upscaling models offered as an optional download (CC BY-NC-SA 4.0, non-commercial use only)
- whisper.cpp by the ggml authors and OpenAI's Whisper models — speech recognition for subtitle generation, an optional download
- libdvdread by VideoLAN — DVD reading and navigation
- FFmpeg project — video encoding
- Hybrid by Selur — inspiration for this project
Full licence texts, copyright holders and the complete list of bundled
components are in licenses/NOTICES.txt. If any
attribution there is wrong or names you incorrectly, please
open an issue — it will
be fixed.
Pre-built binary sources
Where a component is taken pre-built rather than compiled from source, it comes unmodified from one of these, and thanks are owed to the people who maintain them:
- yuygfgg/Macos_vapoursynth_plugins — pre-built ARM64 VapourSynth plugins for macOS
- Stefan-Olt/vs-plugin-build — cross-platform VapourSynth plugins (arm64 + x86_64; used for
tmedian) - evermeet.cx — static x86_64 FFmpeg/FFprobe builds for the Intel macOS bundle
- ffmpeg.martin-riedl.de — static arm64 FFmpeg/FFprobe builds for the Apple Silicon bundle
- BtbN/FFmpeg-Builds — static FFmpeg/FFprobe builds for Windows and Linux
- python-build-standalone — the relocatable CPython used on macOS and Linux
- Homebrew — the
whisper-cppbottle used for the macOS speech-recognition add-on
The Intel (x64) bundle additionally builds its support libraries (zimg, fftw, libdvdread, boost) from source targeting macOS 12, so it runs on Monterey; the Apple Silicon (arm64) bundle is built for the current macOS and targets macOS 15.
The akarin plugin is the one component the Intel bundle does not ship: its only build targets macOS 14, which would raise the Intel floor from Monterey. Intel Macs already have VapourSynth's own x86 expression compiler, so they lose nothing by it.
