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. |
29th January 2008, 19:33 | #1 | Link |
Registered User
Join Date: Sep 2005
Posts: 11
|
Advice for (worstcase) film restoration needed
Hello,
the footage that i need to process was shot by filmstudents in the 60's on B/W Film, at 24fps i assume. I guess they were quite unexperienced, they have a lot of shaky handheld camera & wrong exposure, the images has a lot of frame jitter, it was apparently badly developed (lots of scratches and dust) then they made a telecine (with a lot of Luma Jitter) to Interlaced, 29.97 fps NTSC BetaSP . But thats not all. I am trying to process a (NTSC) DVD now which was made from this material in a Medium Datarate which additionally introduced a lot of compression artifacts due to the chaotic (and badly compressable) nature of the source material. To make it more complex: i also need to convert this material to PAL. I read several threads about reverse telecine, NTSC to PAL, restoration stuff - but as i am a not very experienced Avisynth User i cannot say if this makes sense, both technically and for the restoration process. Also i would really like to get at least some of that nasty compression blocks out, is that process called "deblocking"? I guess it would be the MVTools for that, no? maybe someone of you avisynth experts can have a look at this: MPEG2Source("H:\CONVERSION_dvd\ElGrito\el_grito.d2v") # Set Field Order AssumeTFF() # Reverse Telecine (http://neuron2.net/decomb/decombnew.html) Telecide(guide=1, post=0) Decimate(cycle=5) # Cut out Noise at Edges letterbox(10,6,6,6) # Stabilize Luma Flicker (http://avisynth.org.ru/deflicker/deflicker.html) DeFlicker(scene=30) # Stabilize Jitter (http://avisynth.org.ru/depan/depan.html) i = ConvertToYV12() mdata = DePanEstimate(i) DePanStabilize(i, data=mdata) # Remove Scratches (http://avisynth.org.ru/descratch/descratch.html) DeScratch(mindif=2) # Speed-Up 24fps to PAL 25fps & Resize to PAL Framesize assumefps(25,true) lanczosresize(720,576) |
30th January 2008, 04:02 | #2 | Link |
Registered User
Join Date: Sep 2005
Posts: 11
|
sample
i put a sample here:
http://www.khm.de/~tsteinmetz/demo_temp.avi i recompressed it to xvid but that didnt change the essential problems that i have with this material. would be great if somebody could suggest the right filters / settings to deal with this kind of footage... ciao |
30th January 2008, 07:16 | #3 | Link |
Registered User
Join Date: Feb 2004
Posts: 743
|
Your clip shows a loss of detail in the very dark areas which nothing can be done but there are two methods that I use, one is a AVS-p script and the other is a Virtualdub filter chain. here's the AVSp script.
.......................................................................................... AVISource("c:\1.vdr.avi") #ImageSource("c:\train.bmp") LoadPlugin("c:\AVS\Plugins\AGC.dll") LoadPlugin("c:\AVS\plugins\removegrain.dll") LoadPlugin("c:\AVS\Plugins\mt_masktools.dll") LoadPlugin("c:\AVS\Plugins\warpsharp.dll") Loadplugin("c:\avs\plugins\gradfun2db.dll") loadplugin("c:\avs\plugins\DeGrainMedian.dll") loadplugin("c:\avs\plugins\Smoothdeinterlacer.dll") LoadPlugin("c:\avs\plugins\Convolution3d.dll") LoadPlugin("c:\avs\plugins\FFT3DFilter.dll") LoadPlugin("c:\avs\plugins\VagueDenoiser.dll") LoadPlugin("c:\avs\plugins\depan.dll") LoadPlugin("c:\avs\plugins\depanEstimate.dll") LoadPlugin("c:\AVS\Plugins\repair.dll") LoadPlugin("c:\AVS\Plugins\masktools.dll") LoadPlugin("c:\avs\plugins\mvtools.dll") LoadPlugin("c:\avs\plugins\autolevels.dll") LoadPlugin("c:\avs\plugins\GrainOpt.dll") LoadPlugin("c:\avs\plugins\MSU_FRC.dll") import("c:\avs\seesaw6.avs") LoadPlugin("c:\avs\plugins\DGbob.dll") SetMemoryMax(512) ConvertToYV12() #Autolevels(filterRadius=8, sceneChgThresh=10, HDRAGC(avg_lum=128,mode=2,passes=9,shift_u=-16, shift_v=1,protect=2,coef_gain=0.24,max_gain=6.3,corrector=0.89,reducer=2.0,avg_window=16,black_clip=0.46,max_sat=1.56,min_sat=0.18,coef_sat=0.7) Tweak(-1.692,0.68,-18.36,1.0) Converttorgb24 RGBadjust(1.0,1.3,1.0) ConverttoYV12 #SeeSaw( NRlimit=4, NRlimit2=5, Sstr=1.5, Slimit=9, Spower=9, Szp=16, sootheT=80, bias=40) return last ............................................................................. The post below will have the AVSp markup That really the only problem I see is the high contrast harsh look. I will post the VD chain tomorrow. Richard photorecall.net Last edited by rfmmars; 30th January 2008 at 07:27. |
30th January 2008, 07:21 | #4 | Link |
Registered User
Join Date: Feb 2004
Posts: 743
|
### AvsP marked script ###
# AVISource("c:\1.vdr.avi") # #ImageSource("c:\train.bmp") # LoadPlugin("c:\AVS\Plugins\AGC.dll") # LoadPlugin("c:\AVS\plugins\removegrain.dll") # LoadPlugin("c:\AVS\Plugins\mt_masktools.dll") # LoadPlugin("c:\AVS\Plugins\warpsharp.dll") # Loadplugin("c:\avs\plugins\gradfun2db.dll") # loadplugin("c:\avs\plugins\DeGrainMedian.dll") # loadplugin("c:\avs\plugins\Smoothdeinterlacer.dll") # LoadPlugin("c:\avs\plugins\Convolution3d.dll") # LoadPlugin("c:\avs\plugins\FFT3DFilter.dll") # LoadPlugin("c:\avs\plugins\VagueDenoiser.dll") # LoadPlugin("c:\avs\plugins\depan.dll") # LoadPlugin("c:\avs\plugins\depanEstimate.dll") # LoadPlugin("c:\AVS\Plugins\repair.dll") # LoadPlugin("c:\AVS\Plugins\masktools.dll") # LoadPlugin("c:\avs\plugins\mvtools.dll") # LoadPlugin("c:\avs\plugins\autolevels.dll") # LoadPlugin("c:\avs\plugins\GrainOpt.dll") # LoadPlugin("c:\avs\plugins\MSU_FRC.dll") # import("c:\avs\seesaw6.avs") # LoadPlugin("c:\avs\plugins\DGbob.dll") # SetMemoryMax(512) # # ConvertToYV12() # # [MSU Slow Motion=0] # MSU_FRC(4, "slow") # [/MSU Slow Motion] # # # [Super Motion=0] # function MotionProtectedFPS( # \ clip input, float FPS, # \ int "mode", int "protection", # \ int "iterate", int "reset", int "initialise") # { # mode = default(mode, warpfast) # protection = default(protection, 80) # iterate = default(iterate, 2) # reset = default(reset, 50) # initialise = default(initialise, 6) # # originalFPS = input.framerate() # input # # mp = temporalsoften(2,4,5,2).FindMotion(iterate = iterate, reset = reset, # \ initialise = initialise) # p = MotionFPS(FPS,mode,Motion = mp) # maskp = mp.SumStretchFPSMask(FPS, protection) # # mn = temporalsoften(2,4,5,2).FindMotion(iterate = iterate, reset = reset, # \ initialise = initialise, from = next) # n = MotionFPS(FPS,mode,Motion = mn, source = next) # maskn = mn.SumStretchFPSMask(FPS, protection, source = next) # # maskp # assumeFPS(originalFPS) # CombineFPS(FPS, maskp, maskn.Invert()) # bilinearresize(width*8, height*8) # crop(0, 0, input.width(), input.height()) # fity2uv() # # maskedmerge(p, n, last, u=3, v=3) # } # [/Super Motion] # # # [GrainOptimizer=0] # GrainOptimizer() # [/GrainOptimizer] # # [First Invert=0] # INVERT() # [/First Invert] # # # ConverttoYv12() # [Deinterlace=0] # Smoothdeinterlace() # [/Deinterlace] # # # [<separator="AutoLevels">] # [Autolevel=0] # Autolevels(filterRadius=[<"Radius(8)", 0, 20, 5>],sceneChgThresh=[<"Threshold(10)", 0, 255, 254>]) # [/Autolevel] # # #Autolevels(filterRadius=8, sceneChgThresh=10, # # [Refocus=0] # # [<separator="Refocus>] # # function abcxyz(clip clp, int "rad", int "ss") # { # ss=([<"Core (1)", 0.00, 2.00, 0.64>]) # radius for supersampling / ss=1.0 -> no supersampling # rad=([<"Refocus (3)", 0.0, 20.0, 0.9>]) # radius for halo removal # # # ox = clp.width() # oy = clp.height() # # x = clp.bicubicresize(m4(ox/rad),m4(oy/rad)).bicubicresize(ox,oy,1,0) # y = yv12lutxy(clp,x,"x 8 + y < x 8 + x 24 - y > x 24 - y ? ? x y - abs * x 32 x y - abs - * + 32 /",U=2,V=2) # z1 = repair(clp,y,1) # maxbig = y.expand().bicubicresize(m4(ox*ss),m4(oy*ss)) # minbig = y.inpand().bicubicresize(m4(ox*ss),m4(oy*ss)) # z2 = clp.lanczosresize(m4(ox*ss),m4(oy*ss)) # z2 = z2.logic(maxbig,"min",U=2,V=2).logic(minbig,"max",U=2,V=2).lanczosresize(ox,oy) # # return( (ss==1.0) ? z1 : z2 ) # } # abcxyz() # # function m4(float x) {return( x<16?16:int(round(x/4.0)*4)) } # [/Refocus] # # [DeHalo=0] # # [<separator="DeHalo">] # # function abcxyz(clip clp, int "rad", int "ss") # { # rad=([<"Radius (3)", -1.0, 20.0, 0.3>]) # radius for halo removal # ss=([<"Super Sampling (1)", -0.2, 3, 1.2>]) # radius for supersampling / ss=1.0 -> no supersampling # # ox = clp.width() # oy = clp.height() # # x = clp.bicubicresize(m4(ox/rad),m4(oy/rad)).bicubicresize(ox,oy,1,0) # y = yv12lutxy(clp,x,"x 8 + y < x 8 + x 24 - y > x 24 - y ? ? x y - abs * x 32 x y - abs - * + 32 /",U=2,V=2) # z1 = repair(clp,y,1) # maxbig = y.expand().bicubicresize(m4(ox*ss),m4(oy*ss)) # minbig = y.inpand().bicubicresize(m4(ox*ss),m4(oy*ss)) # z2 = clp.lanczosresize(m4(ox*ss),m4(oy*ss)) # z2 = z2.logic(maxbig,"min",U=2,V=2).logic(minbig,"max",U=2,V=2).lanczosresize(ox,oy) # # return( (ss==1.0) ? z1 : z2 ) # } # abcxyz() # # function m4(float x) {return( x<16?16:int(round(x/4.0)*4)) } # [/DeHalo] # # # ConverttoYUY2() # # [HQ Movie=0] # Convolution3D (preset="movieHQ") # [/HQ Movie] # # # [LQ Movie=0] # Convolution3D (preset="movieLQ") # [/LQ Movie] # # # [Bad Tape=0] # Convolution3D (0,32,128,16,64,10,0) # [/Bad Tape] # # # ConvertToYV12() # # [Pre-Auto Gain=0] # colorYUV(autogain=true) # [/Pre-Auto Gain] # # # [Analyze Input Signal=0] # colorYUV(analyze=true) # [/Analyze Input Signal] # # # [Open White balance=0] # colorYUV(autowhite=true) # [/Open White balance] # # # [HDRagc=1] # [<separator="HDRagc">] # # HDRAGC(avg_lum=[<"Screen Radial (128)", 128, 2000, 128>],mode=[<"Mode (2)", 0, 2, 2>],passes=[<"Resample (4)", 1, 9, 9>],shift_u=[<"U Color Yel. Blue (0)", -100, +100, -16>], shift_v=[<"V Color Cyan Magenta (0)", -100, +100, 1>],protect=[<"Protect (2)", 0, 2, 2>],coef_gain=[<"Shadow Brightness (1)", 0.00, 0.5, 0.24>],max_gain=[<"Max Level (3)", 0.00, 8, 6.3>],corrector=[<"Corrector ((0)", 0.50, 1.50, 0.89>],reducer=[<"Reducer (0.5)", 0, 2, 2.0>],avg_window=[<"Frames Adverage (30)", 0, 120, 16>],black_clip=[<"Black Clip (0.00)", 0.00, 2.00, 0.46>],max_sat=[<"Max Satuation (9)", 0.00, 4, 1.56>],min_sat=[<"Min Satuation (1)", 0.00, 2, 0.18>],coef_sat=[<"Dark Color Level (1)", 0, 2, 0.7>]) # [/HDRagc] # # [<separator="Color Balance">] # Tweak([<"Hue (0)", -60.00, 60.00, -1.692>],[<"sat(2)", 0.00, 20.00, 0.68>],[<"Bright", -50.00, 50.00, -18.36>],[<"Cont", 0.00, 2.00, 1.0>]) # # [<separator="RGB Setup">] # [RGB Adjust=1] # Converttorgb24 # RGBadjust([<"Red (0)", 0.00, 2, 1.0>],[<"Green (0)", 0.00, 2, 1.3>],[<"Blue (0)", 0.00, 2, 1.0>]) # # ConverttoYV12 # [/RGB Adjust] # # # # [Depan=0] # motion=DepanEstimate(trust=2.5, fftw=true) # DepanInterleave(data=motion) # YToUV(fft3dfilter(sigma=3, plane=1).UToY,\ # fft3dfilter(sigma=3, plane=2).VToY,\ # fft3dfilter(sigma=2, plane=0)) # SelectEvery(3,1) # [/Depan] # # # [Lite Grain=0] # DeGrainMedian(limitY=2,limitUV=3,mode=0,interlaced=false) # DeGrainMedian(limitY=2,limitUV=3,mode=1,interlaced=false) # [/Lite Grain] # # [Medium Grain=0] # DeGrainMedian(limitY=7,limitUV=9,mode=0,interlaced=false) # DeGrainMedian(limitY=7,limitUV=9,mode=1,interlaced=false) # [/Medium Grain] # # # [Med-Heavy Grain=0] # DeGrainMedian(limitY=40,limitUV=56,mode=0,interlaced=false) # [/Med-Heavy Grain] # # # [Bad Grain=0] # DeGrainMedian(limitY=20,limitUV=28,mode=0,interlaced=false) # DeGrainMedian(limitY=20,limitUV=28,mode=1,interlaced=false) # [/Bad Grain] # # [<separator="Noise Reduction 1">] # [Noise Redution 1=0] # DeGrainMedian([<"Y-NOISE-1", 0, 255, 20>],[<"UV-NOISE-1", 0, 255, 28>],[<"MODE-1", 0, 5, 0>],interlaced=false) # [/Noise Redution 1] # [<separator="Noise Reduction 2">] # [Noise Reduction 2=0] # DeGrainMedian([<"Y-NOISE-2", 0, 255, 0>],[<"UV-NOISE-2", 0, 255, 40>],[<"MODE-2", 0, 5, 1>],interlaced=false) # [/Noise Reduction 2] # # [Sharping=0] # Function LimitedSharpenFaster( clip clp, # \ float "ss_x", float "ss_y", # \ int "dest_x", int "dest_y", # \ int "Smode" , int "strength", int "radius", # \ int "Lmode", bool "wide", int "overshoot", int "undershoot", # \ int "soft", int "edgemode", bool "special", # \ int "exborder" ) # { # ox = clp.width # oy = clp.height # # Smode = default( Smode, 3 ) # ss_x = (Smode==4) # \ ? default( ss_x, 1.25) # \ : default( ss_x, 1.5 ) # ss_y = (Smode==4) # \ ? default( ss_y, 1.25) # \ : default( ss_y, 1.5 ) # dest_x = default( dest_x, ox ) # dest_y = default( dest_y, oy ) # strength = (Smode==1) # \ ? default( strength, 160 ) # \ : default( strength, 100 ) # strength = (Smode==2&&strength>100) ? 100 : strength # radius = default( radius, 2 ) # Lmode = default( Lmode, 1 ) # wide = default( wide, false ) # overshoot = default( overshoot, 1) # undershoot= default( undershoot, overshoot) # softdec = default( soft, 0 ) # soft = softdec!=-1 ? softdec : sqrt( (((ss_x+ss_y)/2.0-1.0)*100.0) ) * 10 # soft = soft>100 ? 100 : soft # edgemode = default( edgemode, 0 ) # special = default( special, false ) # exborder = default( exborder, 0) # #radius = round( radius*(ss_x+ss_y)/2) # If it's you, Mug Funky - feel free to activate it again # xxs=round(ox*ss_x/8)*8 # yys=round(oy*ss_y/8)*8 # smx=exborder==0?dest_x:round(dest_x/Exborder/4)*4 # smy=exborder==0?dest_y:round(dest_y/Exborder/4)*4 # # clp.isYV12() ? clp : clp.converttoyv12() # # ss_x != 1.0 || ss_y != 1.0 ? last.lanczosresize(xxs,yys) : last # tmp = last # # edge = mt_logic( tmp.mt_edge(thY1=0,thY2=255,"8 16 8 0 0 0 -8 -16 -8 4") # \ ,tmp.mt_edge(thY1=0,thY2=255,"8 0 -8 16 0 -16 8 0 -8 4") # \ ,"max") .mt_lut("x 128 / 0.86 ^ 255 *") #.levels(0,0.86,128,0,255,false) # # tmpsoft = tmp.removegrain(11,-1) # dark_limit1 = tmp.mt_inpand() # bright_limit1 = tmp.mt_expand() # dark_limit = (wide==false) ? dark_limit1 : dark_limit1 .removegrain(20,-1).mt_inpand() # bright_limit = (wide==false) ? bright_limit1 : bright_limit1.removegrain(20,-1).mt_expand() # minmaxavg = special==false # \ ? mt_average(dark_limit1, bright_limit1) # \ : mt_merge(dark_limit,bright_limit,tmp.removegrain(11,-1),Y=3,U=-128,V=-128) # # Str=string(float(strength)/100.0) # normsharp = Smode==1 ? unsharpmask(strength,radius,0) # \ : Smode==2 ? sharpen(float(strength)/100.0) # \ : Smode==3 ? mt_lutxy(tmp,minmaxavg,yexpr="x x y - "+Str+" * +") # \ : mt_lutxy(tmp,tmpsoft,"x y == x x x y - abs 16 / 1 2 / ^ 16 * "+Str+ # \ " * x y - 2 ^ x y - 2 ^ "+Str+" 100 * 25 / + / * x y - x y - abs / * + ?") # # OS = string(overshoot) # US = string(undershoot) # mt_lutxy( bright_limit, normsharp, yexpr="y x "+OS+" + < y x y x - "+OS+" - 1 2 / ^ + "+OS+" + ?") # mt_lutxy( dark_limit, last, yexpr="y x "+US+" - > y x x y - "+US+" - 1 2 / ^ - "+US+" - ?") # # Lmode==1 ? mt_clamp(normsharp, bright_limit, dark_limit, overshoot, undershoot) : last # # normal = last # zero = mt_clamp(normsharp, bright_limit, dark_limit, 0,0) # # Lmode==3 ? mt_merge(normal,zero,edge.mt_inflate()) : normal # # edgemode==0 ? last # \ : edgemode==1 ? mt_merge(tmp,last,edge.mt_inflate().mt_inflate().removegrain(11,-1),Y=3,U=1,V=1) # \ : mt_merge(last,tmp,edge.mt_inflate().mt_inflate().removegrain(11,-1),Y=3,U=1,V=1) # # AMNT = string(soft) # AMNT2 = string(100-soft) # sharpdiff=mt_makediff(tmp,last) # sharpdiff2=mt_lutxy(sharpdiff,sharpdiff.removegrain(19,-1), # \ "x 128 - abs y 128 - abs > y "+AMNT+" * x "+AMNT2+" * + 100 / x ?") # # soft==0 ? last : mt_makediff(tmp,sharpdiff2) # # (ss_x != 1.0 || ss_y != 1.0) # \ || (dest_x != ox || dest_y != oy) ? lanczosresize(dest_x,dest_y) : last # # ex=blankclip(last,width=smx,height=smy,color=$FFFFFF).addborders(2,2,2,2).coloryuv(levels="TV->PC") # \.blur(1.3).mt_inpand().blur(1.3).bicubicresize(dest_x,dest_y,1.0,.0) # tmp = clp.lanczosresize(dest_x,dest_y) # # clp.isYV12() ? ( exborder==0 ? tmp.mergeluma(last) # \ : mt_merge(tmp,last,ex,Y=3,U=1,V=1) ) # \ : ( exborder==0 ? tmp.mergeluma(last.converttoyuy2()) # \ : tmp.mergeluma( mt_merge(tmp.converttoyv12(),last,ex,Y=3,U=1,V=1) # \ .converttoyuy2()) ) # # (edgemode!= -1) ? last : edge.lanczosresize(dest_x,dest_y).greyscale # # } # # [<separator="Sharping">] # LimitedSharpenFaster(Smode=1, ss_x=2.0, ss_y=2.0,strength=[<"Sharpness (400)", 0, 2400, 407>],overshoot=[<"OverShoot (0)", 0, 6, 0>]) # # [/Sharping] # # [Post-Auto Gain=0] # colorYUV(autogain=true) # [/Post-Auto Gain] # # [White Balance=0] # colorYUV(autowhite=true) # [/White Balance] # # # [Analyze Signal Output=0] # colorYUV(analyze=true) # [/Analyze Signal Output] # # # [<separator="SeeSaw">] # [SeeSaw 1=0] # SetMTmode(2,2) # SeeSaw( NRlimit=10,NRlimit2=5, Sstr=[<"Sstr(1.5)", .1, 10, 5.0>],Slimit=9,Spower=9, Szp=[<"Spz(16)", .1, 30, 18.0>],sootheT=80, bias=[<"Bias(40)", .1, 80, 80.0>] ) # [/SeeSaw 1] # # # #[SeeSaw=0] # #SetMTmode(2,2) # #[<separator="SeeSaw">] # #SeeSaw(NRlimit=[<"NR-Limit(4)",.1,10,4>],NRlimit2=[<"NR-Limit2(5)", .1, 10, 4>], Sstr=[<"Sstr(1.5)",.1,10,1.5>], Slimit=[<"Slimit(9)",.1,20,9>], Spower=[<"Spower(9)",.1,20,9>], #Szp=[<"Spz(16)",.1,30,16>], sootheT=[<"smootheT(8)",.1,20,8>], bias=[<"Bias(40)",.1,80,40>] ) # #[/SeeSaw] # # # [<separator="SeeSaw Boost 2">] # [SeeSaw 2=0] # SetMTmode(2,2) # SeeSaw( NRlimit=10,NRlimit2=5, Sstr=[<"SstrT(1.5)", .1, 10, 8.3>],Slimit=9,Spower=9, Szp=[<"SpzT(16)", .1, 30, 23.0>],sootheT=80, bias=[<"BiasT(40)", .1, 80, 7.6>] ) # [/SeeSaw 2] # # #SeeSaw( NRlimit=4, NRlimit2=5, Sstr=1.5, Slimit=9, Spower=9, Szp=16, sootheT=80, bias=40) # # # [MiniDVD-Camcorder=0] # complementparity # separatefields # #AssumeFrameBased # #AssumeFieldBased # #SwapFields # bob() # [/MiniDVD-Camcorder] # # [MiniDVD-Camcorder 2=0] # complementparity # #separatefields # #AssumeFrameBased # AssumeFieldBased # #SwapFields # DGbob(order=1) # # [/MiniDVD-Camcorder 2] # # [Invert Video=0] # INVERT() # [/Invert Video] # return last ### AvsP marked script ### Richard photorecall.net |
30th January 2008, 19:57 | #5 | Link |
Registered User
Join Date: Feb 2004
Posts: 743
|
This is the last filter chain that I used for film restoration, you will want to reset all of the values for your clip
.................................................................................. VirtualDub.audio.SetSource(1); VirtualDub.audio.SetMode(0); VirtualDub.audio.SetInterleave(1,500,1,0,0); VirtualDub.audio.SetClipMode(1,1); VirtualDub.audio.SetConversion(0,0,0,0,0); VirtualDub.audio.SetVolume(); VirtualDub.audio.SetCompression(); VirtualDub.audio.EnableFilterGraph(0); VirtualDub.video.SetInputFormat(0); VirtualDub.video.SetOutputFormat(7); VirtualDub.video.SetMode(3); VirtualDub.video.SetSmartRendering(0); VirtualDub.video.SetPreserveEmptyFrames(0); VirtualDub.video.SetFrameRate2(0,0,1); VirtualDub.video.SetIVTC(0,0,-1,0); VirtualDub.video.SetCompression(); VirtualDub.video.filters.Clear(); VirtualDub.video.filters.Add("Deinterlace 'Muksun'"); VirtualDub.video.filters.instance[0].Config(150); VirtualDub.video.filters.Add("Stable video v1.0 alpha"); VirtualDub.video.filters.instance[1].Config(4, 4691195); VirtualDub.video.filters.Add("MSU SmartBrightness 1.01"); VirtualDub.video.filters.instance[2].Config(0, 114, -32, 0); VirtualDub.video.filters.instance[2].SetEnabled(false); VirtualDub.video.filters.Add("RGB Equalizer(2.11)"); VirtualDub.video.filters.instance[3].Config("€€€€€€€€€€€€€€€€€€€€€€€€€€€€€‹€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€„€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€Ÿ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€‡€€€€€€€€•€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€†€„€‚„€‚„€‚„€‚„€‚„€‚„€‚„€‚„€‘„€‚„€"); VirtualDub.video.filters.Add("ffvdub"); VirtualDub.video.filters.instance[4].Config2(1700,"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"); VirtualDub.video.filters.Add("dynamic noise reduction (MMX)"); VirtualDub.video.filters.instance[5].Config (31); VirtualDub.video.filters.instance[5].SetEnabled(false); VirtualDub.video.filters.Add("Color Mill(2.1)"); VirtualDub.video.filters.instance[6].Config(25700, 25700, 25700, 25700, 25956, 25700, 25700, 28772, 28784, 25692, 25700, 25700, 25700, 1124, 4101); VirtualDub.audio.filters.Clear(); ........................................................... EDIT: Must use Virtualdub 1.7.10 exp Richard photorecall.net Last edited by rfmmars; 30th January 2008 at 19:59. |
31st January 2008, 01:34 | #6 | Link |
Registered User
Join Date: Sep 2005
Posts: 11
|
it took me a while to find download and install all the filters you mentioned. For the virtualDub filterchain: I couldnt find the version you mentioned (1.7.10) - the newest i found was 1.7.7 - but this keeps crashing when i open your settings file... where do i get 1.7.10?
now i'll to understand the avs process you mentioned. thank you very much so far. i will report if i have some results. |
31st January 2008, 07:47 | #8 | Link |
VideoAudio
Join Date: Feb 2007
Location: Poland
Posts: 219
|
|
31st January 2008, 08:44 | #10 | Link | |
Registered User
Join Date: Feb 2004
Posts: 743
|
Quote:
Hers the link. http://www.virtualdub.org/beta/Virtu....8.0-test1.zip If it is crashing try deleting a filter one at a time. Also the reason it may be crashing is in the exp. version, there is a check box to turn off and on a filter, and the regular version doesn't have it as far as I know and that maybe why it crashes. Richard photorecall.net |
|
1st February 2008, 02:21 | #12 | Link | |
Registered User
Join Date: Feb 2004
Posts: 743
|
Quote:
If you can't do it e-mail me at rfmmars@cox.net Richard photorecall.net |
|
|
|