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 17th May 2015, 07:56   #1  |  Link
hydra3333
Registered User
 
Join Date: Oct 2009
Location: crow-land
Posts: 540
Seeking advice about "which avisynth to use?"

Seeking advice about "which avisynth to use?".

I currently use template avs's (one of which is below) which I edit for use with the TSP's venerable 32 bit avisynth 2.5.7 MT at http://forum.doom9.org/showthread.php?t=94996
I also have a list of plugins which are compatible with that version (outlined in the avs).
This combo has seen me right for a long time, even now with Win8.1x64.

I gather there are newer versions of avisynth, however I'm not sure if all of my required plugins (or updated versions) are compatible with those avisynths.
eg
vapoursynth http://forum.doom9.org/forumdisplay.php?f=82 http://www.vapoursynth.com/
avisynth+ http://forum.doom9.org/showthread.php?t=168856 http://avs-plus.net/
avisynth 2.6.0 http://forum.doom9.org/showthread.php?t=172054
avisynth 2.6 MT http://forum.doom9.org/showthread.ph...light=avisynth

Advice welcomed about which one to use, and whether speed improvements are to be had from a newer version.

Last edited by hydra3333; 17th May 2015 at 07:59.
hydra3333 is offline   Reply With Quote
Old 17th May 2015, 07:57   #2  |  Link
hydra3333
Registered User
 
Join Date: Oct 2009
Location: crow-land
Posts: 540
Code:
SetMTmode(mode=5,threads=8) # start with mode=5 forAVIsource http://forum.doom9.org/showthread.php?p=1067216#post1067216 
SetMemoryMax(1024)                    
# 
LoadPlugin("C:\SOFTWARE\DGindex\DGDecodeNV.dll")  
LoadPlugin("C:\SOFTWARE\DGindex\DGDecode.dll")  
# 
LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins-qtgmc-smdegrain\AddGrainC.dll")  
LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins-qtgmc-smdegrain\avstp.dll")  
LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins-qtgmc-smdegrain\dfttest.dll")  
LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins-qtgmc-smdegrain\dither.dll")  
LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins-qtgmc-smdegrain\EEDI2.dll")  
LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins-qtgmc-smdegrain\eedi3.dll")  
LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins-qtgmc-smdegrain\FFT3DFilter.dll")  
LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins-qtgmc-smdegrain\mt_masktools-25.dll")  
LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins-qtgmc-smdegrain\mvtools2.dll")  
#LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins-qtgmc-smdegrain\nnedi.dll")  
#LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins-qtgmc-smdegrain\nnedi2.dll")  
#LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins-qtgmc-smdegrain\nnedi3.dll")  
LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins-qtgmc-smdegrain\nnedi-from-tcritical.dll")  
LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins-qtgmc-smdegrain\nnedi2-from-tcritical.dll")  
LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins-qtgmc-smdegrain\nnedi3-from-tcritical.dll")  
LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins-qtgmc-smdegrain\RemoveGrainSSE2.dll")  
LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins-qtgmc-smdegrain\RepairSSE2.dll")  
LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins-qtgmc-smdegrain\SSE2Tools.dll")  
LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins-qtgmc-smdegrain\TDeint.dll")  
#LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins-qtgmc-smdegrain\VerticalCleanerSSE2.dll")  
LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins-zzz\VerticalCleanerSSE3.dll") 
LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins-qtgmc-smdegrain\VariableBlur.dll")  
# 
LoadCPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins-qtgmc-smdegrain\yadif.dll")  
# 
LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins-zzz\AGC.dll")  
LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins-zzz\CNR2.dll")  
LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins-zzz\fft3dfilter.dll")  
LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins-zzz\dctfilter.dll") 
LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins-zzz\degrainmedian.dll") 
LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins-zzz\Convolution3d.dll")  
LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins-zzz\DePan.dll") 
LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins-zzz\despot.dll")  
LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins-zzz\WarpSharp.dll")  
LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins-zzz\FFTQuiver.dll")  
LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins-zzz\aWarpSharp.dll")  
LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins-zzz\Unfilter.dll")  
LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins-zzz\RemoveDirtSSE2.dll")  
LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins-zzz\Yadifmod.dll")  
LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins-zzz\Colormatrix.dll") 
# 
Import("C:\Program Files (x86)\AviSynth 2.5\plugins-qtgmc-smdegrain\dither.avs")  
Import("C:\Program Files (x86)\AviSynth 2.5\plugins-qtgmc-smdegrain\mt_xxpand_multi.avs")  
#Import("C:\Program Files (x86)\AviSynth 2.5\plugins-qtgmc-smdegrain\QTGMC-3.32.avs")  
Import("C:\Program Files (x86)\AviSynth 2.5\plugins-qtgmc-smdegrain\QTGMC-3.33.avs")  
#Import("C:\Program Files (x86)\AviSynth 2.5\plugins-qtgmc-smdegrain\QTGMC-3.33d.avs")  
Import("C:\Program Files (x86)\AviSynth 2.5\plugins-qtgmc-smdegrain\SMDegrain-v.2.2d.avs")  
Import("C:\Program Files (x86)\AviSynth 2.5\plugins-qtgmc-smdegrain\LSFmod.v1.9.avs")  
# 
Import("C:\Program Files (x86)\AviSynth 2.5\Deblock_QED_MT2.avs") 
Import("C:\Program Files (x86)\AviSynth 2.5\LimitedSharpenFaster.avs") 
#   ipp=true interlaced post-processing 
#   cpu=4    DEBLOCK_Y_H, DEBLOCK_Y_V, DEBLOCK_C_H, DEBLOCK_C_V 
#   cpu=6    DEBLOCK_Y_H, DEBLOCK_Y_V, DEBLOCK_C_H, DEBLOCK_C_V, DERING_Y, DERING_C 
#MPEG2Source("T:\HDTV\WDTVlive\MP4\1\z\file.d2v",info=0,ipp=true,cpu=6)  # DEBLOCK and DERING 
#MPEG2Source("T:\HDTV\WDTVlive\MP4\1\z\file.d2v",info=0,ipp=true,cpu=4) # DEBLOCK 
MPEG2Source("T:\HDTV\WDTVlive\MP4\1\z\file.d2v",info=0,ipp=true,cpu=0) 
# 
SetMTmode(mode=2,threads=8) # 
# 
AssumeFPS(25) 
AssumeTFF()  
# 
#TRIM(20000,-5000) 
# 
#changefps(last,last,true) # http://forum.doom9.org/showthread.php?p=1473445#post1473445 
#SetMTmode(mode=2,threads=8) 
# 
# ------------------------------------------------------------------------------------- 
# STRONG DEBLOCK **BEFORE** DEINTERLACING. Better than in MPEG2SOURCE 
# See http://forum.doom9.org/showthread.php?p=1589533#post1589533 
# ------------------------------------------------------------------------------------- 
#ii=LAST 
# see http://doom10.org/index.php?topic=2309.msg12233#msg12233 
SeparateFields() 
#deblock_QED() 
#deblock_QED(quant1=24) 
deblock_QED(quant1=36) 
#deblock_QED(quant1=48) 
Weave() 
AssumeTFF()  
#jj=LAST 
# 
# ------------------------------------------------------------------------------------- 
# --------- START INTERLACED CLIP ------------------------------------------- 
# ------------------------------------------------------------------------------------- 
# For RE-INTERLACING http://forum.doom9.org/showthread.php?p=1110741#post1110741  
#    AssumeTFF().SeparateFields().SelectEvery(4, 0, 3).Weave() -
#  * AssumeBFF().SeparateFields().SelectEvery(4, 0, 3).Weave() -
#    AssumeTFF().SeparateFields().SelectEvery(4, 1, 2).Weave() -
#    AssumeBFF().SeparateFields().SelectEvery(4, 1, 2).Weave() -
# DE-INTERLACING and RE-INTERLACING http://forum.doom9.org/showthread.php?p=1374335#post1374335 
# ------------------------------------------------------------------------------------- 
# 1. QTGMC 
# ------------------------------------------------------------------------------------- 
#QTGMC(Preset="Ultra Fast",EdiThreads=2,Sharpness=1.2,SLMode=1) # result is double framerate progressive, so re-interlate it later 
#QTGMC(Preset="Super Fast",EdiThreads=2,Sharpness=1.2,SLMode=1) # result is double framerate progressive, so re-interlate it later 
#QTGMC(Preset="Very Fast",EdiThreads=2,Sharpness=1.2,SLMode=1) # result is double framerate progressive, so re-interlate it later 
#QTGMC(Preset="Faster",EdiThreads=2,Sharpness=1.2,SLMode=1) # result is double framerate progressive, so re-interlate it later 
#QTGMC(Preset="Fast",EdiThreads=2,Sharpness=1.2,SLMode=1) # result is double framerate progressive, so re-interlate it later 
#QTGMC(Preset="Medium",EdiThreads=2,Sharpness=1.2,SLMode=1) # result is double framerate progressive, so re-interlate it later 
#QTGMC(Preset="Slow",EdiThreads=2,Sharpness=1.2,SLMode=1) # result is double framerate progressive, so re-interlate it later 
#QTGMC(Preset="Slower",EdiThreads=2,Sharpness=1.2,SLMode=1) # result is double framerate progressive, so re-interlate it later 
#QTGMC(Preset="Very Slow",EdiThreads=2,Sharpness=1.2,SLMode=1) # result is double framerate progressive, so re-interlate it later 
QTGMC(Preset="Very Slow",EdiThreads=2,Sharpness=1.2,SLMode=2,EZKeepGrain=1.2,NoiseProcess=2) # result is double framerate progressive, so re-interlate it later 
#QTGMC(Preset="Very Slow",EdiThreads=2,Sharpness=1.2,NoiseProcess=2,GrainRestore=0.4,NoiseRestore=0.2,Sigma=1.8,NoiseDeint="Generate",StabilizeNoise=true) # result is double framerate progressive, so re-interlate it later 
#QTGMC(Preset="Very Slow",EdiThreads=2,,SLMode=2,EZKeepGrain=1.2,NoiseProcess=2) # result is double framerate progressive, so re-interlate it later 
#Spline36resize(720,576) 
#Lanczos4resize(720,576) 
   ######## 
   #--progressive-only MSUPER/MDegrain1 for use with SetMTMode(2) 
   #blksize=8 # 4, 8 or 16 ( default is 8 ). Larger blocks are less sensitive to noise, are faster, but also less accurate. 
   #overlap=4 # overlap value (0 to 4 for blksize=8) Must be even and less than block size 
   #dct=0 # use dct=1 for clip with light flicker 
   #super = MSuper(pel=2,chroma=true,sharp=2) 
   #backward_vec1 = MAnalyse(super, isb = true,  delta = 1, blksize=blksize, overlap=overlap, dct=dct, chroma=true) 
   #forward_vec1  = MAnalyse(super, isb = false, delta = 1, blksize=blksize, overlap=overlap, dct=dct, chroma=true) 
   #MDegrain1(super, backward_vec1,forward_vec1,thSAD=400,plane=4) 
   ######## 
   #--progressive-only MSUPER/MDegrain2 for use with SetMTMode(2) 
   #blksize=8 # 4, 8 or 16 ( default is 8 ). Larger blocks are less sensitive to noise, are faster, but also less accurate. 
   #overlap=4 # overlap value (0 to 4 for blksize=8) Must be even and less than block size 
   #dct=0 # use dct=1 for clip with light flicker 
   #super = MSuper(pel=2,chroma=true,sharp=2) 
   #backward_vec2 = MAnalyse(super, isb = true,  delta = 2, blksize=blksize, overlap=overlap, dct=dct, chroma=true) 
   #backward_vec1 = MAnalyse(super, isb = true,  delta = 1, blksize=blksize, overlap=overlap, dct=dct, chroma=true) 
   #forward_vec1  = MAnalyse(super, isb = false, delta = 1, blksize=blksize, overlap=overlap, dct=dct, chroma=true) 
   #forward_vec2  = MAnalyse(super, isb = false, delta = 2, blksize=blksize, overlap=overlap, dct=dct, chroma=true) 
   #MDegrain2(super, backward_vec1,forward_vec1,backward_vec2,forward_vec2,thSAD=400,plane=4) 
   ######## 
   #--progressive-only MSUPER/MDegrain3 for use with SetMTMode(2) 
   #blksize=8 # 4, 8 or 16 ( default is 8 ). Larger blocks are less sensitive to noise, are faster, but also less accurate. 
   #overlap=4 # overlap value (0 to 4 for blksize=8) Must be even and less than block size 
   #dct=0 # use dct=1 for clip with light flicker 
   #super = MSuper(pel=2,chroma=true,sharp=2) 
   #backward_vec3 = MAnalyse(super, isb = true,  delta = 3, blksize=blksize, overlap=overlap, dct=dct, chroma=true) 
   #backward_vec2 = MAnalyse(super, isb = true,  delta = 2, blksize=blksize, overlap=overlap, dct=dct, chroma=true) 
   #backward_vec1 = MAnalyse(super, isb = true,  delta = 1, blksize=blksize, overlap=overlap, dct=dct, chroma=true) 
   #forward_vec1  = MAnalyse(super, isb = false, delta = 1, blksize=blksize, overlap=overlap, dct=dct, chroma=true) 
   #forward_vec2  = MAnalyse(super, isb = false, delta = 2, blksize=blksize, overlap=overlap, dct=dct, chroma=true) 
   #forward_vec3  = MAnalyse(super, isb = false, delta = 3, blksize=blksize, overlap=overlap, dct=dct, chroma=true) 
   #MDegrain3(super, backward_vec1,forward_vec1,backward_vec2,forward_vec2,backward_vec3,forward_vec3,thSAD=400,plane=4) 
   ######## 
#LimitedSharpenFaster(smode=4,strength=100) 
#UnFilter(10,10) 
# Re-Interlace and halve framerate 
AssumeTFF()  
Blur(0,0.25).SeparateFields().SelectEvery(4,0,3).Weave() #reinterlace - ASSUMED TFF HERE # BLUR(0,1) per http://forum.doom9.org/showthread.php?p=1488308#post1488308 
# 
#kk = LAST 
# 
# 
#ColorMatrix(interlaced=true,mode="Rec.709->Rec.601") 
SetMTmode(mode=5,threads=8) 
AssumeTFF()  
AssumeFPS(25) 
#Converttoyv12() 
# Distributor() should only be used when loading the script into applications which talk to avisynth directly  
# e.g. HC and MeGUI. If the program opens the .avs file as an avi file (like virtualdub/mod, x264, xvid_encraw etc.)  
# then you don't need (and shouldn't have) the distributor call at the end. 
# http://forum.doom9.org/showthread.php?p=1136518#post1136518 
##### "HC uses custom avisynth routines, you have to add Distributor() to the end of the script." 
#Distributor() # use this when using HC and SetMTmode, per http://forum.doom9.org/showthread.php?p=1063622#post1063622 
# http://forum.doom9.org/showthread.php?p=1067589#post1067589 
# ChangeFPS(Last, Last, True) makes fast scripts faster and slow scripts slower  
#ChangeFPS(Last, Last, True) # use this when using HC and SetMTmode, per http://forum.doom9.org/showthread.php?p=1064118#post1064118 
#SetPlanarLegacyAlignment(True) 
#Distributor() 
#
hydra3333 is offline   Reply With Quote
Old 17th May 2015, 07:58   #3  |  Link
hydra3333
Registered User
 
Join Date: Oct 2009
Location: crow-land
Posts: 540
final piece.
Code:
Function dcwBox2(Clip a, string asub, Clip b, string bsub) { 
	hClip = a.height() 
	wClip = a.width() 
	stackvertical(stackhorizontal(a.crop(0*wClip/2,0*hClip/2,-1*wClip/2,-1*hClip/2).subtitle(aSub,size=10), \ 
                                      b.crop(1*wClip/2,0*hClip/2,-0*wClip/2,-1*hClip/2).subtitle(bSub,size=10)), \ 
                      stackhorizontal(b.crop(0*wClip/2,1*hClip/2,-1*wClip/2,-0*hClip/2).subtitle(bSub,size=10), \ 
                                      a.crop(1*wClip/2,1*hClip/2,-0*wClip/2,-0*hClip/2).subtitle(aSub,size=10)))  
} 
Function dcwBox4(Clip a, string asub, Clip b, string bsub) { 
	hClip = a.height() 
	wClip = a.width() 
	stackvertical(stackhorizontal(a.crop(0*wClip/4,0*hClip/4,-3*wClip/4,-3*hClip/4).subtitle(aSub,size=10), \ 
	                              b.crop(1*wClip/4,0*hClip/4,-2*wClip/4,-3*hClip/4).subtitle(bSub,size=10), \ 
	                              a.crop(2*wClip/4,0*hClip/4,-1*wClip/4,-3*hClip/4).subtitle(aSub,size=10), \ 
	                              b.crop(3*wClip/4,0*hClip/4,-0*wClip/4,-3*hClip/4).subtitle(bSub,size=10)), \ 
	              stackhorizontal(b.crop(0*wClip/4,1*hClip/4,-3*wClip/4,-2*hClip/4).subtitle(bSub,size=10), \ 
	                              a.crop(1*wClip/4,1*hClip/4,-2*wClip/4,-2*hClip/4).subtitle(aSub,size=10), \ 
	                              b.crop(2*wClip/4,1*hClip/4,-1*wClip/4,-2*hClip/4).subtitle(bSub,size=10), \ 
	                              a.crop(3*wClip/4,1*hClip/4,-0*wClip/4,-2*hClip/4).subtitle(aSub,size=10)), \  
	              stackhorizontal(a.crop(0*wClip/4,2*hClip/4,-3*wClip/4,-1*hClip/4).subtitle(aSub,size=10), \ 
	                              b.crop(1*wClip/4,2*hClip/4,-2*wClip/4,-1*hClip/4).subtitle(bSub,size=10), \ 
	                              a.crop(2*wClip/4,2*hClip/4,-1*wClip/4,-1*hClip/4).subtitle(aSub,size=10), \ 
	                              b.crop(3*wClip/4,2*hClip/4,-0*wClip/4,-1*hClip/4).subtitle(bSub,size=10)), \ 
	              stackhorizontal(b.crop(0*wClip/4,3*hClip/4,-3*wClip/4,-0*hClip/4).subtitle(bSub,size=10), \ 
	                              a.crop(1*wClip/4,3*hClip/4,-2*wClip/4,-0*hClip/4).subtitle(aSub,size=10), \ 
	                              b.crop(2*wClip/4,3*hClip/4,-1*wClip/4,-0*hClip/4).subtitle(bSub,size=10), \ 
	                              a.crop(3*wClip/4,3*hClip/4,-0*wClip/4,-0*hClip/4).subtitle(aSub,size=10)))  
} 
Function dcwBox8(Clip a, string asub, Clip b, string bsub) { 
	hClip = a.height() 
	wClip = a.width() 
	stackvertical(stackhorizontal(a.crop(0*wClip/8,0*hClip/8,-7*wClip/8,-7*hClip/8).subtitle(aSub,size=10), \ 
	                              b.crop(1*wClip/8,0*hClip/8,-6*wClip/8,-7*hClip/8).subtitle(bSub,size=10), \ 
	                              a.crop(2*wClip/8,0*hClip/8,-5*wClip/8,-7*hClip/8).subtitle(aSub,size=10), \ 
	                              b.crop(3*wClip/8,0*hClip/8,-4*wClip/8,-7*hClip/8).subtitle(bSub,size=10), \ 
	                              a.crop(4*wClip/8,0*hClip/8,-3*wClip/8,-7*hClip/8).subtitle(aSub,size=10), \ 
	                              b.crop(5*wClip/8,0*hClip/8,-2*wClip/8,-7*hClip/8).subtitle(bSub,size=10), \ 
	                              a.crop(6*wClip/8,0*hClip/8,-1*wClip/8,-7*hClip/8).subtitle(aSub,size=10), \ 
	                              b.crop(7*wClip/8,0*hClip/8,-0*wClip/8,-7*hClip/8).subtitle(bSub,size=10)), \ 
	              stackhorizontal(b.crop(0*wClip/8,1*hClip/8,-7*wClip/8,-6*hClip/8).subtitle(bSub,size=10), \ 
	                              a.crop(1*wClip/8,1*hClip/8,-6*wClip/8,-6*hClip/8).subtitle(aSub,size=10), \ 
	                              b.crop(2*wClip/8,1*hClip/8,-5*wClip/8,-6*hClip/8).subtitle(bSub,size=10), \ 
	                              a.crop(3*wClip/8,1*hClip/8,-4*wClip/8,-6*hClip/8).subtitle(aSub,size=10), \ 
	                              b.crop(4*wClip/8,1*hClip/8,-3*wClip/8,-6*hClip/8).subtitle(bSub,size=10), \ 
	                              a.crop(5*wClip/8,1*hClip/8,-2*wClip/8,-6*hClip/8).subtitle(aSub,size=10), \ 
	                              b.crop(6*wClip/8,1*hClip/8,-1*wClip/8,-6*hClip/8).subtitle(bSub,size=10), \ 
	                              a.crop(7*wClip/8,1*hClip/8,-0*wClip/8,-6*hClip/8).subtitle(aSub,size=10)), \ 
	              stackhorizontal(a.crop(0*wClip/8,2*hClip/8,-7*wClip/8,-5*hClip/8).subtitle(aSub,size=10), \ 
	                              b.crop(1*wClip/8,2*hClip/8,-6*wClip/8,-5*hClip/8).subtitle(bSub,size=10), \ 
	                              a.crop(2*wClip/8,2*hClip/8,-5*wClip/8,-5*hClip/8).subtitle(aSub,size=10), \ 
	                              b.crop(3*wClip/8,2*hClip/8,-4*wClip/8,-5*hClip/8).subtitle(bSub,size=10), \ 
	                              a.crop(4*wClip/8,2*hClip/8,-3*wClip/8,-5*hClip/8).subtitle(aSub,size=10), \ 
	                              b.crop(5*wClip/8,2*hClip/8,-2*wClip/8,-5*hClip/8).subtitle(bSub,size=10), \ 
	                              a.crop(6*wClip/8,2*hClip/8,-1*wClip/8,-5*hClip/8).subtitle(aSub,size=10), \ 
	                              b.crop(7*wClip/8,2*hClip/8,-0*wClip/8,-5*hClip/8).subtitle(bSub,size=10)), \ 
	              stackhorizontal(b.crop(0*wClip/8,3*hClip/8,-7*wClip/8,-4*hClip/8).subtitle(bSub,size=10), \ 
	                              a.crop(1*wClip/8,3*hClip/8,-6*wClip/8,-4*hClip/8).subtitle(aSub,size=10), \ 
	                              b.crop(2*wClip/8,3*hClip/8,-5*wClip/8,-4*hClip/8).subtitle(bSub,size=10), \ 
	                              a.crop(3*wClip/8,3*hClip/8,-4*wClip/8,-4*hClip/8).subtitle(aSub,size=10), \ 
	                              b.crop(4*wClip/8,3*hClip/8,-3*wClip/8,-4*hClip/8).subtitle(bSub,size=10), \ 
	                              a.crop(5*wClip/8,3*hClip/8,-2*wClip/8,-4*hClip/8).subtitle(aSub,size=10), \ 
	                              b.crop(6*wClip/8,3*hClip/8,-1*wClip/8,-4*hClip/8).subtitle(bSub,size=10), \ 
	                              a.crop(7*wClip/8,3*hClip/8,-0*wClip/8,-4*hClip/8).subtitle(aSub,size=10)), \ 
	              stackhorizontal(a.crop(0*wClip/8,4*hClip/8,-7*wClip/8,-3*hClip/8).subtitle(aSub,size=10), \ 
	                              b.crop(1*wClip/8,4*hClip/8,-6*wClip/8,-3*hClip/8).subtitle(bSub,size=10), \ 
	                              a.crop(2*wClip/8,4*hClip/8,-5*wClip/8,-3*hClip/8).subtitle(aSub,size=10), \ 
	                              b.crop(3*wClip/8,4*hClip/8,-4*wClip/8,-3*hClip/8).subtitle(bSub,size=10), \ 
	                              a.crop(4*wClip/8,4*hClip/8,-3*wClip/8,-3*hClip/8).subtitle(aSub,size=10), \ 
	                              b.crop(5*wClip/8,4*hClip/8,-2*wClip/8,-3*hClip/8).subtitle(bSub,size=10), \ 
	                              a.crop(6*wClip/8,4*hClip/8,-1*wClip/8,-3*hClip/8).subtitle(aSub,size=10), \ 
	                              b.crop(7*wClip/8,4*hClip/8,-0*wClip/8,-3*hClip/8).subtitle(bSub,size=10)), \ 
	              stackhorizontal(b.crop(0*wClip/8,5*hClip/8,-7*wClip/8,-2*hClip/8).subtitle(bSub,size=10), \ 
	                              a.crop(1*wClip/8,5*hClip/8,-6*wClip/8,-2*hClip/8).subtitle(aSub,size=10), \ 
	                              b.crop(2*wClip/8,5*hClip/8,-5*wClip/8,-2*hClip/8).subtitle(bSub,size=10), \ 
	                              a.crop(3*wClip/8,5*hClip/8,-4*wClip/8,-2*hClip/8).subtitle(aSub,size=10), \ 
	                              b.crop(4*wClip/8,5*hClip/8,-3*wClip/8,-2*hClip/8).subtitle(bSub,size=10), \ 
	                              a.crop(5*wClip/8,5*hClip/8,-2*wClip/8,-2*hClip/8).subtitle(aSub,size=10), \ 
	                              b.crop(6*wClip/8,5*hClip/8,-1*wClip/8,-2*hClip/8).subtitle(bSub,size=10), \ 
	                              a.crop(7*wClip/8,5*hClip/8,-0*wClip/8,-2*hClip/8).subtitle(aSub,size=10)), \ 
	              stackhorizontal(a.crop(0*wClip/8,6*hClip/8,-7*wClip/8,-1*hClip/8).subtitle(aSub,size=10), \ 
	                              b.crop(1*wClip/8,6*hClip/8,-6*wClip/8,-1*hClip/8).subtitle(bSub,size=10), \ 
	                              a.crop(2*wClip/8,6*hClip/8,-5*wClip/8,-1*hClip/8).subtitle(aSub,size=10), \ 
	                              b.crop(3*wClip/8,6*hClip/8,-4*wClip/8,-1*hClip/8).subtitle(bSub,size=10), \ 
	                              a.crop(4*wClip/8,6*hClip/8,-3*wClip/8,-1*hClip/8).subtitle(aSub,size=10), \ 
	                              b.crop(5*wClip/8,6*hClip/8,-2*wClip/8,-1*hClip/8).subtitle(bSub,size=10), \ 
	                              a.crop(6*wClip/8,6*hClip/8,-1*wClip/8,-1*hClip/8).subtitle(aSub,size=10), \ 
	                              b.crop(7*wClip/8,6*hClip/8,-0*wClip/8,-1*hClip/8).subtitle(bSub,size=10)), \ 
	              stackhorizontal(b.crop(0*wClip/8,7*hClip/8,-7*wClip/8,-0*hClip/8).subtitle(bSub,size=10), \ 
	                              a.crop(1*wClip/8,7*hClip/8,-6*wClip/8,-0*hClip/8).subtitle(aSub,size=10), \ 
	                              b.crop(2*wClip/8,7*hClip/8,-5*wClip/8,-0*hClip/8).subtitle(bSub,size=10), \ 
	                              a.crop(3*wClip/8,7*hClip/8,-4*wClip/8,-0*hClip/8).subtitle(aSub,size=10), \ 
	                              b.crop(4*wClip/8,7*hClip/8,-3*wClip/8,-0*hClip/8).subtitle(bSub,size=10), \ 
	                              a.crop(5*wClip/8,7*hClip/8,-2*wClip/8,-0*hClip/8).subtitle(aSub,size=10), \ 
	                              b.crop(6*wClip/8,7*hClip/8,-1*wClip/8,-0*hClip/8).subtitle(bSub,size=10), \ 
	                              a.crop(7*wClip/8,7*hClip/8,-0*wClip/8,-0*hClip/8).subtitle(aSub,size=10)))  
}
hydra3333 is offline   Reply With Quote
Old 17th May 2015, 09:34   #4  |  Link
foxyshadis
ангел смерти
 
foxyshadis's Avatar
 
Join Date: Nov 2004
Location: Lost
Posts: 9,558
Quote:
Originally Posted by hydra3333 View Post
Seeking advice about "which avisynth to use?".

I currently use template avs's (one of which is below) which I edit for use with the TSP's venerable 32 bit avisynth 2.5.7 MT at http://forum.doom9.org/showthread.php?t=94996
At a bare minimum, install 2.5.8, which fixes many bugs. 2.6 is almost 100% compatible and fixes even more bugs, adds spiffy new features, and enables compatibility with lots of new filters. The MT version is strongly recommended unless you care more about slightly better stability rather than 2-4x speedups. (There are a few very rare cases where MT fails when regular doesn't, often memory use related.)

Avisynth+ is a good idea, and it makes writing plugins and complex scripts easier, it's certainly faster, and it has different bugs. It's natively multithreaded, and there are special plugins for it, many of which are faster than their standard Avisynth counterparts. (Most are cross-compatible enough that they've entirely replaced the standard versions.) If you want to test it out, be sure to use this version, because the latest release is way behind standard Avisynth at this point. It's hard to give an unequivocal yes/no, because it's hard to see where it's going, but I guess the same could be said of Avisynth itself.

If everything you need is available in 64-bit, always go with 64-bit, unless it's slower. (A few plugins are optimized for 32-bit and not 64-bit.) You'll never run out of memory.

Vapoursynth is entirely separate. Aside from marrying the general idea with Python syntax, and a reimplementation of the most useful plugins, it's 100% different from Avisynth. All of the limitations of -- and compatibility with -- Avisynth are gone, and you have to learn a new, stricter language just to use it. In almost every respect it's faster and easier to use, once you're over the language curve, in my experience. No audio support at all. While it can load older 2.5-compatible Avisynth plugins, going with VS is more abandoning the Avisynth ecosystem than choosing a dialect of it, and you'll have to rewrite everything you've done.
foxyshadis 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 14:47.


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