Académique Documents
Professionnel Documents
Culture Documents
Introduccin
Qu es AviSynth?
AviSynth por s mismo no proporciona una interfaz grfica (GUI) pero en vez de eso, usa
un sistema de scripting que permite edicin no linear avanzada. Mientras esto puede
parecer tedioso a primera vista, es extraordinariamente poderoso y es una forma muy buena
para manejar proyectos precisa, consistente, y reproduciblemente. Como los scripts basados
en texto son comprensibles, los proyectos estn inherentemente autodocumentados. El
lenguaje de scripting es poderoso pero simple, y filtros complejos pueden crearse a partir de
operaciones bsicas, para desarrollar una sofisticada paleta de efectos tiles y nicos.
AviSource(c:\carpeta\video.avi)
Para cargar un archivo AVI. Entre las comillas se indica la ruta completa al archivo, aunque
sta se puede obviar (slo se pone el nombre) si el fichero AVS est en la misma carpeta
que dicho archivo.
Para poder cargar otros formatos que no sean AVI se utiliza esta lnea, que hace uso del
DirectShow y as permite demultiplexar/decodificar todo formato que posea un CODEC
directshow adecuado instalado en el sistema, as como tambin hace falta el splitter
correspondiente, como en el caso del formato MP4 del ejemplo, donde es necesario el Haali
Media Splitter.
Especificar los FPS del video de origen slo es necesario en ciertos casos de decoders
directshow que fallan en informarlo, como cuando se trata de achivos ASF.
Nota: es recomendable poner siempre esta lnea cundo se hace el uso del directshow:
,audio=false, fps=119.88, convertfps=true). sto para evitar problemas con raws de fps
variable, es decir una raw de VFR.
Para tratar y editar un video, es necesaria la inclusin de los filtros, que son archivos .dll
que nos sirven para eliminar ruido, cortar bordes, mejorar el color, etc.
Para cagar los filtros que no vienen incluidos con Avisynth se utiliza Loadplugin(ruta
donde se encuentra el filtro)
Ejemplo:
LoadPlugin(C:\plugins\Vsfilter.dll)
Esto debe colocarse antes de la carga del archivo, quedando de la siguiente manera:
LoadPlugin(C:\plugins\Vsfilter.dll)
DirectShowSource(c:\Carpera\video.mp4)
Nota: Filtros internos no necesitan ser llamados al comienzo del script avs.
FILTROS
Filtrtos Internos
Debajo del nombre del filtro vern los formatos de color con los que dicho filtro puede
trabajar. Llegado el caso en que su video est en un formato no soportado por el filtro,
pueden convertirlo usando el filtro ConvertToXXX, explicado ms adelante.
Resize
[RGB24-RGB32-YUY2-Y8-YV411-YV12-YV16-YV24]
BilinearResize(ancho,altura)
BicubicResize(ancho,altura,b,c)
LanczosResize(ancho,altura)
Lanczos4Resize(ancho,altura)
GaussResize(ancho,altura,p)
BlackmanResize(ancho,altura)
PointResize(ancho,altura)
SplineXXResize(ancho,altura) , donde XX puede ser 16, 36 o 64
El ancho y altura deben indicarse con valores enteros, dado que la nidad ms chica posible
es el pixel.
Bilinear: tiende a suavizar la imagen, esto significa que es el que menos detalle deja pasar
al redimensionar, as que es adecuado para cuando usen bitrates bajos, y/o cuando se reduce
la resolucin.
Lanczos: permite alcanzar an ms detalle y con mejor calidad que el Bicubic, slo
recomendable para altos bitrates. Sirve como alternativa al Bicubic con valores de c entre
0,6 y 0,75, slo que logra una calidad superior en estos valores (menos artifacts).
BlackMan: sta es una modificacin del Lanczos que permite lograr menos artifacts
(errores) con valores de taps altos.
Point: es el filtro para resize ms simple que existe. Su uso no es para nada recomendable a
no ser que se quiera disminuir la calidad del vdeo adrede. Sus resultados suelen contener
mucho bloque.
SplineXX: este filtro tiene como objetivo alcanzar un mximo nivel de detalle, con menos
artifacts a raz del mismo que si se usara Lanczos. XX puede valor 16, 36 y 64, cuanto
mayor este valor mayor nitidez de lograra.
Desde la versin 2.56 de avisynth existe la posibilidad de cortar la imagen desde el mismo
filtro de resize, como con el filtro Crop. Si se utiliza, en el proceso primero se corta y luego
se aplica el resize.
AddBorders
[RGB24-RGB32-YUY2-Y8-YV411-YV12-YV16-YV24]Sintaxis:
AddBorders(v,x,y,z,color)
El parmetro color permite elegir un color distinto del negro (default, si no se especifica
nada); este color lo deben indicar en cdigo hexadecimal. Aqu pueden ver una lista con los
cdigos y colores soportados.
Ejemplo:
AddBorders(0,64,0,64,$00FFFF)
Esta lnea agrega bandas de 64 pixeles tanto arriba como abajo de color Cyan. De seguro
quede horrible pero es un ejemplo nada ms .
Crop
[RGB24-RGB32-YUY2-Y8-YV411-YV12-YV16-YV24]Sintaxis:
Crop(x,y,-z,-k) Crop(izquierda,arriba,-derecha,-abajo)
Este filtro es muy simple de implementar, sirve para cortar cierta cantidad de pixeles de los
lados de la imagen. Se debe indicar la cantidad a cortar de cada lado, donde x es
izquierda, y es arriba, z es derecha y k es abajo.
Blur / Sharpen
[RGB24-RGB32-YUY2-Y8-YV411-YV12-YV16-YV24]
El filtro Blur tiene como objetivo distorsionar ligeramente la imagen suavizando los bordes
de los objetos en el video (detalle), esto puede servir para disimular la aparicin de bloques
o pixelado, o tambin para facilitar la codificacin a muy bajos bitrates sin causar feos
artifacts en bordes o sectores de alto detalle que requieren mayor bitrate.
Sintaxis
Blur(x)
Blur(x,y)
Donde x es un valor real que puede variar entre -1.0 y 1.58, siendo los valores negativos
lo mismo que usar el filtro sharpen con valores positivos. La segunda forma de invocarlo
agrega la variable y, que sirve para indicar por separado la intensidad del filtro en forma
vertical, as queda la horizontal con la letra x.
El filtro Sharpen realiza justo lo opuesto, agudiza el detalle de la imagen, es decir que busca
lograr una mayor nitidez. Puede variar entre 0 y 1.0
Sharpen(x)
Sharpen(x,y)
SpatialSoften / TemporalSoften
[SpatialSoften: YUY2/TemporalSoften: YUY2-Y8-YV411-YV12-YV16-YV24]
Estos filtros se ocupan de eliminar el ruido de un video. Segn la wiki oficial pueden lograr
milagros (dice eso textualmente), y se recomienda mucho su uso. Eso s, con cuidado
porque a valores muy altos pueden liquidar detalle. Tambin son muy lentos, especialmente
a mayores valores del radio.
La diferencia entres ambos es que el Spatial compara pixeles adyacentes en un mismo
frame, mientras que el Temporal compara frames adyacentes en un mismo pixel. El
primero sin embargo parece ser el ms efectivo.
El Spatial slo funciona en el espacio de color YUY2, as que si desean implementarlo y
tienen como origen un formato distinto debern convertirlo, lo cual ser explicado en otro
filtro prximamente.
Sintaxis:
SpatialSoften(radio,luma,croma)
TemporalSoften(radio,luma,croma,escena,modo)
Lamentablemente la info en la wiki sobre este filtro es algo escasa as que para mejor
entendimiento de cmo influyen estos valores debern recurrir a prueba y error. Todos los
valores son enteros. radio representa el rea circundante al pixel que el filtro analizar (en
el caso del temporal sern cuantos frames adyacentes), cuanto mayor sea mejor se
desempeara el mismo, pero ms lento resultar. luma y croma corresponden a los
limites para luminancia y crominancia respectivamente a partir de los cuales se les aplicara
el filtro, si la imagen posee valores por debajo el filtro no es aplicado. En el Temporal estos
son considerados y filtrados por separado, pero en el Spatial slo se procesan si ambos
superan el lmite.
El valor modo por default es 1, pero puede setearse a 2 para aprovechar un mejor
desempeo del filtro temporal (mejor calidad y mayor velocidad) agregado en la versin
2.56 de avisynth.
Y por ltimo escena permite fijar un valor lmite para no procesar imgenes involucradas
en cambios de escena. El valor representa el cambio promedio de los pixeles entre frames.
Un rango recomendado es entre 5 y 30. Esta ltima opcin requiere un procesador que
soporte instrucciones ISSE.
Tweak
[YUY2-Y8-YV411-YV12-YV16-YV24]
Con l podremos regular a gusto contraste, brillo, saturacin y color. Es sumamente til y
nos permitir lograr algn que otro efecto muy interesante.
Sintaxis:
Tweak(color,sat,brillo,cont,luma,startcolor,endcolor,maxsat,minsat,interp)
sat(0.0 / 10.0, default=1.0): ajusta la saturacin del color, este vendra a ser el valor que
ajusta la intensidad del color. Valores por debajo de 1.0 la reducen y viceversa.
interp(0 / 32, default=16): se usa para interpolar (de forma lineal) los valores de minsat y
maxsat, en el rango [minsat-interp,minsat] y [maxsat,maxsat+interp]. Con interp=0 no hay
interpolacin, til por ejemplo cuando el video se compone nicamente de colores
uniformes.
AssumeFPS
[RGB24-RGB32-YUY2-Y8-YV411-YV12-YV16-YV24]
Sintaxis:
AssumeFPS(fps,syncaudio)
AssumeFPS(num,den,syncaudio)
AssumeFPS(clip1,clip2,syncaudio)
AssumeFPS(preset,syncaudio)
Tambin pueden valerse de presets ya existentes para elegir los FPS segn los estndares,
mediante el valor preset, y segn los mencionados en la tabla de esta pgina.
Si otro video est presente (mediante clip2 es posible agregarlo) entonces el frame rate
del video original (clip1) ser igualado al mismo, til cuando se desean unir dos videos
de framerate ligeramente distintos.
Ejemplo:
AssumeFPS(24000,1001,true)
Permite modificar los FPS a 23,976 y tambin modifica el audio.
ChangeFPS
[RGB24-RGB32-YUY2-Y8-YV411-YV12-YV16-YV24]
Sintaxis:
ChangeFPS(fps,syncaudio)
ChangeFPS(num,den,syncaudio)
ChangeFPS(clip1,clip2,syncaudio)
ChangesFPS(preset,syncaudio)
Los parmetros y su funcin son los mismos que AssumeFPS, as que pueden guiarse con
dicha descripcin.
Reverse
[RGB24-RGB32-YUY2-Y8-YV411-YV12-YV16-YV24]
Simple, se ocupa de que el video sea reproducido al revs, de atrs hacia adelante.
En origen entrelazado la paridad entre campo superior e inferior se modifica.
Sintaxis:
Reverse()
Turn
[RGB24-RGB32-YUY2-Y8-YV411-YV12-YV16-YV24]TurnLeft()
TurnRight()
Turn180()
PullDown
[RGB24-RGB32-YUY2-Y8-YV411-YV12-YV16-YV24]Sintaxis:
PullDown(a,b)
Por ejemplo: un telecine 2:3 o 3:2 (a:b) modifica el framerate de 23.976 a 29.97
agregando campos duplicados, dos para el primer frame y tres para el segundo, y as hasta
el fin del video.
Usar 0:3 es lo mismo que deshacer el pulldown 3:2 (29.97 -> 23.976).
Este ltimo no lo prob as que ignoro si realmente funciona, aunque el pulldown 2:3 o 3:2
si debiera hacerlo sin problemas.
ConvertToXXX
[RGB24-RGB32-YUY2-Y8-YV411-YV12-YV16-YV24]
Convierte el video al espacio de color elegido. til cuando el filtro que quieren usar slo
soporta algunos formatos especficos o uno solo en particular, como por ejemplo el filtro
SpatialSoften, que slo soporta trabajar sobre YUY2. Tambin en el caso de que el
codificador a donde envan el video soporte un formato de color de entrada especifico.
Sintaxis:
ConvertToXXX(matrix,entrelazado,chroma1,chroma2)
XXX puede ser: RGB, RGB24, RGB32, YUY2, Y8, YV411, YV12, YV16, YV24.
En matrix(comillas incluidas) pueden elegir entre: Rec.601(default), PC.601, Rec.709 y
PC.709, que le indica al filtro cual es el rango de colores. Los Rec reducen el rango a aquel
soportado por la TV analgica(16,235) y los PC procesan el rango de color completo
(0,255). Segn la informacin en la wiki Rec.601 debe ser usado cuando la fuente es
XviD/DivX o capturas analgicas; Rec.709 en cambio se recomienda usarlo cuando la
fuente es HDTV o DVD.
chroma1 se usa cuando convierten desde o hacia YV12, pueden elegir entre MPEG2
(default), MPEG1 o DV.
chroma2 es el filtro de reescalado que se usa para la crominancia en los casos en donde la
misma tiene diferente resolucin entre los formatos de color que se estn convirtiendo.
Puede usarse cualquiera de los mencionados en el filtro Resize, el default es Bicubic.
GreyScale
[RGB24-RGB32-YUY2-Y8-YV411-YV12-YV16-YV24]Convierte el video a escala de
grises (no cambia el formato de color).
Sintaxis:
Greyscale()
FlipHorizontal / FlipVertical
[RGB24-RGB32-YUY2-Y8-YV411-YV12-YV16-YV24]
Sintaxis:
FlipHorizontal()
FlipVertical()
prcticos, y de dnde puedes descargarlos.
Rotan al video de tal manera que lo que se vea de izquierda-derecha pasa a verse de
derecha-izquierda, en el caso del horizontal, el vertical hace lo mismo pero en vertical valga
la redundancia.
Dicho de otra forma el video pasa a verse como el original se vera en un espejo.
Trim
Ejemplo:
[justify]Tambin podemos cortar una seccin del video que no queramos incluir y unir las
partes restantes. Digamos que queremos eliminar la seccin de los patrocinadores que
suelen aparecer en los captulos de Anime, para eso hacemos lo siguiente:
Video=DirectShowSource(c:\Carpera\video.mp4)
Parte1=Video.Trim(0,2000)
Parte2=Video.trim(2001,4000)
Parte3=Video.Trim(4001,0)
Final=Parte1+Parte3
Final=Final
return final
Como ven, le hemos asignado el valor Video a DirecShowSource, luego cortamos las
partes del video que queremos, lo que nos queda en que parte1 va desde el comienzo hasta
el final del opening, parte 2 es donde aparecen los patrocinantes y parte3 es el resto del
video, en la linea de abajo colocamos Final=Parte1+Parte3, ac estamos uniendo las partes
del video que queremos y omitiendo la de los patrocinates. En Final=Final podemoc
colocar los filtros que queramos a nuestro video separando cada filtro por un punto (.),
puede ser para cargar subttulos, etc.
A pesar de lo largo que es el post todava faltan algunas cosas pero esto sera lo ms bsico
en resumidas cuentas. Espero que les haya sido de utilidad. Saludos!!