View Full Version : Why is AviSynth still more popular than VapourSynth?
_Al_
1st February 2022, 03:41
RGB adjust could be:
import vapoursynth as vs
from vapoursynth import core
yuv = core.lsmas.LibavSMASHSource(r'D:\yuv_source.mp4')
#format could be RGB24 (8bit) to RGB48 (16bit) or RGBS (floating point)
rgb = core.resize.Point(yuv, format = vs.RGBS, matrix_in_s = '709')
def RGBadjust(rgb, r = 1, g = 1, b = 1, rb = 0, gb = 0, bb = 0, rg = 1.0, gg = 1.0, bg = 1.0):
type = rgb.format.sample_type
size = 2**rgb.format.bits_per_sample
#adjusting bias values rb,gb,bb for any RGB bit depth
rb,gb,bb = map(lambda b: b if size==256 else size/256*b if type==vs.INTEGER else b/255.0, [rb,gb,bb])
#x*r + rb , x*g + gb , x*b + bb
rgb_adjusted = core.std.Expr(rgb, [f"x {r} * {rb} +", f"x {g} * {gb} +", f"x {b} * {bb} +"])
#gamma per channel
planes = [core.std.ShufflePlanes(clips=rgb_adjusted, planes=p, colorfamily=vs.GRAY) for p in [0,1,2]]
planes = [core.std.Levels(planes[p], gamma=g) if not g==1 else planes[p] for p, g in enumerate([rg, gg, bg])]
rgb_adjusted = core.std.ShufflePlanes(clips=planes, planes=[0,0,0], colorfamily = vs.RGB)
return rgb_adjusted
rgb_adjusted = RGBadjust(rgb, r = 1.03, g = 1.03, b = 1.03,
rb = -2.0, gb = -2.0, bb= -2.0,
rg = 1.25, gg = 1.2, bg=1.5)
yuv_adjusted = core.resize.Point(rgb_adjusted, format = vs.YUV420P8, matrix_s ='709')
yuv_adjusted.set_output()
_Al_
1st February 2022, 04:03
ChannelMixer, needs to be tested if it's ok, I do not have 64bit Avisynth channel mixer:
#python code, not php code
import vapoursynth as vs
from vapoursynth import core
def channel_mixer(rgb, RR=100.0, RG=0.0, RB=0.0,
GR=0.0, GG=100.0, GB=0.0,
BR=0.0, BG=0.0, BB=100.0):
"""
example for pixel calculations:
R=146
G=36
B=44
print('new R =', round(0.01*RR*R + 0.01*RG*R + 0.01*RB*R, 0))
print('new G =', round(0.01*GR*G + 0.01*GG*G + 0.01*GB*G, 0))
print('new B =', round(0.01*BR*B + 0.01*BG*B + 0.01*BB*B, 0))
"""
if not rgb.format.color_family == vs.RGB:
raise ValueError('channel_mixer: input clip must be RGB color_family')
planes = [core.std.ShufflePlanes(rgb, planes=p, colorfamily=vs.GRAY) for p in [0,1,2]]
R = core.std.Expr(planes[0], expr = f'0.01 {RR} * x * 0.01 {RG} * x * + 0.01 {RB} * x * +')
G = core.std.Expr(planes[1], expr = f'0.01 {GR} * x * 0.01 {GG} * x * + 0.01 {GB} * x * +')
B = core.std.Expr(planes[2], expr = f'0.01 {BR} * x * 0.01 {BG} * x * + 0.01 {BB} * x * +')
return core.std.ShufflePlanes([R,G,B], planes=[0,0,0], colorfamily = vs.RGB)
clip = core.lsmas.LibavSMASHSource(r'F:\source\video.mp4')
rgb = core.resize.Point(clip, format=vs.RGB24, matrix_in_s='709') #it could be any RGB even float RGBS
clip_out = channel_mixer(rgb, RR=100.0, RG=20.0, RB=-5.0, GR=0.0, GG=100.0, GB=0.0, BR=-20.0, BG=0.0, BB=100.0)
clip_out.set_output()
_Al_
1st February 2022, 07:26
that channel mixer could be much shorter:
#python code, not php code
def channel_mixer(rgb, RR=100.0, RG=0.0, RB=0.0,
GR=0.0, GG=100.0, GB=0.0,
BR=0.0, BG=0.0, BB=100.0):
if not rgb.format.color_family == vs.RGB:
raise ValueError('channel_mixer: input clip must be RGB color_family')
return core.std.Expr(rgb, expr = [f'0.01 {RR} * x * 0.01 {RG} * x * + 0.01 {RB} * x * +',
f'0.01 {GR} * x * 0.01 {GG} * x * + 0.01 {GB} * x * +',
f'0.01 {BR} * x * 0.01 {BG} * x * + 0.01 {BB} * x * +'])
damian101
28th January 2024, 10:26
It isn't...
tormento
31st January 2024, 13:11
My two cents: a proper community.
I got help from many people for AVS+ but the VS one seem like they are elite members of a secret society.
I'd use, if I had help.
FranceBB
31st January 2024, 14:16
Well let's all remember that Avisynth is 23 years, 8 months and 9 days old and it's still being actively developed, so it's no wonder that it's still very popular.
With so many years of development, so many contributors and such a huge community, it's hard to find something nearly as feature rich, stable and widely adopted. :D
scharfis_brain
1st February 2024, 00:32
Is this THE Ben Rudiak-Gould https://www.youtube.com/watch?v=MXWucqZYymA ?
Or is it just a random person with an identical name?
johnmeyer
1st February 2024, 04:24
I got help from many people for AVS+ but the VS one seem like they are elite members of a secret society.
I'd use, if I had help.Very well put. I've had exactly that same thought.
StainlessS
1st February 2024, 04:42
Maybe a poll is due. [incl ver$ of Avs]
amayra
2nd February 2024, 13:21
thia feel like compared C++ to rust language
look how old one of them and how plug-ins have been written for them over years
Boulder
2nd February 2024, 13:40
A sidenote: VapourSynth is just a Python module so you'll basically have to learn at least some Python basics to do anything more advanced.
FranceBB
2nd February 2024, 14:00
you'll basically have to learn at least some Python basics to do anything
I guess time will tell.
The real question is gonna be whether youngsters will pickup Avisynth or VapourSynth.
The reason why I'm saying this is that young people are almost definitely already familiar with some sort of Python scripting so going to VapourSynth would probably make things easier.
I think a lot of people here using Avisynth were around long before VapourSynth was a thing (me included).
Avisynth was born in 2000 and I started doing encoding stuff in June 2006.
On the other hand, if I'm not mistaken, VapourSynth became a thing in 2012 and by then Avisynth was already heavily cemented in the industry among professionals (streaming platforms first like Crunchyroll, Viewster etc and a few broadcasters too), among fansubbers (literally any of the thousands of fansubbing groups were using Avisynth) and also among home users (with a very active community on both Doom9 and videohelp).
For most of us it didn't make sense to move to VapourSynth and learn everything all over again.
I guess the future will tell as time goes on and more youngsters come by...
Boulder
2nd February 2024, 14:10
From what I can see, a lot of Vapoursynth plugin development has died which is not a good thing. For example, MVTools is quite a long way behind the Avisynth version and that one is probably the most generic advanced plugin there is for various needs.
StainlessS
2nd February 2024, 15:38
A sidenote: VapourSynth is just a Python module so you'll basically have to learn at least some Python basics to do anything more advanced.
A succinct/compact intro to Python language. [EDIT: You are expected to be familiar with some other programming language]
Learn X in Y minutes: Where X=Python:- https://learnxinyminutes.com/docs/python/
EDIT: Above link for Python 3, near top has link to Python 2.7.
Looks like VS is Python 3.
Katie Boundary
4th February 2024, 09:18
Boecause British spoellings can gou tou hell.
Marsu42
21st October 2024, 13:28
From what I can see, a lot of Vapoursynth plugin development has died which is not a good thing.
I do hope there will be no constant fork between plugin development of AviSynth and Vapoursynth.
As an AviSynth user with no Python experience I came into contact with VapourSynth by using av1an. Vapoursynth piping and previewing seemed to work just fine.
The convenience of vsrepo and pip seems nice - though as a newbie, it's not easy to understand what is covered by which. In comparison, the avsi scripts are not centralized - i.e. hard or even impossible to find. The same problem with some AviSynth plugins, plus VapourSynth might have helped porting some plugins from x86 to x64.
The Python syntax seems to be completely over the top for basic scripting, but it's not impossible to figure out - and there might be great advantages for complex script development (which doesn't concern me atm).
Alas, VapourSynth reminds me of "dll hell" of former Windows versions. Right now, I'm seeing VapourSynth complaining about the wrong vsplacebo version (though the correct one is installed) and half of the features fail because of an incompatible vstools - everything auto-installed, not using the git versions.
It's a real problem for simple /me if there's no documentation like the AviSynth wiki, but the github pages just point to a Discord server like the repos of https://github.com/Jaded-Encoding-Thaumaturgy and others. For a lot of stuff that seems really interesting I cannot figure it out even looking at the source code, e.g. vs-dehalo, vs-denoise ... and there are no expamples available with an Internet search either.
Last not least, if there's a Python update, you'd better use VapourSynth portable - but that doesn't seem to enable live "file system" previewing of the vpy script.
Considering the 'single point of failure' development of VapourSynth, I wish its future the best. Right now, I'm trying to get back to Avisynth for basic 'just works' stuff.
_Al_
21st October 2024, 23:56
I think you got it pretty good.
There are vapoursynth scripts that are using lots of modules, dependencies and it is used for a trivial tasks, like getting Y plane for example. It can get that weird. I can imagine that a newbie gets lost pretty easily, to gather proper modules and dependencies.
I would strongly recommend while learning vapoursynth to use only basic vapoursynth functions, then proceed to gather some basic denoise filters and mask filters (using sobel etc.) try to make things work and only then.
Basically to follow https://www.l33tmeatwad.com/vapoursynth101 for example, that website I'd really recommend to start with.
Only then, after feeling comfortable, trying to get some modules and start to work with them if necessary, but as I said, you can quickly end up using scripts from web that start loading some 10 unnecessary modules for basic things. Because script users/makers use them often and just load routinely bunch of them anyway because they need one little filter only finding out they need other modules to have first. Anime users made vapoursynth going in the first place, but on the backhand of it, lots of scripts are loaded with many dependencies. There is many wrappers used for other wrappers and it could end up looking really confusing.
Anime users! thanks for vapoursynth scripts, but try to go basic functions if you can. :-)
Frank62
23rd October 2024, 14:52
Basically to follow https://www.l33tmeatwad.com/vapoursynth101 for example, that website I'd really recommend to start with.
Thanks for this! :thanks:
Trixter
4th February 2025, 05:40
Is this THE Ben Rudiak-Gould https://www.youtube.com/watch?v=MXWucqZYymA ?
Or is it just a random person with an identical name?
His hyphenate last name is highly uncommon, and the person singing matches other photos known to be Ben, so it is almost certain that video does indeed portray Ben Rudiak-Gould.
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.