vmesquita |
03-16-2004 08:38 PM |
Vc pode usar outros scripts, mas eles precisam estar em um formato específico. Como ninguém tinha perguntado antes eu não me preocupei, mas seria legal escrever um mini-how-to sobre isso.
Os scripts precisam obrigatoriamente usar os parametros WIDTH (largura destino), HEIGHT (altura destino), OVERSCAN e WIDESCREEN, e de preferencia, usar as funcoes divxresize() e divxborders com os parametros sugeridos. Além disso, vc precisa incluir os parametros necessários.
Para facilitar: se vc mexer/trocar só as linhas em verde, provavelmente tudo irá funcionar. Se vc tem algum script específico que está tentando usar e não conseguir com essas dicas, poste aqui que eu tento ajudar.
Quote:
Function DivXResize(clip c, int WIDTH, int HEIGHT, int OVERSCAN, string RESIZER, int widescreen) {
ratio=((c.width()+.0)/(c.height()+.0))+.0
halfheight43=(round(c.width()/1.33333)-c.height())/2
halfheight43=(widescreen==1)&&(ratio>1.7777) ? (round(c.width()/1.77777)-c.height())/2 : halfheight43
#Crop to fullscreen it this has been asked
fullscreen_cropper=round ((c.width()-(c.height()*1.33333) ) /2)
f_c_mod=fullscreen_cropper % 2
fullscreen_cropper=( f_c_mod == 1) ? (fullscreen_cropper+1) : fullscreen_cropper
c= (widescreen == 2) ? c.crop(fullscreen_cropper,0,(c.width()-2*fullscreen_cropper),0): c
#What would be the height keeping the aspect ratio if width was 640/320-NTSC or 768/384-PAL(4:3)
no_borders_height1=c.height()
#4:3 (option 0 and 2)
no_borders_height1=(HEIGHT == 480) ? (640*c.height())/(c.width()) : no_borders_height1
no_borders_height1=(HEIGHT == 240) ? (320*c.height())/(c.width()) : no_borders_height1
no_borders_height1=(HEIGHT == 576) ? (768*c.height())/(c.width()) : no_borders_height1
no_borders_height1=(HEIGHT == 288) ? (384*c.height())/(c.width()) : no_borders_height1
#anamorphic (option 1)
no_borders_height1=(HEIGHT == 480)&&(widescreen==1)&&(ratio>1.7777) ? (848*c.height())/(c.width()) : no_borders_height1
no_borders_height1=(HEIGHT == 240)&&(widescreen==1)&&(ratio>1.7777) ? (424*c.height())/(c.width()) : no_borders_height1
no_borders_height1=(HEIGHT == 576)&&(widescreen==1)&&(ratio>1.7777) ? (1024*c.height())/(c.width()) : no_borders_height1
no_borders_height1=(HEIGHT == 288)&&(widescreen==1)&&(ratio>1.7777) ? (512*c.height())/(c.width()) : no_borders_height1
#Now how much we have to shrink to make it fit inside a macroblock?
mod16height=no_borders_height1 % 16
#If the rest is <=8, subtracts the rest, else, completes to 16.
completion= (mod16height <= 8) ? (-mod16height) : (16-mod16height)
no_borders_height2=no_borders_height1+completion
#finally resize
c=Eval( RESIZER + "(c," + string(WIDTH) + "," + string(no_borders_height2) + ")" )
#add lateral overscan
c=letterbox(c,0,0,overscan*8,overscan*8)
return(c)
}
Function DivXBorders(clip c, int HEIGHT, int OVERSCAN) {
halfheight43=(HEIGHT-c.height())/2
c=addborders(c,0,halfheight43,0,halfheight43)
#Add vertical overscan
c=letterbox(c,overscan*8,overscan*8,0,0)
return(c)
}
converttoyv12()
BlindPP(cpu=4)
Blockbuster(method="noise",detail_min=1,detail_max =3,variance=0.1,seed=1)
converttoyuy2()
Convolution3D(1, 6, 12, 6, 8, 2.8, 0)
DivXResize(WIDTH, HEIGHT, 0, "LanczosResize",WIDESCREEN)
Undot()
TemporalSoften(2,7,7,3,2)
DCTFilter(1,1,1,1,1,1,0.5,0)
#Blockbuster(method="noise",detail_min=1,detail_ma x=10,variance=0.3,seed=5623)
DivXBorders(HEIGHT,OVERSCAN)
|
|