Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion.

Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules.

 

Go Back   Doom9's Forum > Capturing and Editing Video > Avisynth Usage

Reply
 
Thread Tools Search this Thread Display Modes
Old 18th January 2022, 20:13   #1  |  Link
Reclusive Eagle
Registered User
 
Join Date: Oct 2021
Posts: 83
Why is AviSynth still more popular than VapourSynth?

Just a question, not like it matters since VapourSynth can natively load Avisynth Plugins and there are ways to load Avsi's.

My question is, if Vapoursynth is like 10 years old at this point and is the new evolution of Avisynth with backward compatibility, why is Avisynth still the most used?
Even the forums are more active and when it comes to a lot of plugins, You need to look at the Avisynth documentation as well.

Is it because Avisynth has simpler commands that are easier to read?
Is it because native Python VapourSynth is more complicated than what its worth?

Lack of native plugin support?
Lack of documentation?

Or is Avisynth actually more powerful than VapourSynth and I am missing something?

I know QTGMC is better on AviSynth and tbilateral removes more artifacts with the same settings.
But from what I've experienced VapourSynth is so, so much faster since many of the plugins are getting Cuda support.

So even though there aren't as many plugins. There are really really high end plugins based on Cuda that cut render times by like 10x and there is backwards compatibility.

So what am I missing?
I'm not saying one is better or not it doesn't matter I'm just genuinely curious why AviSynth + virtual dub is still the preferred method
Reclusive Eagle is offline   Reply With Quote
Old 18th January 2022, 21:28   #2  |  Link
VoodooFX
Banana User
 
VoodooFX's Avatar
 
Join Date: Sep 2008
Posts: 989
AvS is simpler to use, more scripts, more plugins, better documentation and more examples of stuff.
AvSPMod is more comfortable than VS Editor.
Latest VS doesn't support Win7 and lower.
And I used AvS for a decade... before I heard that VS exist. I heard that MT is better there, but I get 100% CPU usage with AvS on quad, so...


Dunno where VS is much faster as I didn't see such comparisons.

PS
I know Python, and I don't know much about "AviSynth code"... I just type something and it usually works from the first try in AvS...
VoodooFX is offline   Reply With Quote
Old 18th January 2022, 22:06   #3  |  Link
Dogway
Registered User
 
Join Date: Nov 2009
Posts: 2,361
Personally because Python is noisier on the eyes, harder to read, and I have worked with Python for a Blender addon before and still don't like it, I'm not sure why all the fuss about it.
The syntax is also too verbose and strange:

"x if true else y", are we talking Japanese (cause reverse syntax)?

I would rather see a Julia adapted framework, yes it's newer but it's very well thought and syntax aligns well with Avisynth
__________________
i7-4790K@Stock::GTX 1070] AviSynth+ filters and mods on GitHub + Discussion thread

Last edited by Dogway; 19th January 2022 at 06:05.
Dogway is offline   Reply With Quote
Old 18th January 2022, 23:13   #4  |  Link
Reclusive Eagle
Registered User
 
Join Date: Oct 2021
Posts: 83
Quote:
Originally Posted by Dogway View Post
Personally because Python is noisier on the eyes, harder to read, and I have worked with Python for a Blender addon before and still don't like it, I'm not sure why all the fuzz about it.
The syntax is also too verbose and strange:

"x if true else y", are we talking Japanese (cause reverse syntax)?

I would rather see a Julia adapted framework, yes it's newer but it's very well thought and syntax aligns well with Avisynth
Depends on how it is formatted I guess.
If VS had options to color code besides Pythons native # or """text"""
That would be really really helpful honetsly
Reclusive Eagle is offline   Reply With Quote
Old 18th January 2022, 23:14   #5  |  Link
real.finder
Registered User
 
Join Date: Jan 2012
Location: Mesopotamia
Posts: 2,587
Quote:
Originally Posted by Dogway View Post
Personally because Python is noisier on the eyes, harder to read, and I have worked with Python for a Blender addon before and still don't like it, I'm not sure why all the fuzz about it.
The syntax is also too verbose and strange:

"x if true else y", are we talking Japanese (cause reverse syntax)?

I would rather see a Julia adapted framework, yes it's newer but it's very well thought and syntax aligns well with Avisynth
I totally agree with you, but most Anime encoders in discord like vs and say that avs is not a language and it is difficult to read through their work in porting avsi to vs

anyway I personally see avs language is suitable for use in video purposes, also we got many new improvements and additions in avs+ syntax like arrays and loops, although at least for me reading old avs (not plus) functions isn't that hard, or at least isn't as they said

also I don't like how vs dependence on Python at least in windows, maybe I will care more about vs if the vs adopted Python as embedded python that is become one dll (as avisynth.dll in avs/avs+) that don't need download python to work so it will independent from Python in the system (kinda like avspmod or maybe Blender), maybe avs/avs+ can do this with Python or another language in the future as optional alternative of .avsi with also https://forum.doom9.org/showthread.p...ik#post1822289
__________________
See My Avisynth Stuff

Last edited by real.finder; 18th January 2022 at 23:34.
real.finder is offline   Reply With Quote
Old 18th January 2022, 23:28   #6  |  Link
Reclusive Eagle
Registered User
 
Join Date: Oct 2021
Posts: 83
Quote:
Originally Posted by VoodooFX View Post
AvS is simpler to use, more scripts, more plugins, better documentation and more examples of stuff.
AvSPMod is more comfortable than VS Editor.
Latest VS doesn't support Win7 and lower.
And I used AvS for a decade... before I heard that VS exist. I heard that MT is better there, but I get 100% CPU usage with AvS on quad, so...


Dunno where VS is much faster as I didn't see such comparisons.

PS
I know Python, and I don't know much about "AviSynth code"... I just type something and it usually works from the first try in AvS...
I feel like the lack of documentation is 99% Plugin creator's fault.
Most of the avisynth mods are converted to .py files and then all they do is link back to the original avisynth wiki.

Which is 100% not an issue... if it worked exactly the same way as the avisynth plugins. However most of the time they don't. Definitions are changed, removed or added.
They aren't updated with the current avisynth plugins so the VapourSynth version can be 4 years old vs Avisynth that is updated every 2 months etc.


Nvm the fact that for the dll files. Sometimes VapourSynth creators refuse to even compile their stuff. Or the release version is 4 years old but the new code
is uncompiled source code thats 2 weeks old and you need to attempt to sniff the air for information on how to build the solution in visual studios.
If you even have or know how to use Visual Studios. And even then its a massive pain


Nvm the fact that the Vapoursynth wiki (that was once available to the public)
http://www.vapoursynth.com/doc/plugins.html

Has been temporarily removed for the past 2 years for the new site leaving only basic documentation for native VapourSynth commands.


If we had the Wiki and if plugin creators would actually do like a fraction of a percentage of effort in documenting their changes for users
I'm sure Avisynth wouldn't be the default
Reclusive Eagle is offline   Reply With Quote
Old 18th January 2022, 23:34   #7  |  Link
ChaosKing
Registered User
 
Join Date: Dec 2005
Location: Germany
Posts: 1,795
I think if pinterf hadn't made so many improvements and maintenance to avs+, more people would have switched to VS already.

@Dogway there was an attempt to bring Julia to VS here https://github.com/mantielero/VapourSynth.jl
__________________
AVSRepoGUI // VSRepoGUI - Package Manager for AviSynth // VapourSynth
VapourSynth Portable FATPACK || VapourSynth Database
ChaosKing is offline   Reply With Quote
Old 18th January 2022, 23:41   #8  |  Link
real.finder
Registered User
 
Join Date: Jan 2012
Location: Mesopotamia
Posts: 2,587
If the bottom question of the op is how do we make vs more popular than avs/avs+ (which vs already may popular nowadays in Anime fansub encoders at least in Discord) then I think the place to ask is not here but https://forum.doom9.org/forumdisplay.php?f=82
__________________
See My Avisynth Stuff
real.finder is offline   Reply With Quote
Old 19th January 2022, 02:21   #9  |  Link
Reel.Deel
Registered User
 
Join Date: Mar 2012
Location: Texas
Posts: 1,666
I was an early user of VapourSynth when it was in its infancy. I am no programmer at all but I found my way thru and learned how to use it, at least the basics. It was really limited back then in terms of plugins and scripts. Then not long after came AviSynth+. I went back to AviSynth, and while it still had no proper high bit depth support I felt that I was just much more productive using it. For one, I think the documentation in VapourSynth and some of the external plugins/scripts assume that anyone using it is familiar with programming and sometimes the examples are a little to vague to help the users that are not well versed in Python. In the end it felt I spent more time in trying to make something work rather than doing any actual tasks. I still have VS installed and use it from time to time, but for the time being AVS+ does just about everything that VS does, as far as my needs go, and its easy enough for me to use and figure things out.

Quote:
Originally Posted by ChaosKing View Post
I think if pinterf hadn't made so many improvements and maintenance to avs+, more people would have switched to VS already.
Indeed.

Last edited by Reel.Deel; 19th January 2022 at 02:24.
Reel.Deel is offline   Reply With Quote
Old 19th January 2022, 08:03   #10  |  Link
FranceBB
Broadcast Encoder
 
FranceBB's Avatar
 
Join Date: Nov 2013
Location: Royal Borough of Kensington & Chelsea, UK
Posts: 2,903
I haven't really used VapourSynth, I've been an Avisynth user my entire life.
I started back in 2006 when almost everything was limited to yv12 and YUY2 and what a journey has been.
Nowadays we have several sampling supported, native high bit depth (after a brief 16bit stacked/interleaved period) up to 32bit float, we have multithreading, intrinsics, support for OS as legacy as Windows XP up to Windows 11, a work-in-progress cross-platform support for Linux and Mac OSX, a still developed CUDA hardware acceleration support, I mean, Avisynth has come a long way, indeed.
To me, starting with a brand new frameserver would be unthinkable 'cause I would have to learn how to code in Python and how to use its functions etc and I don't really want to start over given how familiar I am with Avisynth.
I mean, sure, sometimes I still have my doubts and I still ask the community (and bother StainlessS between a beer and another, in particular when I'm stuck writing my own functions ehehehehe), but if it comes down to my daily job in which I receive files from different companies and I have to encode them, I go on auto-pilot 90% of the time (TL;DR I'm writing a script and I know almost all the functions to call and their parameters as they're "hardcoded" in my mind).

About the IDE, AVSPmod mod has been a great success and I'm really thankful to Gispos for keeping it updated and still developing it.

By the way, sometimes people say that Python is more human readable and intuitive and easier to understand than C++ (or pseudo-C++ as the one used in Avisynth), but honestly, how is this:

Code:
import vapoursynth as vs
core = vs.get_core(threads=4)
ret = core.lsmas.LibavSMASHSource(source="Sample.mov")
ret = core.fmtc.resample (clip=ret, w=720, h=576, css="444", kernel="spline36")
ret = core.fmtc.matrix (clip=ret, mats="709", matd="601")
ret = core.fmtc.resample (clip=ret, css="420")
ret = core.fmtc.bitdepth (clip=ret, bits=10)
retFinal = ret
retFinal.set_output()
easier than this:

Code:
LWLibavVideoSource("Sample.mov")

Spline36Resize(720, 576)

Matrix(from=709, to=601, bitdepth=8)

ConverttoYUV420()

ConvertBits(10)

Last edited by FranceBB; 19th January 2022 at 08:11.
FranceBB is offline   Reply With Quote
Old 19th January 2022, 08:16   #11  |  Link
Reel.Deel
Registered User
 
Join Date: Mar 2012
Location: Texas
Posts: 1,666
Quote:
Originally Posted by FranceBB View Post
easier than this:
Can be even easier

Code:
LWLibavVideoSource("Sample.mov")

z_ConvertFormat(720, 576, pixel_type="YUV420P10", colorspace_op="709:709:709:full=>470bg:601:170m:full")
Reel.Deel is offline   Reply With Quote
Old 19th January 2022, 10:01   #12  |  Link
takla
Registered User
 
Join Date: May 2018
Posts: 184
Quote:
But from what I've experienced VapourSynth is so, so much faster since many of the plugins are getting Cuda support.
Well there is your answer. Last time I checked, nvidia only had ~60% market share. Plus, the way you write a script of commands in vapoursynth isn't exactly identical to avisynth, which is another hurdle for people that would like to switch.
takla is offline   Reply With Quote
Old 19th January 2022, 10:01   #13  |  Link
VoodooFX
Banana User
 
VoodooFX's Avatar
 
Join Date: Sep 2008
Posts: 989
Quote:
Originally Posted by FranceBB View Post
By the way, sometimes people say that Python is more human readable and intuitive and easier to understand than C++ (or pseudo-C++ as the one used in Avisynth)
Python is easier to learn in comparison to C++, readability probably is similar when you actually know C++/Python.
To write/read Avisynth's pseudo code you don't need to learn any language, it's pretty intuitive.

Look at the latest VS issue posted [how to get Y from video], beginner needs to read documentation for every step:
Code:
clip = core.std.ShufflePlanes(clip, planes=[0], colorfamily=vs.GRAY)
When usually in AvS you intuitively can do without reading documentation:
Code:
ExtractY
PS
I see only one reason to choose VS over AvS - if you are some 'exotic' OS user.

Last edited by VoodooFX; 19th January 2022 at 11:56.
VoodooFX is offline   Reply With Quote
Old 19th January 2022, 11:52   #14  |  Link
FranceBB
Broadcast Encoder
 
FranceBB's Avatar
 
Join Date: Nov 2013
Location: Royal Borough of Kensington & Chelsea, UK
Posts: 2,903
Quote:
Originally Posted by VoodooFX View Post
To write/read Avisynth's pseudo code you don't need to learn any language, it's pretty intuitive.
That's why we love it.
FranceBB is offline   Reply With Quote
Old 19th January 2022, 13:12   #15  |  Link
kedautinh12
Registered User
 
Join Date: Jan 2018
Posts: 2,156
If avs can port some Improving Video Super-Resolution like basicvsr++ from Vapoursynth. It's sweet
kedautinh12 is offline   Reply With Quote
Old 19th January 2022, 13:32   #16  |  Link
WolframRhodium
Registered User
 
Join Date: Jan 2016
Posts: 162
Quote:
Originally Posted by FranceBB View Post
By the way, sometimes people say that Python is more human readable and intuitive and easier to understand than C++ (or pseudo-C++ as the one used in Avisynth), but honestly, how is this:

Code:
import vapoursynth as vs
core = vs.get_core(threads=4)
ret = core.lsmas.LibavSMASHSource(source="Sample.mov")
ret = core.fmtc.resample (clip=ret, w=720, h=576, css="444", kernel="spline36")
ret = core.fmtc.matrix (clip=ret, mats="709", matd="601")
ret = core.fmtc.resample (clip=ret, css="420")
ret = core.fmtc.bitdepth (clip=ret, bits=10)
retFinal = ret
retFinal.set_output()
easier than this:

Code:
LWLibavVideoSource("Sample.mov")

Spline36Resize(720, 576)

Matrix(from=709, to=601, bitdepth=8)

ConverttoYUV420()

ConvertBits(10)
reference VapourSynth re-implementation:
Code:
import avs_syntax
globals().update(avs_syntax.env)

LWLibavSource("Sample.mov")

resample(w=720, h=576, css="444", kernel="spline36")

matrix(mats="709", matd="601")

resample(css="420")

bitdepth(bits=10)

last().set_output()
helper script (avs_syntax.py)
Code:
from vapoursynth import core

last = None

def wrapper(f):
    def inner(*args, **kwargs):
        global last
        if len(args):
            last = f(*args, **kwargs)
        else:
            last = f(last, **kwargs)
        return last
    return inner

env = {f.name:wrapper(f) for p in core.plugins() for f in p.functions()}
env["last"] = lambda: last

Last edited by WolframRhodium; 19th January 2022 at 13:41.
WolframRhodium is offline   Reply With Quote
Old 19th January 2022, 13:47   #17  |  Link
VoodooFX
Banana User
 
VoodooFX's Avatar
 
Join Date: Sep 2008
Posts: 989
Quote:
Originally Posted by kedautinh12 View Post
If avs can port some Improving Video Super-Resolution like basicvsr++ from Vapoursynth. It's sweet
How this kind of destruction is sweet?



Quote:
Originally Posted by Earthnuker View Post
very little noticeable impact on the quality, that is really impressive!

Last edited by VoodooFX; 19th January 2022 at 13:49.
VoodooFX is offline   Reply With Quote
Old 19th January 2022, 17:18   #18  |  Link
StainlessS
HeartlessS Usurer
 
StainlessS's Avatar
 
Join Date: Dec 2009
Location: Over the rainbow
Posts: 10,980
I did not take a lot of notice of vs in the past due to its non support for audio,
I believe this is no longer the case [to some degree].
__________________
I sometimes post sober.
StainlessS@MediaFire ::: AND/OR ::: StainlessS@SendSpace

"Some infinities are bigger than other infinities", but how many of them are infinitely bigger ???
StainlessS is offline   Reply With Quote
Old 19th January 2022, 17:51   #19  |  Link
Boulder
Pig on the wing
 
Boulder's Avatar
 
Join Date: Mar 2002
Location: Finland
Posts: 5,731
Multithreading-wise Vapoursynth is better since that was designed there from the start. I think cache management and memory utilization is also better, especially with the latest API.

The syntax is hard to grasp for anyone who has not done any programming. Then again, the language is very powerful since you can do anything that Python can.
__________________
And if the band you're in starts playing different tunes
I'll see you on the dark side of the Moon...
Boulder is offline   Reply With Quote
Old 19th January 2022, 18:01   #20  |  Link
Zarxrax
Registered User
 
Join Date: Dec 2001
Posts: 1,219
In addition to other reasons people have already stated like the syntax in vapoursynth being more complex, I really dislike python in general because stuff tends to simply break on me.
Every python app you use has tons of other dependencies that you need to install.
I had vapoursynth running about half a year ago. Then a few weeks ago I tried to run it again and it simply didn't work anymore. I eventually got it working again by updating it or something, but the point is that it just stopped working, likely because something else on my system changed. With Avisynth, I simply install it and that's it. I don't have to worry about some weird dependency breaking it. For a general user who doesn't do python programming day in and day out, stuff like this just makes things difficult.
Zarxrax is offline   Reply With Quote
Reply

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 10:09.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.