I just read about this on a recent entry about FFmpeg, and thought it might interest the HN folks.
Note to mods: The link has a title that could be confusing and isn't descriptive at all, so for the HN entry I took the title from the source code repo, which seems much better (while the main domain seems like the more interesting thing to share).
If it's anywhere near AVISynth as it claims, then it is a format that has been around for longer than ffmpeg. The ffmpeg filter chain is a gnarly beast, and can be difficult for some people to grok. The more complex it gets, the worse it is in legibility. It is just a single command after all. AVISynth, and presumably VapourSynth, allows you to write the filter chains formatted like a program. It's just easier for people to grasp. You then feed that as the source to ffmpeg so the command line becomes very very simple
My biggest question is if the video processing is at least at 10bit. AVISynth fell out of usability for me because at its core it was 8bit.
VapourSynth goes out to 10 bit, 12 bit, 16 bit, FP16/FP32 and all sorts of other weird formats.
Its also Python. Which is nice, in terms of readability. And automatically threaded through pipelining, unlike Avisynth.
All of this makes it extremely good for hooking into PyTorch. For instance, VS will automatically queue up processed frames for diffusion or upscaling models. I even tried to hack MVTools into a diffusion video script for temporal stability, with (so far) limited success.
Actually installation is an Achilles Heel of VapourSynth.
Its not a normal pip installable package, instead its kinda like a seperate Python runtime. Installing plugins without 3rd party software is kinda finicky too, and they are spread all over the place.
allowing to use and what it does with them are different issues. AVISynth was an 8bit pipeline even if you fed it a 10bit source. there were various attempts at getting the pipeline to 10bit, but by the time I moved away from using it, it was all experimental builds. there were also plenty of filters/plugins that were also 8bit only.
for its day, AVISynth was an amazing tool. it was just one of those code bases that was "written in a weekend" that became bigger than ever anticipated and had nearly unsurmountable tech debt. it was pure magic in what it could do though, so it lived far longer than it should.
The AVISynth scripting language has a better function calling syntax than most programming languages, and a very interesting non-strict-evaluation design.
It's a DSL for video editing using python as the backing language. You can do things like "take this video, crop it this way" or "apply noise reduction algorithm xyz" or even "Do AI upscaling". Vapoursynth has a pretty decent collection of 3rd party plugins that can do anything you could imagine to a video.
Note to mods: The link has a title that could be confusing and isn't descriptive at all, so for the HN entry I took the title from the source code repo, which seems much better (while the main domain seems like the more interesting thing to share).