Log in

View Full Version : Avisynth+


Pages : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 [26] 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112

qyot27
20th September 2015, 17:49
Development has entered a hiatus again, so there's nothing past r1825 to build (pull requests notwithstanding, but aside from #64 those wouldn't add very much to the end-user's experience).

I nearly start having an anxiety attack when I try to jump back into working on the SIMD splitting necessary for the Linux (or generally GCC, really) branch. The RC1 integration majorly sidetracked it.

burfadel
21st September 2015, 02:29
Development has entered a hiatus again, so there's nothing past r1825 to build (pull requests notwithstanding, but aside from #64 those wouldn't add very much to the end-user's experience).

I nearly start having an anxiety attack when I try to jump back into working on the SIMD splitting necessary for the Linux (or generally GCC, really) branch. The RC1 integration majorly sidetracked it.

Ah ok, all good! Has anyone attempted merging the latest Avisynth branch with Avisynth+ recently?

qyot27
21st September 2015, 05:09
There is amazingly little that changed between 2.6 RC1 (which was already merged into AviSynth+ in the early 1700s revision range) and 2.6.0 Final that were a concern to avsplus, or otherwise. The changes that do apply to avsplus are in the RC2 integrate branch/pending pull request (https://github.com/AviSynth/AviSynthPlus/pull/59) - which AFAICT, along the whatever the resolution of the QTGMC slowdown issue a few posts back happens to be, are really all that are blocking 0.2 being tagged and released.

If classic's CVS isn't beyond the state of 2.6.0, then there's nothing else to merge from classic at the moment. Finding that out basically requires running a full cvsimport and doing a commit comparison unless you want to wander aimlessly through Sourceforge's CVS webviewer. The last time I did that was just after 2.6.0 was released.

tormento
23rd September 2015, 10:56
I have tried to search and read the wiki but can't find:
- which is the criteria to put a plugin inside plugin or plugin+?
- is there a list of tested plugins that fill that criteria?

Groucho2004
23rd September 2015, 11:09
I have tried to search and read the wiki but can't find:
- which is the criteria to put a plugin inside plugin or plugin+?
- is there a list of tested plugins that fill that criteria?
Most plugins that work with 2.6 should work with AVS+.

However, AVS+ r1576 (the "official" stable version) supports only interface version 5. There are already a few plugins that are based on interface version 6 (KNLMeansCL for example), so these won't work. Also, the latest builds of ffmpeg require interface version 6. A workaround would be to install r1576 and then replace the DLLs with r1825.

tormento
23rd September 2015, 11:21
Most plugins that work with 2.6 should work with AVS+.

However, AVS+ r1576 (the "official" stable version) supports only interface version 5. There are already a few plugins that are based on interface version 6 (KNLMeansCL for example), so these won't work. Also, the latest builds of ffmpeg require interface version 6. A workaround would be to install r1576 and then replace the DLLs with r1825.
Thanks for your reply and I still haven't understood which is the difference between plugin and plugin+ directory. :(

ryrynz
23rd September 2015, 11:22
I really wish development of this would start up again soon.. getting this is a fully workable state to finally replace AvisynthMT would be great.

tormento
23rd September 2015, 11:31
I am playing back and forth between Avisynth 2.6.0MT and AviSynth+ 1825 MT, testing speed and image quality.

I went thru the following image corruption.

AviSynth output:
http://i.imgur.com/8MGljqrm.jpg (http://imgur.com/8MGljqr)

from script:
SetMTMode(3)
SetMemoryMax(2048)
LoadPlugin("D:\eseguibili\media\DGDecIM\DGDecodeIM.dll")
DGSourceIM("E:\in\2_01 favoloso mondo di Amelie, Il\amelie.dgi",engine=1)
SetMTMode(2)
CompTest(1)
ChangeFPS(last,last,true)
Crop(0,132,0,-140)
SMDegrain (tr=4,PreFilter=4,thSAD=400,contrasharp=false,refinemotion=false,plane=4,chroma=true,lsb=true,mode=6)


AviSynth+ output:
http://i.imgur.com/PXXdVqam.jpg (http://imgur.com/PXXdVqa)
from script:
SetFilterMTMode("DEFAULT_MT_MODE", 2)
SetFilterMTMode("DGSourceIM", 3)
SetMemoryMax(2048)
LoadPlugin("D:\eseguibili\media\DGDecIM\DGDecodeIM.dll")
DGSourceIM("E:\in\2_01 favoloso mondo di Amelie, Il\amelie.dgi",engine=1)
CompTest(1)
ChangeFPS(last,last,true)
Crop(0,132,0,-140)
SMDegrain (tr=4,PreFilter=4,thSAD=400,contrasharp=false,refinemotion=false,plane=4,chroma=true,lsb=true,mode=6)
Prefetch(4)
Any idea?

Groucho2004
23rd September 2015, 11:32
Thanks for your reply and I still haven't understood which is the difference between plugin and plugin+ directory. :(
All you need to know is here (http://avisynth.nl/index.php/AviSynth%2B), including the auto-load priorities.

Groucho2004
23rd September 2015, 11:35
I went thru the following image corruption.
What happens if you comment out the Prefetch() statement?

tormento
23rd September 2015, 13:44
What happens if you comment out the Prefetch() statement?
This night I'll try. It was already in my mind, such as use an older build.

Reel.Deel
23rd September 2015, 14:48
@tormento

Just out curiosity do you have the MT modes script (http://publishwith.me/ep/pad/view/ro.rDkwcdWn4k9/latest) loaded? Also I see that you're using SMDegrain with prefilter=4, I beleive that uses KNLMeans which the author said it's not MT friendly. Try adding SetFilterMTMode("KNLMeans", 3).

tormento
24th September 2015, 01:25
@Groucho2004 @Reel.Deel

Even without MT or with SetFilterMTMode("KNLMeansCL", 3), the corruption is still there.

Reel.Deel
24th September 2015, 01:29
@Groucho2004 @Reel.Deel

Even without MT or with SetFilterMTMode("KNLMeansCL", 3), the corruption is still there.

Is the video corrupted before SMDegrain?

MysteryX
24th September 2015, 01:46
@tormento

Just out curiosity do you have the MT modes script (http://publishwith.me/ep/pad/view/ro.rDkwcdWn4k9/latest) loaded? Also I see that you're using SMDegrain with prefilter=4, I beleive that uses KNLMeans which the author said it's not MT friendly. Try adding SetFilterMTMode("KNLMeans", 3).
I was told that KNLMeans requires mode 5 or 6. 6 was considerably slower, 5 is working well for me.

Reel.Deel
24th September 2015, 02:17
I was told that KNLMeans requires mode 5 or 6. 6 was considerably slower, 5 is working well for me.

AviSynth+ MT only has modes 1-3 (http://avisynth.nl/index.php/AviSynth%2B#MT_Notes).

burfadel
24th September 2015, 03:39
I really wish development of this would start up again soon.. getting this is a fully workable state to finally replace AvisynthMT would be great.

+1

People with programming skills are more than welcome to assist... I guess lol.

MysteryX
24th September 2015, 04:58
Smooth Video Project is greatly moving forward and is also waiting for a functional version of AviSynth+; as AviSynth is what makes SVP unstable and causes it to crash all the time.

I guess everybody wants it and nobody wants to touch the code lol

ryrynz
24th September 2015, 06:25
I guess everybody wants it and nobody wants to touch the code lol

That was part of the reason why Avisynth+ was made, code maintainability.

tormento
24th September 2015, 19:53
Is the video corrupted before SMDegrain?

The raw video or the result from AviSynth without filters?

tormento
24th September 2015, 19:54
I was told that KNLMeans requires mode 5 or 6. 6 was considerably slower, 5 is working well for me.
KNLMeansCL works perfectly with mode 3. See AviSynth comparison.

tormento
24th September 2015, 22:33
Is the video corrupted before SMDegrain?
Ok, it seems to be SMDegrain, both with prefilter=2 and with prefilter=4. No problems with standard AviSynth.

tormento
24th September 2015, 22:51
I am trying to use 64bit part of AviSynth+.

I am getting some strange errors and I can't understand why. I put KNLMeansCL in the plugins64 or plugins64+ and it gives me two different error.

Script:
LoadPlugin("D:\eseguibili\media\DGDecNV\x64\DGDecodeNV.dll")
DGSource("E:\in\2_01 favoloso mondo di Amelie, Il\amelie.dgi")
KNLMeansCL(D=1, A=1, h=7.0,device_type="GPU")

Error:
[E:\in\2_01 favoloso mondo di Amelie, Il]d:avs4x264mod-x64.exe -o amelie_64.mkv amelie_64.avs
avs [error]: Script error: There is no function named 'KNLMeansCL'.
(amelie_64.avs, line 4)

Script:
LoadPlugin("D:\eseguibili\media\DGDecNV\x64\DGDecodeNV.dll")
LoadPlugin("D:\programmi\media\AviSynth+\plugins64+\KNLMeansCL-0.6.11.dll")
DGSource("E:\in\2_01 favoloso mondo di Amelie, Il\amelie.dgi")
KNLMeansCL(D=1, A=1, h=7.0,device_type="GPU")

Error:
[E:\in\2_01 favoloso mondo di Amelie, Il]d:avs4x264mod-x64.exe -o amelie_64.mkv amelie_64.avs
avs [error]: Cannot load file 'D:/programmi/media/AviSynth+/plugins64+/KNLMeansCL-0.6.11.dll'. Platform returned code 126:
Impossibile trovare il modulo specificato.

(amelie_64.avs, line 2)

I am sure it is a very stupid thing but can't go thru.

LigH
24th September 2015, 23:09
Are you sure you put the 64 bit version of KNLMeansCL{-0.6.11}.dll into the plugins64 directory? A 64 bit AviSynth won't load a 32-bit plugin from there. I would possibly avoid the plugins64+ directory for generally AviSynth compatible plugins (not very specific to AviSynth+) unless I am certain what the difference is.

Does the same work when you use 32-bit AviSynth in a 32-bit application?
_

Not sure if and how that will work, just an idea: Can DependencyWalker Win64 confirm that it can use a 64-bit OpenCL driver? LoadLibrary error 126 seems to be related to unavailable dependencies sometimes.

Ah, another idea: I believe to remember that some plugins already use API version 6 while AviSynth+ may still use API version 5, might be a reason why it can't load plugins with a higher API version?

Groucho2004
24th September 2015, 23:30
I am sure it is a very stupid thing but can't go thru.
What error does AVSMeter64 return?

StainlessS
25th September 2015, 00:39
I really wish development of this would start up again soon.. getting this is a fully workable state to finally replace AvisynthMT would be great.

If you did something, and other people followed your lead, then your wish could come well come true. (EDIT: So we are all waiting for YOU !)

foxyshadis
25th September 2015, 00:59
That was part of the reason why Avisynth+ was made, code maintainability.

It's a wonderful codebase, I almost cried for joy the first time I dove in to debug something. Unfortunately, now all the easy stuff and most of the hard stuff is done, and what remains is one of the hardest problems in all of computer science: Performant but correct synchronization of bits of code that were never meant to be threaded (plugins, especially old ones). Since failures are unreproduceable by nature, it's a real head-desk problem.

Fixing it completely might require a threading expert who has tools like VTune, though even small improvements would be welcome!

RazorBurn
25th September 2015, 08:43
Error:
[E:\in\2_01 favoloso mondo di Amelie, Il]d:avs4x264mod-x64.exe -o amelie_64.mkv amelie_64.avs
avs [error]: Cannot load file 'D:/programmi/media/AviSynth+/plugins64+/KNLMeansCL-0.6.11.dll'. Platform returned code 126:
Impossibile trovare il modulo specificato.

(amelie_64.avs, line 2)

I am sure it is a very stupid thing but can't go thru.

I have the same exact error on KNLMeansCL or any plugin that use VC redist 2013..

The problem relies on the bug in upgrading your Build in Windows 10..

My Solution was Install clean state windows 10 build 240.. And Dont upgrade to new Win10 Builds..

tormento
25th September 2015, 11:10
What error does AVSMeter64 return?

AVS script:

LoadPlugin("D:\eseguibili\media\DGDecNV\x64\DGDecodeNV.dll")
DGSource("E:\in\2_01 favoloso mondo di Amelie, Il\amelie.dgi")
KNLMeansCL(D=1, A=1, h=7.0,device_type="GPU")
CompTest(1)

AVSMeter 2.1.2 (x64)
AviSynth+ 0.1 (r1825, MT, x86_64) (0.1.0.0)

Number of frames: 1764
Length (hh:mm:ss.ms): 00:01:13.500
Frame width: 1920
Frame height: 816
Framerate: 24.000 (24/1)
Colorspace: YV12

Frames processed: 1764 (0 - 1763)
FPS (min | max | average): 2.087 | 41.93 | 22.76
Memory usage (phys | virt): 101 | 389 MB
Thread count: 23
CPU usage (average): 10%

Time (elapsed): 00:01:17.497

OMG.

I means two things:


DGDecNV and KNLMeansCL works in 64 bit and not in 32 bit
there must be something I forget when using avs4x26x


Is possible to use x264 directly with avs or can you tell me how to pass it thru without avs4x26x?

tormento
25th September 2015, 11:11
Are you sure you put the 64 bit version of KNLMeansCL{-0.6.11}.dll into the plugins64 directory? A 64 bit AviSynth won't load a 32-bit plugin from there. I would possibly avoid the plugins64+ directory for generally AviSynth compatible plugins (not very specific to AviSynth+) unless I am certain what the difference is.
Read my previous reply. :p

tormento
25th September 2015, 11:13
The problem relies on the bug in upgrading your Build in Windows 10..

My Solution was Install clean state windows 10 build 240.. And Dont upgrade to new Win10 Builds..
My decision to jump over fast build wagon was AFTER I tested it on plain build and did not work. Are you on 32 or 64 bit?

Groucho2004
25th September 2015, 11:18
Is possible to use x264 directly with avs
It should work just like 32 bit AVS/x264. Why don't you just try it? Takes 10 seconds to find out.

tormento
25th September 2015, 11:22
It should work just like 32 bit AVS/x264. Why don't you just try it? Takes 10 seconds to find out.
I use MeGUI for 32 bit. Just have to try harder. :p

Groucho2004
25th September 2015, 11:24
I use MeGUI for 32 bit. Just have to try harder. :p
x264_64 -o foo.264 script.avs

tormento
25th September 2015, 11:29
x264_64 -o foo.264 script.avs

LOL

d:x264_64.exe --level 4.1 --pass 1 --qp 16 --ref 3 --bframes 3 --analyse all --me umh --trellis 1 --subme 9 --merange 16 --keyint 250 --min-keyint 25 --b-adapt 2 --direct auto --weightb --mixed-refs --b-pyramid strict --8x8dct --no-fast-pskip --threads 8 --output amelie_64.mkv amelie_64.avs
avs [info]: 1920x816p 0:0 @ 24/1 fps (cfr)
x264 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 FastShuffle SSE4.2 AVX
x264 [info]: profile Main, level 4.1
x264 [info]: frame I:121 Avg QP:13.00 size:191308
x264 [info]: frame P:569 Avg QP:16.00 size: 64478
x264 [info]: frame B:1074 Avg QP:17.63 size: 25673
x264 [info]: consecutive B-frames: 13.0% 7.3% 30.8% 49.0%
x264 [info]: mb I I16..4: 21.2% 0.0% 78.8%
x264 [info]: mb P I16..4: 23.8% 0.0% 0.0% P16..4: 66.2% 0.0% 0.0% 0.0% 0.0% skip:10.0%
x264 [info]: mb B I16..4: 4.0% 0.0% 0.0% B16..8: 36.3% 0.0% 0.0% direct:35.8% skip:23.9% L0:31.4% L1:40.8% BI:27.9%
x264 [info]: direct mvs spatial:99.0% temporal:1.0%
x264 [info]: coded y,uvDC,uvAC intra: 67.1% 89.3% 72.8% inter: 27.2% 61.6% 8.6%
x264 [info]: i16 v,h,dc,p: 39% 29% 20% 13%
x264 [info]: i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 28% 22% 8% 6% 8% 8% 7% 8% 6%
x264 [info]: i8c dc,h,v,p: 41% 21% 28% 10%
x264 [info]: Weighted P-Frames: Y:3.9% UV:3.0%
x264 [info]: kb/s:9513.83

encoded 1764 frames, 22.83 fps, 9513.91 kb/s

LOL

Groucho2004
25th September 2015, 11:33
LOL

d:x264_64.exe --level 4.1 --pass 1 --qp 16 --ref 3 --bframes 3 --analyse all --me umh --trellis 1 --subme 9 --merange 16 --keyint 250 --min-keyint 25 --b-adapt 2 --direct auto --weightb --mixed-refs --b-pyramid strict --8x8dct --no-fast-pskip --threads 8 --output amelie_64.mkv amelie_64.avs
avs [info]: 1920x816p 0:0 @ 24/1 fps (cfr)
x264 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 FastShuffle SSE4.2 AVX
x264 [info]: profile Main, level 4.1
x264 [info]: frame I:121 Avg QP:13.00 size:191308
x264 [info]: frame P:569 Avg QP:16.00 size: 64478
x264 [info]: frame B:1074 Avg QP:17.63 size: 25673
x264 [info]: consecutive B-frames: 13.0% 7.3% 30.8% 49.0%
x264 [info]: mb I I16..4: 21.2% 0.0% 78.8%
x264 [info]: mb P I16..4: 23.8% 0.0% 0.0% P16..4: 66.2% 0.0% 0.0% 0.0% 0.0% skip:10.0%
x264 [info]: mb B I16..4: 4.0% 0.0% 0.0% B16..8: 36.3% 0.0% 0.0% direct:35.8% skip:23.9% L0:31.4% L1:40.8% BI:27.9%
x264 [info]: direct mvs spatial:99.0% temporal:1.0%
x264 [info]: coded y,uvDC,uvAC intra: 67.1% 89.3% 72.8% inter: 27.2% 61.6% 8.6%
x264 [info]: i16 v,h,dc,p: 39% 29% 20% 13%
x264 [info]: i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 28% 22% 8% 6% 8% 8% 7% 8% 6%
x264 [info]: i8c dc,h,v,p: 41% 21% 28% 10%
x264 [info]: Weighted P-Frames: Y:3.9% UV:3.0%
x264 [info]: kb/s:9513.83

encoded 1764 frames, 22.83 fps, 9513.91 kb/s

LOL
So, the problem you had appears to be related to some GUI?

tormento
25th September 2015, 11:51
So, the problem you had appears to be related to some GUI?
No, to 32bit.

The 64bit versions of anything solve the problem of using DGDecNV and KNLMeansCL together.

Same image corruption even in 64 bit version.

qyot27
25th September 2015, 14:39
Ah, another idea: I believe to remember that some plugins already use API version 6 while AviSynth+ may still use API version 5, might be a reason why it can't load plugins with a higher API version?
That's only true of AviSynth+ 0.1/r1576. The changes from RC1 (API version 6, et al.) were merged into the MT/HEAD branch back in March. All the builds since then are v6.

LigH
25th September 2015, 15:20
avs4x26x is a 32-bit application, calling 32-bit AviSynth, and piping the raw video stream to another (possibly, but not necessarily, 64-bit) encoder.

tormento
25th September 2015, 19:46
This (http://forum.doom9.org/showthread.php?p=1739893#post1739893) image corruption appears even in 64bit, one thread.

Plugin authors tell it's AviSynth+ fault.

Any idea?

qyot27
26th September 2015, 03:04
Due to the differing rules in setting the MT mode between the two, you're using mode 3 for SetMemoryMax in AviSynth-MT, but mode 2 in AviSynth+ (the same point also applies for LoadPlugin). I'll go on record saying I highly, highly doubt this has anything to do with the problem, but that difference means the script isn't as 1:1 a conversion from Avs-MT to Plus that it otherwise would be.

tormento
26th September 2015, 09:32
Due to the differing rules in setting the MT mode between the two, you're using mode 3 for SetMemoryMax in AviSynth-MT, but mode 2 in AviSynth+ (the same point also applies for LoadPlugin). I'll go on record saying I highly, highly doubt this has anything to do with the problem, but that difference means the script isn't as 1:1 a conversion from Avs-MT to Plus that it otherwise would be.
In MT I use the same memory modes, both in AviSynth and in AVS+, I did not know that SetMemoryMax could enter into equation. After this encoding session I'll try to remove the line or put as exception in initial plugin declaration and see. My current scripts, are quite similar:

SetMTMode(3)
SetMemoryMax(2048)
LoadPlugin("D:\eseguibili\media\DGDecIM\DGDecodeIM.dll")
DGSourceIM("E:\in\2_01 favoloso mondo di Amelie, Il\amelie.dgi",engine=1)
SetMTMode(2)
CompTest(1)
ChangeFPS(last,last,true)
Crop(0,132,0,-140)
SMDegrain (tr=4,PreFilter=4,thSAD=400,contrasharp=false,refinemotion=false,plane=4,chroma=true,lsb=true,mode=6)


SetFilterMTMode("DEFAULT_MT_MODE", 2)
SetFilterMTMode("DGSourceIM", 3)
SetFilterMTMode("KNLMeansCL", 3)
SetMemoryMax(2048)
LoadPlugin("D:\eseguibili\media\DGDecIM\DGDecodeIM.dll")
DGSourceIM("E:\in\2_01 favoloso mondo di Amelie, Il\amelie.dgi",engine=1)
CompTest(1)
ChangeFPS(last,last,true)
Crop(0,132,0,-140)
SMDegrain (tr=4,PreFilter=4,thSAD=400,contrasharp=false,refinemotion=false,plane=4,chroma=true,lsb=true,mode=6)
Prefetch(4)

The corruption however is even in single thread.

ndjamena
12th October 2015, 18:42
Are the updated audio parameters in BlankClip not included in AVISynth+ or has it been changed to something else. I can't find any mention of it anywhere.

http://avisynth.nl/index.php/BlankClip

int channels, string sample_type

VirtualDub is complaining that BlankClip has no such arguments.

Reel.Deel
12th October 2015, 18:52
Are the updated audio parameters in BlankClip not included in AVISynth+ or has it been changed to something else. I can't find any mention of it anywhere.

http://avisynth.nl/index.php/BlankClip

int channels, string sample_type

VirtualDub is complaining that BlankClip has no such arguments.

BlankClip(channels=2, sample_type="16bit") works for me on r1576. Are you sure you're not doing anything wrong? Those parameters have been there since v2.58...

ndjamena
12th October 2015, 19:03
I must have made a typo somewhere.

real.finder
8th November 2015, 19:26
mt test

http://i.imgur.com/Ubp7NCb.png


ColorBars(width=720, height=480, pixel_type="RGB32")
ConvertToYV12()
QTGMC(InputType=1, Ezdenoise=2)
LSFMod(strength=66)
gradfun3()
Prefetch(12)

http://i.imgur.com/LyXLxY7.png


setmtmode(2,12)
ColorBars(width=720, height=480, pixel_type="RGB32")
ConvertToYV12()
QTGMC(InputType=1, Ezdenoise=2)
LSFMod(strength=66)
gradfun3()

stranno
15th November 2015, 22:21
I'm testing a bit and it seems that 1576 is a bit faster than 1773 that is more faster than 1825.

But i'm interested in ffmpeg so i must use a newer version.

Is there any way to set 1773 only for ffmpeg and keeping 1576 for daily work with x264? Aside switching the avisynth files every time.

MysteryX
15th November 2015, 23:45
If you open the script with avs2yuv.exe and pipe into ffmpeg, then it won't care which version of AviSynth you're using.

qyot27
16th November 2015, 02:44
I'm testing a bit and it seems that 1576 is a bit faster than 1773 that is more faster than 1825.

But i'm interested in ffmpeg so i must use a newer version.

Is there any way to set 1773 only for ffmpeg and keeping 1576 for daily work with x264? Aside switching the avisynth files every time.
Put the AviSynth.dll from the r1773 package in the same directory as ffmpeg.exe.

stranno
16th November 2015, 15:25
Very useful, thanks both for the tips.