AVISO: Este documento está muy desfasado y se conserva únicamente por motivos de archivo histórico

Introducción

La creación de VCDs a partir de DVDs o archivos AVI se suele hacer con el programa TMPGEnc. Por ejemplo, convertir un AVI a VCD suele consistir en simplemente arrastrar el archivo AVI al TMPGEnc y seleccionar ciertas opciones de compresión.

Este método funciona, desde luego, pero no permite optimizar del todo las posibilidades del formato. El TMPGEnc realiza un reescalado de la imagen original al formato VCD (352 x 288 píxeles). Añade además las bandas negras que sean necesarias para la imagen, de un modo automático.

Pero tanto si deseamos algunas posibilidades más avanzadas (por ejemplo, la inserción de subtítulos fijos en la imagen), como si simplemente queremos aprovechar al máximo el bitrate que aplicamos en la recompresión, necesitamos utilizar opciones más avanzadas.

¿Cómo se puede optimizar el bitrate? Pues, por ejemplo, controlando nosotros como se va a realizar ese reescalado. Para comprender mejor estos métodos, es necesario comprender cómo funciona la compresión MPEG (tanto en MPEG-1, como en MPEG-2, o las versiones de MPEG-4 como Divx, XVID, etc). Si ya tienes conocimientos de este tema, puedes saltarte esta parte, pero recomiendo leerla para comprender un poco mejor por qué hacemos las cosas.

La compresión MPEG

En los formatos MPEG, la imagen se divide, para su tratamiento y compresión, en trozos de 8×8 píxeles. En cada uno de esos trozos, se producen dos compresiones distintas. Por un lado, se produce una compresión de la imagen dentro de cada frame (un frame es el equivalente en video a los fotogramas en cine). Esta compresión es similar a la que se produce en imágenes fijas, como por ejemplo los métodos de compresión JPEG, y se denomina COMPRESIÓN INTRO-FRAME.

En una segunda fase, se produce una compresión llamada COMPRESIÓN INTRA-FRAME. Esta compresión consiste en la comparación entre los bloques 8×8 de frames consecutivos. Si la imagen no ha cambiado entre frames, simplemente se “apunta” en el archivo el hecho de que ese trozo es idéntico al de la imagen anterior. Si el trozo ha cambiado, se “apuntan” solamente las diferencias.

Hay otro nivel dentro de la compresión intra-frame, que consiste en el análisis de la imagen, para ver los trozos que siguen siendo idénticos o muy parecidos, pero que se han desplazado a otro bloque. En esta fase se “apuntan” en el archivo final de imagen unos datos llamados “vectores de movimiento”, que simplemente nos cuentan cómo será ese frame a partir del frame anterior, es decir, muestran donde se han desplazado las imágenes.

Como se puede suponer, estos métodos requieren que haya un frame de referencia, a partir del cual podemos describir los frames posteriores, utilizando sus diferencias con el frame referente. Este frame de referencia se llama I-FRAME, y lleva solamente compresión intro-frame. Es decir, sería prácticamente como una foto fija JPEG. Los frames que se calculan a partir del I-Frame son los B-FRAMES y P-FRAMES.

Llega un momento en que las diferencias son tan grandes que ya no se puede expresar una imagen como referencia de las anteriores (por ejemplo, cuando se produce un cambio de plano). En estos casos, se vuelve a generar un I-Frame y a partir de él continúa la secuencia.

Cuando avanzamos o rebobinamos la reproducción de un archivo MPEG (tanto MPEG-1, MPEG-2 , Divx, XVID … todos son métodos MPEG), lo hacemos siempre “saltando” de un I-Frame a otro. Por eso se llaman también KEYFRAMES, o FRAMES CLAVE. Para mejorar esa capacidad de búsqueda en el archivo de imagen, cada cierto número de frames el codificador introduce un keyframe, haga o no haga falta.

El reescalado

Cuando recomprimimos una imagen al formato MPEG, tanto si viene de un AVI como de un DVD, tenemos que convertir el tamaño de esa imagen al estándar de VCD. Si por ejemplo tenemos un original proveniente de DVD, a 720×576 píxeles, tenemos que convertir esa imagen a 352×288 píxeles.

Si os fijáis, no es exactamente reducir a la mitad su resolución. La mitad de 720×576 es 360×288, NO 352×288. Si simplemente reducimos al tamaño VCD, obtenemos un error en la relación de aspecto, es decir, se verá la imagen ligeramente “achatada”.

Fijaos en estas dos imágenes. Por motivos de espacio no las pongo con su resolución original, sino simplemente para que veais la diferencia en la relación de aspecto. Las dos provienen de un original a 720×576, pero la de la arriba se ha reducido a la mitad, respetando su relación de aspecto, y en la de la abajo se ha simulado una conversión directa al estándar VCD.

Como veis, la imagen inferior es más estrecha con respecto a la superior, que conserva la relación de aspecto original.

Cuando simplemente abrimos un archivo .avi en TMPGEnc, el programa calcula automáticamente lo que debe hacer para evitar este efecto. Lo que hace es recortar ligeramente la imagen original, para que así, al reducir su tamaño, se respete la relación de aspecto original, aunque a costa de unos pocos píxeles.

El problema, en este caso, es que dejamos al programa decidir por su cuenta. No siempre la decisión es la más adecuada…

Y el problema se agrava en el caso de imágenes con una relación de aspecto distinta de la que mostramos. En este caso la imagen tenía una relación de aspecto de 4:3, o 1,3333 , que es la estándar de PAL. Pero… ¿y si hay bandas negras?

Veamos este caso : Película bajada de Internet, en archivo AVI. Su tamaño es de 608×336 píxeles, relación de aspecto 1.815. ¿Qué haría el TMPGEnc, de forma automática, en este caso?

Pues reduciría una línea de 1 píxel en la imagen original. Probablemente recortaría por abajo, dejando la imagen original en 608×336 píxeles, y la relación de aspecto en 1,814. El error es despreciable, no se podría captar por la vista humana. En un segundo paso, reduciría el tamaño de forma proporcional, para dejarlo en 352×194 píxeles, manteniendo la relación de aspecto en 1,814. En un tercer paso, añadiría bandas negras a la imagen, y comprimiría para tener, finalmente, un archivo MPEG de salida con una relación de aspecto correcta.

Hasta aquí todo perfecto, ya que la imagen no ha sufrido distorsión. Pero… ¿Qué ha pasado durante la compresión?

comprimir.

Como veis en la rejilla, al hacer el reescalado de forma automática, hay una línea de bloques donde tenemos en parte banda negra y en parte imagen.

Aunque parezca mentira, esta es una de las maneras más fáciles de aumentar innecesariamente el tamaño del archivo. La compresión se produce al detectar diferencias entre frames, y también al detectar la dirección en la que se mueve esa diferencia. Esas dos líneas de imagen en el bloque negro se comprimen de una manera muy poco eficiente, ya que por necesidad allí hay siempre grandes diferencias, y mucho movimiento. Un bloque de 8×8 píxeles donde el movimiento y las diferencias se “agrupan” se comprime mucho más eficientemente, y el tamaño final del archivo es menor. Podemos por tanto usar un bitrate más elevado, y en consecuencia, conseguir más calidad, si controlamos exactamente el tamaño de la imagen.

Este es otro frame de la misma película, tras comprimirlo en TMPGEnc pero siguiendo el método que viene a continuación. Como veréis en la imagen con rejilla (en esta imagen es de 16×16, que es la configuración que adoptaremos por seguridad en el Gordian Knot), ahora se ajusta exactamente a los bloques para la compresión MPEG. Evidentemente las bandas negras ocupan ahora un espacio despreciable, ya que son siempre iguales.

(Por cierto, esto se aplicaría igual tanto a MPEG-1 como a MPEG-2…o a Divx, Xvid, etc. … )

¿Qué se ha perdido para conseguir esto? Pues… exactamente dos líneas por arriba y dos por abajo. Totalmente imperceptible a la vista. Lo veréis con más claridad más adelante, con más ejemplos.

Otras mejoras previas a la compresión

En este manual emplearemos el Gordian Knot para generar un script AviSynth. Un script AviSynth (de extensión .avs), es un simple archivo de texto en el cual se invocan determinadas funciones del programa AviSynth, o incluso otras funciones creadas por terceros pero compatibles con este programa. AviSynth tiene prácticamente toda la funcionalidad de Virtual Dub y además otras muchas opciones añadidas, y además es capaz de abrir cualquier tipo de archivo. Funciona sirviendo frames tratados y descomprimidos a otro programa. La ejecución de un script AviSynth desde un programa como TMPGEnc ocasiona que el AviSynth le “pase” al TMPGEnc los frames de la película que hemos programado, uno por uno y además con el tratamiento que queramos. Podemos cortar partes de la imagen, reescalar, aplicar filtros para reducir el ruido y evitar la creación de macrobloques, e incluso cosas tan útiles como cambiar sobre la marcha el frame rate de una película (y así convertir una película NTSC a PAL), o desentrelazar la imagen en el caso de que nuestra película esté entrelazada.

No veremos todas esas opciones, porque el manual se haría demasiado largo. De todos modos, en la página principal de AviSynth tenéis un tutorial con la aplicación de todos los filtros estándar, y muchos de los filtros hechos por terceras personas.

Los filtros que sí usaremos serán, principalmente, los de subtítulos y desentrelazado. También las opciones estándar de cambio de frame rate, reescalado, crop …

Programas que utilizaremos

GORDIAN KNOT : Yo estoy usando en este momento la versión 0.27 , aunque creo que hay ya una versión 0.28 disponible. De todos modos, cualquiera vale, siempre y cuando permita abrir no sólo proyectos .d2v (es decir, el ripeo de un DVD), sino también archivos .avi. Se puede encontrar en http://www.doom9.org , e incluye todos los programas necesarios : AviSynth, Virtual Dub, NanDub e incluso el VirtualDubMod (que será útil para archivos .ogm). También incluye programas para extraer la imagen de un DVD. Por cierto : al instalar el VobSub (es una parte de la instalación de Gordian Knot) no olvidéis activar la instalación de TextSub, que nos será útil para colocar subtítulos fijos en la imagen. También conviene instalar el programa SubResync , que nos permitirá elegir el color, tipo de letra, y hasta la posición en pantalla de los subtítulos.

TMPGENc : Bueno, TMPGEnc o lo que uséis para comprimir a MPEG-2. El manual tratará de cómo preparar un .avi para comprimirlo, después se puede aplicar a cualquier compresor o a cualquier template. Tanto para KVCD (que es lo que yo uso) como para CVCD o directamente VCD.

ReadAVS : Si el TMPGEnc os da problemas al abrir el archivo .avs (algo que haremos más adelante), deberíais instalar este programa…

Conversión de AVI a VCD

Empezamos ejecutando el Gordian Knot :

Como no vamos a ripear un DVD, sino que vamos a utilizar un archivo .avi , obviamos las etapas del ripeo y del DVD2AVI.

Vamos directamente a abrir el archivo .avi, utilizando el

botón

OPEN.

Al abrir el archivo, se abrirá una ventana con la imagen, que debemos dejar abierta. Es la ventana donde se van a reflejar los procesos a los que vamos a someter al archivo original.

Pasamos a la pestaña BITRATE, donde apuntaremos la duración de la película.

También conviene que nos fijemos en el FRAME RATE del archivo original. Los frame rates distintos de 25 FPS suelen dar problemas en los DVDs de sobremesa, por lo cual es conveniente que convirtamos nuestra película a esa velocidad de reproducción. Puede que en

nuestro DVD se vea bien, pero si quieres poder prestárselo a algún amigo,… los 25 fps son garantía de que siempre se verá bien. Como veis, yo tengo que convertir mi archivo.

Pasaremos ahora a la pestaña RESOLUTION.

Vayamos por partes…

Este cuadro nos permite elegir una resolución en la imagen de entrada. Cuando abrimos un .avi, se configura por defecto en OTHER, que es como

debemos dejarlo, ya que no estamos recomprimiendo un DVD sino un archivo con unas dimensiones no estándar

El siguiente cuadro nos permite escoger el ASPECT RATIO de la imagen original. Normalmente debemos dejarlo en 1:1, y así se conservará la relación de aspecto del original. Sin embargo, a veces puede interesar que lo cambiemos. A veces nos bajamos unos .avis que han sido mal ripeados, y su imagen se ve alargada o comprimida. No se ha conservado correctamente la relación de aspecto del DVD. En estos casos podemos optar por escoger las opciones

16:9 o 4:3 , o incluso jugar con distintos valores. El botón SELECT nos permite escoger varias opciones estándar, e incluso podemos introducir valores a mano hasta encontrar el que quede mejor. Podemos ver el resultado en la ventana que hemos dejado atrás, con la imagen, aunque para ver reflejado el resultado debemos activar la vista de la imagen ya reescalada, como se muestra en la imagen.

Ahora debemos configurar la resolución de salida, en el cuadro OUTPUT RES. Debemos, eso sí, configurar el tamaño de salida para el estándar VCD. Para ello debemos mover el selector hasta encontrar un punto en el que el recuadro WIDTH muestre el valor 352 (resolución horizontal VCD). También debemos configurar los valores W-MODUL y H-MODUL a 16. De esta manera limitamos las resoluciones de salida a múltiplos de 16, y así conseguimos el efecto que deseamos: que la imagen y las bandas negras coincidan siempre en bloques distintos.

Finalmente, en el cuadro CROP, configuraremos el recorte de la imagen. Vamos a perder un poco de imagen por los lados y/o por arriba y abajo, para que al efectuar el reescalado se conserve la relación de aspecto y además las bandas negras ocupen bloques enteros.

El botón AUTO CROP nos elimina automáticamente las bandas negras si la imagen original las traía. A veces, por un ripeo efectuado en malas condiciones, la imagen puede traer varias líneas negras, tanto a los lados como arriba y abajo. También puede ser que el .avi venga con las bandas negras ya puestas. Es importante eliminar toda esta información inútil y sustituirla por nuestras propias bandas negras optimizadas. Así que, salvo que comprobéis que no hay bandas negras en absoluto, conviene utilizar este botón. En la ventana de imagen que dejamos atrás, veréis que se va produciendo una búsqueda en distintos puntos de la película, hasta encontrar el valor adecuado.

Después pasamos a marcar el apartado SMART CROP ALL. Una vez pulsado, Gordian Knot

calcula automáticamente los parámetros de reescalado y crop necesarios. En

este caso, la

película se ha

cortado desde

su tamaño original de 608×336, al tamaño de 608×332. Este tamaño se reduce proporcionalmente a 352×192, con un error en la relación de aspecto del -0.1%. Errores de hasta el +-0.3% son aceptables.

Pues ya tenemos hechos todos los cálculos. Es el momento de usarlos para generar un script AviSynth.

Para ello acudimos a la ventana de imagen que dejamos atrás. Vereis un botón llamado SAVE and ENCODE. Tras pulsarlo, nos aparece esta ventana :

Aquí haremos muy poca cosa. Si hay que hacer algún cambio, lo haremos más adelante en el script. Solamente es necesario configurar el método de reescalado, en el apartado RESIZE FILTER. El método más recomendable, en mi opinión, es el NEUTRAL BICUBIC. Los métodos anteriores en la lista dan poca calidad, y los posteriores dan una imagen demasiado definida, que tiende a producir compresiones de un tamaño excesivo. Además, tarda mucho en aplicarse. El Neutral Bicubic es un término medio muy aceptable, de buena calidad y en un tiempo razonable.

Los demás parámetros, dejadlos tal como los veis aquí.

Podemos previsualizar el resultado, aunque no nos va a decir mucho. Veremos la imagen, en su nuevo tamaño, tal como se le va a pasar al TMPGEnc.

Pulsamos SAVE y guardamos el script

AviSynth. Lo usaremos en el siguiente paso, así que hay que recordar donde y con qué nombre lo

hemos grabado… La extensión será siempre .avs .

A partir de este punto, podemos ya pasar a la recompresión en TMPGEnc. O al menos, podemos si no necesitamos hacer ningún ajuste posterior a la película. En el caso que yo he elegido para el manual, es necesario ajustar la velocidad de reproducción para adecuarla al estándar PAL. Si no tienes este problema puedes saltarte la parte siguiente, si no … vamos allá.

Frame rate y entrelazado.

Como habréis visto en el ejemplo anterior, el archivo que estaba usando no tenía una velocidad de reproducción estándar en el sistema PAL. De hecho la velocidad es estándar, pero para el sistema de televisión norteamericano (NTSC). La velocidad de frame es de 23,976 frames por segundo, que es el estándar NTSC para películas. Es decir, es equivalente a los 24 frames por segundo que vemos en el cine.

¿Por qué ocurre esto? Pues porque los estándares de televisión y los de cine nunca coinciden. El sistema PAL funciona a una velocidad ligeramente superior a la del cine (25 frames por segundo) y el sistema NTSC, a una velocidad bastante superior (29,97 fps). Por lo tanto, hay que convertir esos 24 fps de la película en cine a las velocidades de los sistemas de televisión, para que se puedan visualizar en los televisores.

La conversión al sistema PAL es bastante sencilla : se acelera ligeramente la película, y se consiguen así los 25 frames por segundo. La película dura, por tanto, menos tiempo en video o DVD que en el cine… y todo va ligeramente más acelerado, pero es tan poco que no nos damos cuenta. Y este es el sistema que veremos más adelante para convertir esas pelis a 24 o 23,976 fps a nuestro estándar…

La conversión al sistema NTSC es bastante más complicada. Pasar de 24 o 23,976 fps a NTSC requeriría acelerar la película unos 5 frames por segundo… un 20%. Bastante notorio, queda muy mal y la peli se nos pasaría en un suspiro. Una peli de 90 minutos se quedaría en 72… (acabo de hacer los cálculos de memoria, espero no equivocarme pero por ahí andan las cosas). En ese caso se hace un proceso bastante complicado, que consiste en generar frames “fantasma”. El proceso es bastante complicado, pero podemos decir que 1 de cada 5 frames es un frame “fantasma”, generado a partir del 4º y 5º frame real de la película. De este modo se consigue que la peli dure exactamente lo mismo que en el cine … o casi, ya que en el cine la película va a 24 frames por segundo, y por motivos de compatibilidad, para hacer esta conversión, se debe ralentizar muy ligeramente y dejarla en esos famosos 23,976 fps.

Esta conversión se realiza para su emisión por televisión. Sin embargo, un DVD moderno no necesita realmente esa conversión. Un DVD es capaz de hacer sobre la marcha las conversiones necesarias. De hecho, internamente el DVD en sistema NTSC funciona a 23,976 fps… aunque la peli esté a la velocidad normal NTSC, ya que internamente es capaz de hacer el proceso inverso, y eliminar los “frames fantasma”. Por lo tanto, y según la región de la que proceda el DVD del que sacamos la película, podemos encontrarnos estas posibilidades :

Velocidad de reproducción = 25 fps. Es nuestro sistema de televisión, así que no hay que hacer nada.

Velocidad de reproducción = 23,976 fps. Es la velocidad de la película adaptada al sistema NTSC. Simplemente debemos acelerar ligeramente la imagen, y después acelerar también el sonido para adaptarlo. Lo veremos más adelante.

Velocidad de reproducción = 29,97 fps. La película contiene “frames fantasma”,que podemos eliminar. La reproducción de esta película, aunque esté a 29,97 fps, se produce a la misma velocidad que una película a 23,976 fps, por lo cual, una vez eliminados los “frames fantasma”, hay que acelerarla a 25 fps y hacer lo propio con el audio.

Todas estas acciones sobre la imagen se pueden realizar en un solo script AviSynth. Las acciones sobre el sonido se han de hacer con un programa externo (bueno, se pueden hacer con AviSynth, pero creedme… es mejor usar otro programa, por ejemplo el BeSweet, como ya explicaré).

Todos estos supuestos se basan en el hecho de que estamos convirtiendo UNA PELÍCULA. Pero no siempre tiene por qué ser así, podemos a lo mejor convertir una captura de televisión en sistema NTSC o PAL. En el caso de una captura de televisión ya no podemos usar el método de los “frames fantasma”, porque en realidad no existen esos frames… es una señal de televisión con los 29,976 frames por segundo REALES. Y además, tanto en el caso del PAL como del NTSC, se da un problema nuevo, que es el problema del entrelazado.

La televisión, tanto en NTSC como en PAL, se basa en la emisión de 2 imágenes ligeramente distintas, llamadas “campos”, que combinadas forman un frame, al contrario que en el cine, donde cada cuadro de imagen es único (esto se llama un “frame progresivo”, y lo de la tele, “frames entrelazados”). Como los sistemas de captura digitales no entienden más que de frames progresivos, se producen unos errores en la imagen que seguro habreis visto en muchas pelis que os hayáis bajado. Lo podéis ver en la imagen.

Aquí se han combinado dos campos ligeramente distintos para dar una única imagen progresiva. El resultado son esas líneas “fantasma” que se ven claramente. Evidentemente la imagen “fantasma” se produce en las zonas que muestran diferencias entre campos, o dicho más sencillamente, en todo lo que se mueve en la imagen.

Hay muchos medios para evitar esto, mejores y peores. Algunos métodos simplemente mezclan los campos entre sí, en vez de combinarlos como ocurre por defecto. Esto produce imágenes bastante borrosas. Otros métodos más complejos utilizan ciertos algoritmos para evitar este efecto, y lo hacen muy bien… pero lo hacen sobre toda la imagen, tanto donde hay movimiento como donde no lo hay. Como resultado, se pierde definición en la imagen.

Hay un método que evita, en lo posible, la imagen borrosa y que además es “inteligente”… sólo actúa donde es necesario, y evita las zonas sin movimiento, donde no hay efecto entrelazado. Se utiliza desde el script AviSynth, y es el plug-in DECOMB. (Este plug-in se instala directamente con Gordian Knot, pero si por cualquier motivo no lo tenéis, no hay más que buscar con algún buscador en Internet y bajarse el archivo DECOMB.DLL . Este archivo lo ponéis en el directorio de Gordian Knot, y listo)

Vamos a ver las acciones que hay que emprender en cada uno de los casos. En todos ellos hay que editar el script .avs que produjimos en el caso anterior, con un simple editor de textos. El Notepad de Windows vale perfectamente, pero hay que acordarse, al grabar el archivo, de seleccionar “Todos los archivos” en el cuadro de grabación… si no, lo grabaría con extensión .txt, y no nos valdría de nada. El archivo tiene que tener una extensión .avs .

Os mostraré un script básico en AviSynth :

# Created with Gordian Knot # # http://gknot.doom9.org# # PLUGINS LoadPlugin(“C:\ARCHIV~1\video\GORDIA~1\mpeg2dec.dll”)#LoadPlugin(“C:\ARCHIV~1\video\GORDIA~1\decomb.dll”)#LoadPlugin(“C:\ARCHIV~1\video\GORDIA~1\IVTC.dll”)#LoadPlugin(“C:\ARCHIV~1\video\GORDIA~1\Avisynth_Spatial.dll”)#LoadPlugin(“C:\ARCHIV~1\video\GORDIA~1\GreedyHMA.dll”)#LoadPlugin(“C:\ARCHIV~1\video\GORDIA~1\TomsMoComp.dll”)#LoadPlugin(“C:\WINDOWS\System32\vobsub.dll”)#LoadPlugin(“C:\ARCHIV~1\video\GORDIA~1\SimpleResize.dll”)# # SOURCE avisource(“F:\eMule\Incoming\Whats Up Doc 1972 Dvdrip Xvid Fragment.avi”)# # TRIM #trim(startframe,endframe)# # IVTC #Telecide().Decimate(5)# or use #IVTC(44,11,95)#GreedyHMA(1,0,4,0,0,0,0,0)# # DEINTERLACING (1)#FieldDeinterlace()#TomsMoComp(1,5,1)# # CROPPING crop(0,0,608,335)# # DEINTERLACING (2)#SeparateFields().SelectEven()# or maybe#GreedyHMA(1,0,0,0,0,0,0,0)# # # SUBTITLES #VobSub(“FileName”)# # RESIZING BicubicResize(352,194,0,0.75)# # DENOISING: choose one combination (or none)# 1) little noise (fast)#TemporalSmoother(2,1)# # 2) medium noise (slow)#SpatialSoftenMMX(1,4,6,false,false,4,4,6,8)#TemporalSmoother(2)# # 3) heavy noise (very slow, you have been warned)#SpatialSoftenMMX(2,4,6,false,false,4,4,6,8)#TemporalSmoother(3)#SpatialSoftenMMX(1,4,6,false,false,4,4,6,8)# # BORDERS #AddBorders(left,top,right,bottom)# # COMPRESSIBILITY CHECK # !!!!Snip Size now has to be 14 for use in GKnot!#SelectRangeEvery(280,14)# # FOOL CCEnc #ResampleAudio(44100)

Este script está generado en Gordian Knot. El Gordian crea el script como una plantilla, para poder cambiarla luego a nuestra manera. Para ello genera líneas con una especie de “sugerencia de uso”, y las marca con el carácter # . Ese carácter hace que la línea se trate como un comentario, y no como un comando. Vamos a retirar ese carácter de algunas líneas, y a editarlas … y tal vez a crear alguna línea nueva. Pero antes voy a explicar por encima las líneas que ya están activas, para que entendáis como funciona el AviSynth :

avisource(“F:\eMule\Incoming\Whats Up Doc 1972 Dvdrip Xvid Fragment.avi”)
crop(0,0,608,335)
BicubicResize(352,194,0,0.75)

Estas 4 líneas hacen todo el trabajo que nosotros hicimos “a mano” en el caso anterior. Vamos una por una: avisource(“F:\eMule\Incoming\Whats Up Doc 1972 Dvdrip Xvid Fragment.avi”) : Este comando abre la película original. crop(0,0,608,335) : Este comando corta las líneas necesarias para dejar la imagen a unas dimensiones de 608×335 píxeles BicubicResize(352,194,0,0.75) : Este comando reescala la imagen al tamaño final, de 352×194 píxeles.

Veamos qué cambiaremos o crearemos según como sea nuestra película :

25 fps. Para ello usaremos un comando de AviSynth, llamado ASSUMEFPS, que cambia la velocidad de reproducción. Lo ponemos, por ejemplo, a continuación del AviSource para que quede así :

avisource(“F:\eMule\Incoming\Whats Up Doc 1972 Dvdrip Xvid Fragment.avi”) AssumeFPS(25)

de 23,976 fps, y en una segunda etapa, haremos el paso anterior : acelerar a 25 fps. Esta vez deberíamos ponerlo al principio del todo, ya que … así tendremos menos frames que tratar, y todo irá más rápido. Además, Gordian Knot ha sido tan amable que nos ha preparado ya las líneas para que no tengamos que hacer casi nada.

Primero debemos activar el plug-in que hará toda la magia. Es el DECOMB. Quitamos el símbolo de comentario de esta línea :

LoadPlugin(“C:\ARCHIV~1\video\GORDIA~1\decomb.dll”)

Y luego editamos esta otra, donde tenemos casi todo preconfigurado :

# IVTC #Telecide().Decimate(5)

Sólo tenemos que borrar un par de cositas. Quitaremos el símbolo de comentario, y el comando Telecide. Quedaría así :

# IVTC Decimate(5)

Luego aplicamos el paso anterior, y quedaría todo así :

# IVTC Decimate(5) AssumeFPS(25)

En este caso tenemos que activar el plug-in DECOMB, como en el caso anterior, y editar la línea de los comandos IVTC. Ahora tenemos que borrar el comando Decimate. Quedaría así :

# IVTC Telecide() AssumeFPS(25)

Como veis, ya activamos a la vez la aceleración a 25 fps.

Haremos más o menos lo mismo que en el caso sin entrelazado, sólo que esta vez no borraremos el comando TELECIDE. Quedaría así :

# IVTC Telecide().Decimate(5) AssumeFPS(25)

No olvidéis activar el plug-in DECOMB …

De nuevo debemos activar el plug-in DECOMB. Después, sólo hay que eliminar el símbolo de comentario y el comando DECIMATE de la línea IVTC. Quedaría así :

# IVTC Telecide()

No usamos el AssumeFPS porque la imagen YA ESTÁ a 25 fps…

Aquí no podemos eliminar frames fantasma, ya que no los hay. Así que debemos usar un nuevo comando, llamado ConvertFPS. Lo que hará este comando es generar frames a una nueva velocidad, simplemente mezclando los frames del original. El resultado tendrá la misma duración que el original, a pesar de ir a una velocidad distinta. Como contrapartida, la imagen se verá algo borrosa, debido a la mezcla, pero, por si os sirve de consuelo, os diré que es el mismo método que hacen los carísimos conversores NTSC-PAL que se usan en televisión.

Antes de cambiar la velocidad, de todos modos, nos ocuparemos del efecto de imagen entrelazada. De eso se ocupa el comando TELECIDE.

La cosa quedaría así:

# IVTC Telecide() ConvertFPS(25)

De nuevo, no hay que olvidar activar el plug-in …

Una vez terminada la edición, grabamos el archivo .avs . No olvideis grabarlo con la opción TODOS LOS ARCHIVOS del Notepad, así se grabará como .avs … si no lo haceis así, se grabará como .avs.txt y no serviría.

Si quereis comprobar que todo vaya bien, podeis abrir ese archivo .avs con el Virtual Dub. En FileFile information, podreis comprobar que la velocidad de reproducción y las dimensiones de la imagen son las correctas. Para mostraros un ejemplo, os pondré la información que daba el Virtual Dub de mi archivo original, y la que me da del .avs :

Como veis, han cambiado las dimensiones (de 608×336 a 352×194), la velocidad de reproducción (de 23,976 fps a 25 fps), el tiempo de reproducción (debido a la aceleración) y el descompresor, ya que el original está comprimido en Xvid y el .avs son frames SIN COMPRIMIR. Esta imagen es totalmente PAL, conforme al estándar de televisión y de unas dimensiones apropiadas para un VCD.

Si quereis comprobar el efecto del plug-in de entrelazado (caso de que lo uséis, claro), podéis incluso reproducir en el Virtual Dub para verlo. El audio estará desincronizado, pero de eso nos ocuparemos luego.

Subtítulos fijos

Si queréis añadir subtítulos fijos a la imagen (es decir, NO flotantes, que no se pueden quitar con el mando a distancia del DVD), se puede hacer en el script AviSynth. Para ello debemos activar un plug-in que instalamos antes con Gordian Knot, llamado TextSub.

Para ello insertamos esta línea en la sección PLUGINS :

LoadPlugin(“C:\ARCHIV~1\video\GORDIA~1\Textsub.vdf”)

Recordad que debéis usar el directorio en el que tengáis el archivo TextSub.vdf . Si no estáis seguros, siempre podéis usar la búsqueda de Windows para localizar el directorio.

Para insertar los subtítulos, usaremos esta línea :

TextSub(subtitulos.srt,25)

Debéis poner el nombre de archivo, con su ruta si no está en el mismo directorio que el script, y además con el frame rate de los subtítulos. En este caso, como veis, están a 25 fps.

Si cambiáis la velocidad de reproducción del archivo, hay dos opciones : cambiar la velocidad de los subtítulos, o bien insertar los subtítulos ANTES de las líneas en las que se cambia la velocidad de reproducción. De esa manera, los subtítulos se incrustan según el frame rate original, y en una segunda etapa la imagen CON SUBTÍTULOS se convierte a la nueva velocidad.

TextSub acepta varios formatos, aunque el más sencillo y recomendable es el .srt (SubRip). El formato .ssa (SubStation Alpha) tiene la ventaja de que no necesita que le demos a TextSub la velocidad de frames de los subtítulos, ya que vienen expresados en el propio archivo de subtítulos, por lo cual es también recomendable. Además, en este formato podemos establecer las opciones que, en .srt, debemos hacer con SubResync, como veremos ahora …

El filtro TextSub usa, por defecto, un color y tipo de letra bastante feo (salvo en formato .ssa, que usa lo que esté configurado en el archivo). Para mejorar esto, podemos usar la utilidad SubResync, incluída en la instalación de VobSub. Abrimos los subtítulos con este programa, y pulsamos el botón EDIT. Allí podremos cambiar cosas como el color, el tipo de letra, borde, sombra, espaciado, posición en pantalla…

De nuevo podéis usar el Virtual Dub para comprobar que todo se haya hecho correctamente. En esto, la experimentación os dará el mejor resultado…

De todos modos, es también posible (sólo para ciertos reproductores) usar subtítulos flotantes. Para ello os remito a otro manual que he hecho, donde se explica todo esto. También explica cómo usar dos bandas de sonido, consiguiendo así… casi un DVD, ¿no? ☺

Compresión VCD con TMPGEnc

Bueno, o con lo que queráis… yo solamente he usado el TMPGEnc, así que no puedo hablar de otras opciones. También podeis usar vuestro formato favorito : VCD, CVCD, KVCD, creado o multiplexado como MPEG-1, como MPEG-2… a vuestro gusto. Con todo lo anterior solamente hemos preparado el archivo para que se comprima mucho mejor… Ahora hay que cargarlo en nuestro codificador favorito, y a comprimir. Lo único que se debe cuidar es que la relación de aspecto en TMPGEnc esté configurada a 1:1 (VGA) y NO a 4:3 u otras opciones.

Eso sí… yo personalmente suelo hacer por separado video y audio. Si habéis convertido la velocidad de reproducción no quedará más remedio, pero yo lo hago en todo caso. No me gusta como queda el sonido en TMPGEnc, y prefiero usar BeSweet. Hay manuales de uso de este programa en http://spanish.doom9.org , solamente os pondré más adelante un ejemplo de lo que hay que hacer para adaptar la velocidad de reproducción si nos hace falta.

En una etapa final se multiplexan audio y video, con las MPEG Tools de TMPGEnc o con bbMPEG … a gusto del consumidor.

El sonido

Como os decía antes, suelo usar BeSweet para convertir el sonido al formato .mp2 , que es el que usaremos para el VCD. Por no hacer más largo esto, os recomiendo que veáis los manuales que tenéis en http://spanish.doom9.org . Solamente os voy a mostrar un pantallazo con la configuración para convertir la duración del sonido de 23,976 frames por segundo a 25, es decir, resincronizar el sonido.

Usaré el BeSweet que viene incluido en Gordian Knot, junto con un front-end llamado BeSweetGUI. El BeSweet es un programa MS-DOS, pero el front-end permite programarlo desde Windows, sin tener que acudir para nada al símbolo del sistema. Podeis descargarlo desde

http://spanish.doom9.org

Como veis, hay un preset ya configurado para la

conversión del sonido. Usaremos este preset en los casos 1, 2, 3 y 4 que vimos antes. En los otros dos casos no hay que hacer ninguna conversión. Fijaos de usar este preset y no el otro, llamado NTSC2PAL (29.97 to 25.000), ya que incluso en los casos en los que el original está a 29,97 lo hemos convertido “internamente” a 23,976 antes de pasarlo a 25.

Pues eso… una vez convertido el sonido, se multiplexa… y a grabar a Cd y disfrutarlo en el DVD del salón. Espero que os haya servido todo este rollo y que os salgan unos VCDs estupendos. Un saludo a todos.

Si después de leer este manual tienes alguna duda y quieres publicar una pregunta puedes usar el foro de videoedicion.org

http://www.videoedicion.org/foro

Las siguientes categorías del foro están especialmente relacionadas con este manual:

Compresión y formatos de vídeo -> http://www.videoedicion.org/foro/index.php?board=12.0
DVD (General) -> http://www.videoedicion.org/foro/index.php?board=4.0

Print Friendly, PDF & Email

Related Post

Deja un comentario