Cómo pasar una captura de Imagenio a AVI (xvid, divx,...)

Algunos preliminares así, a grosso modo:


MPEG2 es una norma de compresión de vídeo (bueno, en realidad es una recomendación), muy conocida porque se emplea en los DVD y en la televisión digital. En ella, las pistas de vídeo y audio van por separado, y se unen en un proceso que se llama multiplexado: ponemos un paquete de vídeo, y luego uno de audio, luego uno de vídeo, y luego uno de audio... Tras este proceso, se pueden obtener dos tipos diferentes de resultados: una trama PS (program stream), pensada para archivos de vídeo MPEG y para DVD's, o bien una trama TS (transport stream), que se usa en televisión digital (satélite, TDT, Imagenio...).

Desde hace unos meses, Imagenio emite con h.264. Esta forma de comprimir vídeo es similar a MPEG2, pero con mayor ratio de compresión. Concretamente, es la mpeg4 parte 10. Se está imponiendo en muchos ámbitos, y me creo que pronto la veremos hasta en la sopa. El problema es que la trama que capturamos de Imagenio es TS y, en este caso, no tenemos forma de pasarla a PS, para que los reproductores de sobremesa puedan entenderla, o incluso la mayoría de programas reproductores multimedia. Eso sin contar con el problema añadido de que se necesita un códec h.264 que soporte entrelazado paff. Ni siquiera VLC sabe conseguir un archivo PS válido a partir de esa fuente.

Lo que antes consistía en meter la captura al VirtualDub y recomprimir (o incluso verlo directamente), ahora hay que hacerlo en una serie de pasos diferenciados.





Arremangarse, que esto no es para holgazanes. Hay mucha gente que preferiría tener un programa "todo en uno", en el que por un lado entra el vídeo capturado y por el otro sale el archivo avi ya comprimido, pero de momento no hay nada que lo haga, y yo siempre he preferido hacer cada parte del proceso por separado, con el programa más adecuado para esa parte. Es más engorroso, pero el resultado final merece la pena.

Prácticamente, esto va a ser lo mismo que expuso Cosimo en el tema Tribunas pares y canales MPEG-4: ver, grabar y volcar, aunque con algún pequeño cambio y, por supuesto, ampliado. Eso quiere decir que resulta imprescindible leer ese hilo antes de meternos en harina. Además, allí se explica también cómo conseguir algunos de los ingredientes que necesitamos:

- Haali Media Splitter, se encarga de separar el vídeo del audio de la captura, para que el programa editor pueda trabajar con ellos.

- CoreAVC, es el códec h.264 con soporte paff que el programa editor necesita para decodificar el vídeo.

- Avisynth 2.5.7, lee el vídeo h.264 y, por medio de directshow y el códec CoreAVC, se lo entrega frame a frame al editor de vídeo, ya que éste, por sí mismo, es incapaz de leer h.264.

- VirtualDubMod 1.5.2.10, es un conocido editor de vídeo, fácil de usar.

- Códec Xvid, o divx, o el que prefiramos. A mí me gusta más el xvid, pero para gustos hay colores.

- ProjectX 0.90.4.00, demultiplexador a partir del que obtendremos la pista de audio contenida en la captura.

- WinLame, programa compresor y descompresor de audio, es capaz de tratar el audio que tenemos en la captura de Imagenio, que está en formato comprimido mp2.

- Códec ACM Lame para VirtualDubMod.


Partiremos de una captura en TS. Con el friptv todas las capturas son TS, mientras que con el VLC (o si usamos la Guimagenio de Cosimo), la opción que tendremos que marcar se llama "Raw". Ésto obtendrá una captura tal cual, es decir, conteniendo exactamente lo que nos llega por Imagenio, sin recodificar nada. También tendremos ya instalados y funcionando todos los programas y códec mencionados antes. Para dudas sobre este punto, buscad en el hilo que mencioné antes.


Fase previa: cómo saber si tenemos bien instalado el CoreAVC, el Haali Media Splitter y el Avisynth


Aquí está todo el meollo de la cuestión. Si los tenemos mal instalados, o hay algún códec que estorbe, no conseguiremos nada más que quebraderos de cabeza.

Para verificar su funcionamiento, utilizaremos una aplicación muy sencilla que se llama Graphedit, y que se encuentra en la red fácilmente. Ésta nos mostrará en un gráfico comprensible de qué modo el componente de directx directshow va a tratar el vídeo. ¿De qué va esto? Muy sencillo: en realidad CoreAVC no es estrictamente un códec, sino un filtro para directshow. Coge el vídeo h.264 y lo decodifica, y después lo manda a un componente de las directx llamado directshow. De allí lo recoge Avisynth, y se lo manda a su vez a VirtualDubMod. Parece complicado, pero no lo es. VirtualDubMod no es capaz de tratar h.264 por sí solo, no hay un códec que le pueda ayudar y que además soporte paff, por eso hacemos todo ésto; y por eso tenemos que usar tantos programas para trabajar.



Captura 1: Graphedit


Abriremos el Graphedit. Saldrá una ventana con fondo gris. Ahora, con una ventana del explorador abierta al lado, y que nos muestre el icono de la captura con extensión ts conseguida de Imagenio, arrastraremos el archivo a la zona gris de la ventana de Graphedit. Si todo va bien, aparecerá en la bandeja de sistema, (abajo a la derecha) el icono del Haali Media Splitter. Y, cuando éste termine su trabajo, que tarda un poco, nos aparecerá un gráfico tal que éste, con los enlaces entre cada fase que sigue el proceso del archivo hasta llegar al final.



Captura 2: Gráfico para un archivo TS


¿Veis que el primer cuadrado contiene el archivo, que tiene dos salidas, una de audio y otra de vídeo? La de audio nos da igual, porque luego lo separaremos, pero la de vídeo tiene que estar enlazada al siguiente paso: el CoreAVC. Si no es así, el códec está mal instalado.

Recordad que se instala con el comando REGSVR32.EXE /s "CoreAVCDecoder.ax" ejecutado desde una ventana de msdos o, más comúnmente, desde un archivo bat, siempre situados en el mismo directorio en donde se encuentra el archivo del códec. Si lo tenemos bien instalado, y en el Graphedit no aparece, es que hay otro códec estorbando. Lo localizaremos fácilmente porque será el que aparezca en lugar del CoreAVC en el gráfico que nos muestra Graphedit. Lo desinstalaremos y volveremos a probar con Graphedit. Si sigue sin haber suerte, quizá funcione desinstalar el CoreAVC, con el comando REGSVR32.EXE /u /s CoreAVCDecoder.ax, y volverlo a instalar. Y si sigue sin funcionar, o después de instalar y reinstalar no aparece en el Graphedit, no te queda otra que reinstalar por completo el Windows XP. A veces es la vía más rápida para solventar un problema de códecs que no tiene ni pies ni cabeza.

Vamos a comprobar el Avisynth. Crearemos, en el mismo directorio en que tengamos la captura ts, un archivo de texto, empleando el notepad para ello. Escribiremos estas dos líneas en él:

Código:
DirectShowSource("nombre de la captura.ts")
KillAudio

Por supuesto, en nombre de la captura escribiremos el nombre del fichero con extensión ts que contiene nuestra captura. Lo guardamos y le cambiamos la extensión txt por la extensión avs. Una vez hecho, arrastramos el fichero a la parte gris de la ventana del Graphedit. El resultado debería ser éste:



Captura 3: Gráfico para un archivo de script AVS


Si salta algún error, es que no tenemos bien instalado el Avisynth. Yo empleo la versión 2.5.7, que no me ha dado problemas, y cuando tengo que reinstalarlo primero desinstalo, luego limpio registro (con el ccleaner), y entonces lo instalo. Lo mismo que dije antes: si aún así no hay manera, me temo que toca reinstalar Windows.

Yo creo que con estas dos pruebas ya estaremos razonablemente seguros de que tenemos bien instalados los códecs y filtros necesarios, imprecindibles para todo lo que viene a continuación. Dejamos los preliminares y nos metemos en harina...


1ª fase: obtener la pista de audio, y pasarla a WAV


¿Porqué separamos el audio y lo convertirmos a formato wav? Por tres motivos: primero, porque en ocasiones (normalmente dependiendo de los códecs que tengamos instalados en el pc) el VirtualDubMod no podrá trabajar con la pista de audio mp2 que contiene la captura; o bien, simplemente no la cargará a partir de lo que le sirva el Haali Media Splitter.

En segundo lugar porque una pista de audio comprimida con pérdida (caso del mp2) puede dar lugar a fallos de sincronización con el audio, aunque no siempre. Y, por último, porque el propio VirtualDubMod (y cualquier otro programa que haga una recompresión), internamente pasa la fuente a wav, y luego la recomprime con el códec que elijamos (por ejemplo, mp3).

Por lo tanto, ¿porqué no preparar antes la pista? De este modo prevenimos posibles fallos, y tenemos la opción de retocar el audio si fuera necesario (normalización del volumen, etc.), lo que por otra parte resultaría especialmente complicado en un formato comprimido como es el mp2. Al final, el resultado será idéntico, y siempre con las ventajas que he mencionado. Si alguien prefiere saltarse este proceso, y seguir con el siguiente, es posible hacerlo: sólo deberá tener en cuenta que tiene que cargar la pista mp2 sin procesar en la stream list de VirtualDubMod en vez del archivo wav que vamos a obtener ahora. Ahora bien, no se puede garantizar los resultados en ese caso.

Con la captura conseguida, abriremos el ProjectX. Vamos a separar el vídeo del audio. Antes, con el MPEG2, este programa nos hubiera dado como resultado las pistas de audio y video por separado. En cambio, con h.264, sólo obtendremos las de audio. Por lo tanto, durante la extracción, veremos que el programa da una buena retahila de errores, al encontrarse con un vídeo que no entiende. No haremos caso, y esperaremos el resultado final.

Arrancaremos el programa, y en el menú principal seleccionaremos "File - add", y buscaremos el directorio con la captura en cuestión. Una vez cargada, el programa explora la captura, y en vez de previsualizarla, nos da un error que dice "error while decoding frame, not enough data in buffer". No pasa nada, lo que nos interesa es obtener el audio.




Captura 4: ProjectX abriendo un archivo


Para ello, pincharemos en el botón "Quickstart", en la parte izquierda de la interfaz. Esto nos mostrará una nueva ventana, y arrancará el proceso automáticamente. Le dejaremos hacer y, cuando haya terminado (sabremos cuándo, porque en la barra de estado inferior de esta ventana se mostrará "done... 1 collection procesed"), podremos cerrar la ventana y la aplicación.



Captura 5: Ventana de proceso del ProjectX


Si miramos en el directorio en donde tenemos la captura, veremos que habrá aparecido una, (o más de una), pista de audio, con extensión mp2. Si hay más de una, es porque algunos programas de imagenio llegan en dual, con una pista en castellano y otra en versión original. La forma de averiguar cuál es cuál es escucharlas. Deberíamos poder hacerlo con un reproductor como el Winamp o el AIMP. De todas formas, más adelante os cuento un pequeño truco para diferenciarlas.



El formato mp2 no lo trabajan muy bien muchas aplicaciones. Además, yo prefiero pasarlo a formato wav, para asegurar que no haya fallos de sincronización con el audio más adelante: a veces ocurren cuando la fuente está comprimida. El paso lo haremos con WinLame. No he encontrado ninguna otra aplicación que sepa pasar de mp2 a wav (aunque seguro que la hay), y de todas formas, WinLame es muy sencillo de manejar, y los resultados son excelentes.

Abrimos el WinLame. Si sabemos cuál es la pista que queremos, cargaremos sólo esa, y sino, pues las dos, para ver cuál de ellas nos interesa. Aunque lo mismo queremos conservarlas todas en el resultado final; eso ya, a gustos.



Captura 6: WinLame abriendo archivos


Pincharemos en el símbolo de una carpeta que aparece en WinLame arriba a la izquierda, y cargaremos el archivo o archivos en mp2 que hemos obtenido. Aparecerá una lista con el archivo/s cargado/s y sus características. Un detalle: la pista en castellano tiene mayor bitrate que la original. Si después de cargada no os interesa una pista, podemos quitarla, seleccionándola y pulsando Supr. Pulsaremos luego el botón "Next".



Captura 7: WinLame, tipo de salida


Ahora tenemos que decirle al programa qué queremos obtener. Alguno estará tentado de marcar "Lame mp3" para hacer todo de tacada, pero es mejor no hacerlo. Primero, porque los formatos comprimidos a veces dan problemas al sincronizar luego con el editor de vídeo (ya lo hemos dicho antes). Y segundo, porque internamente el WinLame (y cualquier otro programa conversor) pasa internamente el archivo a wav antes de recomprimirlo. Seleccionaremos pues "Wave output" en el desplegable "Output module". El resto de opciones, igual que en la captura; después, pincharemos en "Next".



Captura 8: WinLame, parámetros de la salida


Falta decirle cómo tiene que ser ese wav. Para no tener problemas, pondremos todo igual que en la captura de arriba. Después, como siempre, pinchar en "Next".



Captura 9: WinLame, codificación final


Llegamos al final. En esta pantalla simplemente pulsaremos el botón de play, arriba a la izquierda, y esperaremos a que WinLame haga su trabajo. No tarda demasiado, unos cinco minutos, aunque depende de la potencia de tu máquina. Cuando el "percent done" alcance el 100%, pulsaremos en "exit" y saldremos del programa.

Ya tendremos un archivo wav (o más de uno) fácilmente trabajable con el audio de nuestra captura. En este punto, podríamos aprovechar para realizar algún proceso con ella, como normalizar o subir el volumen, etc. No es en absoluto aconsejable, ya que las pistas de audio procedentes de Imagenio suelen venir con el volumen apropiado para escucharse en un televisor, y porque algunos procesos, como la normalización, si no se hacen con la herramienta adecuada, estropean el audio más que arreglarlo. Pero para gustos colores: si se va a escuchar en un pc, sí que notaremos el audio algo bajo.


2ª fase, cargamos el archivo en el VirtualDubMod


Esto se va a poner más interesante en breve. Tenemos el archivo con extensión ts por un lado, y por otro la pista (o pistas) de audio en formato WAV. Vamos a empezar a cargar el archivo en el editor VirtualDubMod.

Para usar Avisynth (el puente que permite a un editor de vídeo manejar h.264 a través de un códec como CoreAVC), es necesario crear un archivo de texto con el script que le dice qué debe hacer. En el caso del VirtualDubMod, podemos crear ese script automáticamente. El problema es que a veces carga la pista de audio, y a veces no (no me pregunteis en qué condiciones: como aún no lo he averiguado, lo dejamos en "cuando le da la gana"). Y, además, nos interesa cargar nuestra pista en wav, en vez de la que trae originalmente la captura de imagenio, que está en mp2(*).


(*) Si hemos hecho lo que he contado en los preliminares acerca de crear un archivo avs para probar, esta parte no es necesaria, podemos aprovechar dicho archivo y abrirlo directamente con el VirtualDubMod.


Abrimos el programa VirtualDubMod y vamos a la opción "file - open video file" del menú. Navegamos hasta el directorio en donde se encuentra nuestra captura en ts, y no la vemos. Eso es porque el VirtualDubMod no coge archivos ts así por las buenas. Vamos a apoyarnos en Avisynth para conseguirlo.



Captura 10: VirtualDubMod abriendo un archivo con Avisynth


En la ventana de directorio, seleccionaremos "all types" en el desplegable "tipo". De este modo tendremos acceso al archivo ts. Como tenemos instalado Avisynth, veremos que hay un segundo desplegable llamado "Use Avisynth template", en donde seleccionaremos "DirectShowSource". Hecho ésto, seleccionaremos el fichero ts y lo abriremos normalmente. Si va todo bien, en la bandeja de sistema aparecerá el icono del Haali Media Splitter. Tarda un poco, no os asusteis.



Cuando haya terminado de trabajar, os saldrá la ventana principal de VirtualDubMod con el vídeo cargado(*). Podeis ver dos marcos: el de la izquierda, es el vídeo que estamos tratando, y el de la derecha es el resultado, tal como va a quedar después de tratarlo. Los controles de abajo sirven para la reproducción (hay dos play, el primero reproduce la entrada, y el segundo la salida), y los dos últimos son para marcar el principio y final de una zona que queramos editar. De cualquier forma, colocando el cursor encima aparece una ayuda contextual.


(*) Si os sale un error leedlo: si pone algo de la pista de audio, tranquilos. No siempre ocurre; lo normal es que Avisynth ni siquiera entregue la pista de audio a VirtualDubMod, e incluso si la entrega, no tiene porqué fallar. Pero a veces ocurre. Cosas de códecs. Si es así, tenemos que decirle a Avisynth que ignore esa pista, ya que al fin y al cabo la idea es trabajar con el wav que hemos obtenido antes. ¿Cómo? Muy sencillo, ya hemos intuido algo en los preliminares: retocando el archivo avs que se ha creado automáticamente. Sigue leyendo igualmente y verás cómo se hace


Vamos a comprobar si la pista de audio original está cargada, y si es así, a quitarla, ya que queremos poner nuestro audio en wav. Iremos a la opción "stream - streams list" del menú de VirtualDubMod y veremos que nos sale una ventana con una lista de las pistas de audio cargadas en el programa



Captura 11: Stream List en la que aparece una pista de audio mp2 original de la captura


Si no sale ninguna pista de audio, no hay problema: nos saltaremos la parte que viene a continuación.




Si hay alguna pista de audio en la stream list, saldremos de VirtualDubMod, y editaremos el archivo con extensión avs con el notepad: iremos al directorio en donde tenemos la captura, y veremos que ha aparecido por arte de magia un archivo con extensión avs. Es el script que utiliza el Avisynth para trabajar. Lo abriremos con el notepad, y añadiremos al final la línea KillAudio. Tiene que quedar algo así:

Código:
#ASYNTHER DirectShowSource
DirectShowSource("nombre de la captura.ts")
KillAudio

Como siempre, sustituye nombre de la captura.ts por el nombre del fichero que contiene tu captura.


Iremos ahora a "File - Open video file" en el VirtualDubMod, y veremos que no es necesario cambiar los tipos de archivos mostrados a "all types" (ni, por supuesto, "DirectShowSource"), y que se muestra el archivo avs que hemos editado.Lo cargaremos sin problemas, ya sin el audio que nos estorbaba. Por si acaso, entraremos a "stream list" en VirtualDubMod y comprobaremos que la pista de audio ya no aparece.





Captura 12: Stream List limpia.


Con la stream list ya limpia, añadiremos la pista de audio en wav que tenemos preparada. Desde este ventana, pincharemos en el botón "add" y seleccionaremos nuestro archivo wav. Cuando lo hayamos hecho, se nos habrá añadido a la lista. Si quisiéramos meter más pistas de audio, podemos hacerlo siguiendo el mismo método. Si lo haceis, hay que tener en cuenta que la pista que se escuchará por defecto al reproducir será la primera de la lista.



Captura 13: Añadir pistas en la Stream List.


Si salimos a la pantalla principal de VirtualDubMod, aceptando la anterior ventana con "ok", y le damos al play, ya podremos ver el resultado previo.


3ª fase: sincronización y compresión de audio


¿Ya le habeis dado al play? ¿Os habeis dado cuenta de que cuando alguien da un disparo en la pantalla, éste suena casi un segundo después? Ya os dije que en MPEG los paquetes de vídeo y audio viajan juntos, agrupados y alternativamente. Como los reproductores tardan más en procesar los paquetes de vídeo que los de audio, si la técnica de transmisión del flujo MPEG fuese tal cual, veríamos pasar la película ante nosotros, pero el audio iría a trompicones. Para evitarlo, se incluye en el mismo flujo MPEG un parámetro que se llama delay, y que produce un retardo medido en milisegundos entre el audio y el vídeo. Así, le da tiempo al buffer del reproductor a presentarlos en pantalla correctamente sincronizados.

Si hacemos una captura y luego trabajamos con ella, nuestro programa editor no tendrá en cuenta ese delay, y veremos como las balas y el estampido van cada uno por su lado. Vamos a corregir eso. ¿Cómo? También de forma sencilla.

Buscaremos (con el control deslizante de tiempo de VirtualDubMod) una escena en la que algún personaje hable en primer plano, o haya un portazo, o un disparo, o cualquier cosa en la que veamos algo que produce un ruido identificable con el vídeo. Calcularemos a ojo el tiempo que pasa desde que vemos el evento, hasta que lo oimos. Ahora iremos a la stream list de VirtualDubMod (ya sabeis cómo). Encima de la pista de audio, haremos click derecho y saldrá un menú contextual.



Captura 14: Menú contextual de la pista de audio en la stream list.


Entraremos en la opción "interleaving", y rellenaremos el campo "Delay audio track by" con el valor en milisegundos que pensamos que es necesario corregir en el audio. Como no queremos retrasar más el audio (delay = retraso), sino adelantarlo, el valor llevará el signo menos delante, de este modo conseguiremos el efecto deseado (*). Por ejemplo, si hemos calculado que el disparo suena unos 1200 milisegundos (= un segundo y pico) después de observarlo, pondremos -1200 en ese campo.


(*) Si por cualquier motivo quisiéramos retrasar el audio, por supuesto no emplearíamos el signo menos delante del valor que escribamos.



Captura 15: Ventana interleaving options de la stream list.


Alguno dirá, "juer, qué complicado, acertar en milisegundos la diferencia entre el vídeo y el audio...". Pues no lo es tanto. Trucos:

- Usad disparos, etc, porque se aprecian muy bien. Cuando acerteis con el delay, vereis que video y audio van de la mano.

- Si usais una escena con gente hablando, fijaros en la vocal "a", que corresponderá con cuando abren la boca del todo, o el instante en el que empiezan a hablar y abren la boca, que deberá coincidir con el principio de la frase.

- Emplead intervalos de 200 ms., por ejemplo, id probando con -200, -400, etc. Un frame de vídeo dura 40 ms. (a 25 frames por segundo), y valores múltiplos de esa cifra son los correctos.

- Nunca empleeis escenas que estén justo al principio de la captura, avanzad por lo menos cinco minutos y buscad una apropiada a partir de ahí.


Ahora, que si se os hace un poco cuesta arriba, os comento: prácticamente todos los canales emiten siempre con el mismo delay, y casi la mayoría lo hacen con 800 ms.. Buscad una escena apropiada, id directamente al stream list y de allí al interleaving, meted -800 en el delay, aceptad todo y comprobar dándole al play. Como mucho, tendreis que sumar o restar 100 o 200 ms. a los 800 iniciales. En la inmensa mayoría de veces, ni eso. Lo tendreis perfectamente sincronizado.



Toca lo más fácil: vamos a decirle a VirtualDubMod cómo queremos que comprima la pista (o las pistas de audio). En la stream list, haremos click izquierdo encima de la pista de audio. En el menú contextual que sale (que ya conocemos), veremos que está marcada la opción "Direct Stream Copy", es decir, "deja la pista de audio en paz y no hagas nada con ella, la metes tal cual" (hay veces que en inglés se puede decir lo mismo con menos palabras). Bueno, cambiaremos la marca a "Full processing mode", es decir, que sí queremos tratar la pista de audio.



Captura 16: Full processing mode.


Volveremos a hacer click izquierdo encima de la pista, porque el menú contextual desaparece al cambiar a "Full processing mode", y nos fijaremos en que algunas opciones que estaban en gris, acaban de ponerse en negro. Entraremos en la que se llama "Compresion". Esta es la ventana que aparecerá:



Captura 17: Compresión de la pista de audio.


En la columna de la izquierda marcaremos el compresor que queremos usar. A mí me gusta particularmente el Lame. Y luego en la columna de la derecha, el bitrate, muestreo, etc, que queremos ponerle, en forma de lista. Para pistas de audio que sólo llevan conversaciones, con 128 kbps (o incluso menos) es suficiente. Para pistas con banda sonora, efectos especiales, etc, es aconsejable poner por lo menos 192 kbps. Y, por supuesto, con bitrate constante (CBR) . Os pongo esas dos configuraciones, para que las localiceis más fácilmente:

Código:
48000 Hz, 128 kbps, CBR, Stereo, 16 KB/s
48000 Hz, 192 kbps, CBR, Stereo, 24 KB/s

En la captura está seleccionada la de 192 kpbs. Aceptamos todo y habremos terminado con el audio. Vamos con el siguiente paso.


4ª fase: edición, resize, cropping y compresión del vídeo.


Vídeo cargado; audio también, y además sincronizado. Ahora editaremos y quitaremos lo que no nos interese.

Cuando cargamos una fuente MPEG en cualquier editor de vídeo, tenemos un problema. En MPEG lo que ocurre es que se codifica un frame con toda la información de esa imagen, y a partir de ahí se codifica el resto en relación a ese primero (por ejemplo, incluyen sólo lo que cambia respecto a ese frame completo), para que ocupen menos espacio, y así hasta que la imagen se degrada demasiado, y entonces insertamos otro frame completo. Cada grupo compuesto por este frame completo (frame índice (I), a veces más de uno), y el resto de frames relacionados con él, se le llama GOP (group of pictures). (*) Si hacemos un corte de la secuencia de vídeo, y dicho corte cae en medio de un GOP, cuando codifiquemos el corte el editor no empezará exactamente en ese punto, sino en el frame anterior que sí contiene toda la información. MPEG no está pensado para editar.

(*) Evidentemente, es algo más complicado; si alguien quiere más información sobre MPEG, en internet hay muchísima.


¿Cómo evitamos la chapuza? Pues gracias a que hemos cargado el vídeo apoyados en Avisynth. Internamente, Avisynth coge cada frame y lo reconstruye (del mismo modo que un reproductor es capaz de reconstruir cada frame de una pista MPEG), y esa imagen completa es la que entrega a VirtualDubMod. De este modo, el corte comenzará exactamente en el frame que digamos. Vamos a hacerlo:

Estamos en la pantalla principal de VirtualDubMod, con el vídeo y el audio cargados. Fijaros que en la barra con un control deslizante (línea de tiempo) que tiene debajo una serie de botones (entre ellos el play, el stop, etc). Los dos últimos, (un par de flechitas pequeñas negras) sirven para marcar la zona con la que vamos a trabajar. Tendremos que marcar con ellos el trozo que queremos quitar.



Captura 18: Controles de reproducción de VirtualDubMod.


Buscaremos el punto exacto en el que comienza lo que queremos quitar. Podemos mover el control deslizante de la línea de tiempo para avanzar rápidamente, o ir frame a frame con el control forward. Cuando lo hayamos localizado, pincharemos en el primer control de esos dos últimos que he mencionado, los que tienen una flechita negra y sirven para marcar zonas. Junto al control de la línea de tiempo, aparecerá una marquita negra, justo en el punto en donde estábamos situados. Ahora nos moveremos al final de la zona que queremos quitar, de la misma manera: avanzando rápido en la línea de tiempo, o frame a frame con los controles. Y pincharemos en el segundo control para marcar. De esta manera, habrá quedado delimitada entre dos marcas pequeñas la zona que queremos quitar. El resto es fácil: en el menú principal, iremos a "edit - cut", y desaparecerá el trozo que no queríamos.



Captura 19: Edición y corte




¿Habeis notado que la imagen de la captura está estirada, y que no se corresponde con un formato 4:3 ó 16:9 ni por asomo? ¿Veis que alrededor de la imagen hay una franja negra que la rodea? Ahora toca solucionar eso.

La imagen que nos da Imagenio tiene una resolución de 480x576 que, como veis, no es 4:3. ¿Porqué no sale distorsionada en nuestro televisor? Porque dentro de la trama MPEG viaja un parámetro que especifica que la imagen debe ser estirada para encajar en un aspect ratio (relación de aspecto) determinado. En el caso de Imagenio, 4:3. Y porque el decodificador sabe qué hacer con lo que le llega. Pero eso no ocurre con el vídeo comprimido que vamos a obtener cuando lo reproduzcamos en el pc, allí la resolución será la que nos marque de qué forma se presenta la imagen en pantalla.

Bien. Tenemos que elegir una resolución que tenga la relación 4:3. Opciones válidas serían 320x240, 640x480, 720x576... Cualquiera nos sirve. Vamos a hacerlo con 640x480 (*). En el menú principal de VirtualDubMod, vamos a "video - filters", y en la ventana que aparece pinchamos en "add". Obtendremos una lista con los filtros disponibles en VirtualDubMod.



Captura 20: Añadiendo filtros en VirtualDubMod


De esa lista, seleccionamos "resize" y pulsamos ok, con lo que sale la ventana de configuración de ese filtro. Introduciremos los valores que necesitamos, incluyendo un parámetro llamada "filter mode" que pondremos con "Lanczos 3", que es el que mejor resultado da. Quedaría así:



Captura 21: Configuración del filtro resize


Si aceptamos, volveremos a la pantalla anterior, en dónde veremos que el filtro se ha añadido a la lista de filtros a aplicar. En esa misma línea os indicará las resoluciones antes y después de aplicar el filtro. Ya lo tenemos en 4:3.

Desde que Imagenio emite en h.264, coloca un borde alrededor de la imagen. Dicho borde no se ve en las televisiones de tubo, pero sí en las planas, y también cuando reproducimos con el pc. También veremos que las emisiones 16:9 o en formato película de cine llevan una franja negra ancha arriba y abajo para adaptar la imagen al formato 4:3. Quitar todos estos bordes negros que salen alrededor de la imagen es lo que se llama cropping.

Volveremos a hacer click encima del botón "Add" de la ventana de filtros y buscamos un filtro llamado "null transform". Lo añadimos. Éste es un filtro que no hace absolutamente nada, y que por lo tanto no necesita configuración alguna. Lo ponemos porque el cropping sólo se puede hacer sobre un filtro que apliquemos, no por sí mismo. Podríamos configurar el cropping dentro del filtro resize que ya tenemos, pero eso deformaría la imagen, ya que VirtualDubMod siempre hace el cropping antes de aplicar el filtro(**). Con el filtro null transform seleccionado pinchamos ahora en el botón "cropping".



Captura 22: Añadir el filtro null transform


Vereis una ventana con un vista previa de la imagen y cuatro campos a rellenar en cada esquina. Si la imagen es demasiado oscura para apreciar los bordes, podeis usar el control deslizante que hay debajo de ella para cambiar a otra escena mas iluminada. Los valores que se corresponden son:

-X1 offset: borde lateral izquierdo
-X2 offset: borde lateral derecho
-Y1 offset: borde superior
-Y2 offset: borde inferior



Captura 23: Ventana para ajustar el cropping


Usaremos los controles (las flechitas) que aparecen junto a cada campo para ir desplazando el cropping, o escribiremos el valor directamente. Vemos en que va apareciendo una franja gris, que nos tapará la zona que va a ser eliminada de la imagen. Los bordes que pone imagenio tienen 16 píxeles. Si además queremos quitar la franja negra que rellena un formato 16:9 o cine hasta una imagen 4:3, moveremos los controles Y1 e Y2 hasta que la tapemos con la zona gris.

Cuando hayamos terminado, pulsaremos ok y volveremos a la ventana de filtros. Observad que el valor de la resolución de entrada del filtro null transform ha cambiado a 598x290. VirtualDubMod primero ejecutará el filtro resize, dejando la imagen en 640x480. Luego el cropping que lleva el filtro null transform (recortando a 596x290) y después el propio null transform, que no hace nada: es importante saber todo ésto; si lo hubiéramos hecho en otro orden, el resultado sería un desastre. Podeis pulsar ok en esta ventana, y saldremos a la principal del VirtualDubMod. Si movemos el control deslizante de tiempo, o si pulsamos el play que tiene escrita una letra O pequeñita, veremos el resultado.


(*) Aunque yo os recomendaría otra cosa: es preferible que VirtualDubMod modifique lo menos posible la imagen, y si cambiamos a una resolución de 640x480 estamos cambiando tanto la resolución vertical como la horizontal originales (480x576). Por eso, pienso que es mejor dejar en paz una de ellas, por ejemplo el 480, y calcular la otra de forma que obtengamos una relación de aspecto de 4:3. Con una simple regla de tres vemos que deberíamos configurar el resize a 480x360

(**) Si la zona a recortar es igual por todos los lados, no hace falta hacer el cropping sobre un filtro null transform, podemos hacerlo sobre el resize que ya tenemos. Por ejemplo si tenemos una imagen que ya es 4:3 (que no tiene las franjas negras anchas superior e inferior) y sólo quitamos los 16 pixeles que mete Imagenio alrededor de la imagen. Si lo hacemos así, la resolución final será la que marque el filtro resize; el nuestro ejemplo, 640x480.



Ya casi terminamos. Falta decirle al VirtualDubMod cómo comprimir el vídeo. En la ventana principal, entraremos en la opción "video", y nos fijaremos en que está marcado "full procesing mode". Si no fuera así, lo marcaremos. Si aún tenemos el menú desplegado, entraremos en la opción "compresion". Obtendremos la siguiente ventana:




Captura 24: Selección del códec de compresión de vídeo


En la parte izquierda tenemos un marco con la lista de códecs que tiene cargada nuestra máquina, y que además estén disponibles para VirtualDubMod. Buscad el que querais, yo voy a usar Xvid. Seleccionaremos el códec en esa lista, y pincharemos en el botón que hay a la derecha que dice "configure", con lo que saldrá la ventana de configuración del códec.



Captura 25: Configuración del códec Xvid


Hay muchas formas de configurar un códec, y multitud de manuales en internet que nos lo explican. No es el objeto de este tutorial desarrollar ese tema. Yo voy a hacerlo de una forma sencilla, en una pasada a un bitrate de 1200, tal como aparece en la captura que os he puesto. Por tanto, ése será el único parámetro que tocaremos. Y ya está: pulsamos ok en esta ventana y en la anterior, y volvemos a la pantalla principal de VirtualDubMod.

Ya lo tenemos todo preparado. Falta lanzarlo.


5ª fase: Save as...


Vamos a poner a trabajar al VirtualDubMod. El tiempo que tardará en realizar el proceso depende sobre todo del procesador que tengamos. Para un procesador de 1Ghz, tardará aproximadamente el doble de la duración de la captura; para 2Ghz, igual; para 4Ghz, la mitad. Como veis, es proporcional, pero ojo: muy aproximado; influyen en gran medida factores como los filtros que le metamos (como el resize), el códec de compresión, el bitrate, etc. Para nuestro ejemplo, esos vendrán a ser los tiempos empleados, aunque será la experiencia la que os diga lo que tarda vuestra máquina en realizar el proceso.

Tenemos dos opciones: lanzar ahora mismo el VirtualDubMod a trabajar, o decirle que lo haga más adelante, pudiendo incluso configurarlo para que apague el pc en este caso. Os muestro las dos maneras.

Para comenzar la compresión, entraremos en la opción "file - save as..." del menú principal, con lo que obtendremos esta ventana:



Captura 26: Save as...


Es sencillo: seleccionaremos el directorio y escribiremos el nombre del fichero que creará el programa. Si quereis lanzarlo ahora mismo, pinchad en "guardar". Eso mostrará esta ventana:



Captura 27: VirtualDubMod comprimiendo


En ella veremos todo el proceso hasta que se complete, incluso nos mostrará el tiempo estimado para finalizar el trabajo.

Si no queremos hacerlo ya mismo, y sí dejarlo para más adelante, podemos añadirlo a la lista de tareas que tiene el VirtualDubMod. En la ventana que aparece después de seleccionar "save as", veis que he remarcado otra opción de color morado [Captura 26]. Marcaremos la casilla que pone "Don't run this job now: add to job control so I can run it in batch mode", y luego pincharemos en "guardar". VirtualDubMod habrá añadido nuestro trabajo a su lista de tareas pendientes.

Ahora entrad en la opción "file - job control..." del menú principal, y os mostrará esta ventana:



Captura 28: Lista de tareas de VirtualDubMod


Allí podremos ver cómo se ha añadido nuestra tarea, y cómo está en estado "waiting" (en espera). Para lanzarlo, simplemente pinchad en el botón "start". Una opción muy interesante de esta ventana es la posibilidad de apagar el pc automáticamente cuando haya terminado el trabajo, por ejemplo, si lo dejamos comprimiendo por la noche, antes de irnos a dormir. Se activa marcando en el menú de esta ventana la opción "options - shutdown when finished", y puede hacerse incluso después de haber arrancado el proceso con el botón "start".




Se acabó, ya no hay más. Si todo va bien, (y no tiene porqué ir mal), habremos obtenido un fichero de vídeo en avi perfectamente reproducible en nuestro pc o en un reproductor de sobremesa. Gracias especialmente a Cosimo y a todos los que han aportado algo en el foro sobre este tema; apoyado en ellos he podido hacer este trabajo.

Y gracias sobre todo a todos los que habeis llegado leyendo hasta aquí, y a los demás... pues también ;)


Saludos...
 
Muchas gracias Cerberus y weno a Cosimo y los demas!!Lo acabo de probar y de lujo. Es un poco laborioso pero hasta que haya una solucion mejor, esta es perfecta...

Salu2 :)
 
Muchas gracias a todos los que durante estos meses han hecho posible llegar a este punto.

Increible Post y gran curro.

Abrazos y a seguir investigando.....
 
Creo que el curro es impresionante os felicito.

Ahora bien para el que no quiera complicarse la vida por esta vez, os recomiendo el Nero Vision 5.2.7.0 que viene con el Nero 8.

Lo convierte sin problemas my rápido.
 
Cierto, el Nero también sirve. Ahora que:

- No se pueden quitar las franjas negras de relleno.
- Los cortes no son precisos, y son complicados de hacer.
- El audio se queda tal cual, en mp2, no se puede recomprimir a mp3, con lo que el resultado final ocupa mucho más.
- No se puede incluir más de una pista de audio.
- Claramente a favor, no necesita ajustar el sincronismo entre vídeo y audio.

Tampoco es más rápido que el VirtualDub, tarda exactamente lo mismo. Conclusión: si no importa el resultado, Nero. Si quieres dejarlo perfecto, Virtualdub.

Saludos...
 
Toda la razón en lo que has dicho. Como en todo si quieres un resultado perfecto te lo tienes que currar.

Para cortar utilizo el VideoRedo que además te busca la publicidad y te la corta el solito. Esto una vez pasado a MPEG2.

Cuantas mas opciones haya mejor.
 
Ojo, para los que lean mi post anterior: no quiero desautorizar al Nero ni mucho menos. Es cómodo: entra por un lado y sale por el otro, sin matarse la cabeza. Es una buena alternativa al virtualdub.

Un apunte, no estás obligado a pasar a mpeg2 con el Nero, puedes pasarlo a avi también sin problemas.

Saludos...
 
Muchísimas gracias Cerberus. A mí personalmente me ayudó un montón, ya que por fin encontré lo que me daba problemas a mi, el Haali. Lo desinstalé y volví a instalar y... por fin pude codificar una de mis grabaciones.
Gracias!!!!!!!!!!
 
Esto es lo que yo hago, despues de romperme mucho la cabeza toqueteando programas lo consegui jejejeje y el manual está genial, yo suelo ponerle 300 o por ahi a los partidos que es lo que suelo grabar, aunque en un partido tp importa mucho sincronizar. el tutorial está genial
 
Pues te digo una cosa, Xelu: ese dato que aportas es cojonudo, porque por lo que tengo visto, los canales siempre tienen el mismo delay. Es decir, si encuentras 300 ms de retardo en los partidos, siempre encontrarás 300 ms en los partidos, y posiblemente le ahorres un trabajo a alguien que capture ese mismo canal.

Si conoceis algún retardo más, sería buena idea postearlo.

Saludos...
 
Hola, he probao el Nero Vision y esta muy bien. Sigo usando el Virtualdub para cortar y eliminar las franjas, pero con el NeroVision me puedo saltar los primeros pasos y asi no tengo que usar el ProjectX ni el WinLame. Simplemente lo exporto a otro formato y asi me lo reconoce el Virtualdub sin problemas. Una vez abierto con el Virtualdub comprimo el video y el audio y quito las franjas, y ademas sin terner que sincronizar el audio...

Gracias Quiqueal, muy recomendable. Por cierto estoy usando el NeroVision 4.9.5.7 del Nero 7 y todo perfecto.

Salu2
 
Totalmente de acuerdo, THCxabaz, pero ten en cuenta que estás comprimiendo dos veces. Eso hará resentirse al resultado final.

Saludos...
 
Hola a todos, ante todo gracias por vuestra dedicacion nunca suficientemente agradecida.
Podiíais explicar un poquito como se hace con el nero vision? Opciones y eso... Un saludo y gracias de nuevo.
 
Vaya mega-tutorial!!!

Habia probado otros métodos para la grabacion/conversion de Imagenio, con mejores o peores resultados, pero hasta el dia de hoy, este método me parece el mejor sin ninguna duda. :D

Por cierto, Antena3 emite con un delay de -700

:arrow: Antena3 delay: -700
 
Cerberus dijo:
Totalmente de acuerdo, THCxabaz, pero ten en cuenta que estás comprimiendo dos veces. Eso hará resentirse al resultado final.

Saludos...

Tienes razon Cerberus, yo lo que hago es exportarlo a DVD con esta configuracion(como viene)

http://i16.photobucket.com/albums/b36/THCxabaz/config.png

y luego al comprimirlo a otro formato con el virtualdub no pierde demasiada calidad.

demarcha dijo:
Hola a todos, ante todo gracias por vuestra dedicacion nunca suficientemente agradecida.
Podiíais explicar un poquito como se hace con el nero vision? Opciones y eso... Un saludo y gracias de nuevo.

No tiene ninguna ciencia. Simplemente abres el NeroVision y arrastras dentro del programa el archivo .ts que grabaste de imagenio. Luego le das a "exportar". Le dices el formato que quieres usar y das a exportar y te creara el archivo. Si luego vas a trabajar con el archivo en el virtualdub para quitar franjas negras y demas, creo que seria bueno dejarlo en formato dvd, aunque se disparara el tamaño del archivo. Luego lo vuelves a comprimir con el virtualdub y te lo dejara a un tamaño mas normal. Si no vas a usar el virtualdud lo puedes pasar directamente al formato final que te interese.

Salu2

PD: Si quieres un resultado perfecto y controlando todos los aspectos del proceso lo mejor es el metodo de Cerberus...
 
Arriba