Está en la página 1de 6

Sincronizar audio y vídeo en archivos AVI

Sincronizar audio y vídeo en archivos AVI: en este manual veremos la forma de


solucionar el problema de que el vídeo y el audio no se reproducen a la vez en archivos AVI. En
él se incluyen los pasos para solucionar distintos tipos de desincronizaciones, ya sean de tiempo
constante, variable, o una mezcla de las dos.

Sincronización de audio y vídeo en archivos AVI

Se pueden dar tres tipos de desincronización distintos. El primero es


una desincronización constante en el tiempo: esto quiere decir que el audio estará
atrasado o adelantado el mismo tiempo a lo largo de todo el vídeo. El segundo es
una desincronización progresiva, es decir, cuando el tiempo entre audio y vídeo
va aumentando a medida que avanza el vídeo. Y el último tipo, desincronizacion
total, viene a ser una mezcla de los otros dos, o sea que el audio está en efecto
desfasado en tiempo con el vídeo, pero a su vez ese desfase varia a lo largo de la
película. Este último es el más complicado de solucionar, a veces sin éxito o
mediante un método de fraccionamiento del vídeo en pequeñas partes que lo hace
muy poco recomendable.

El programa que necesitaremos es el VirtualDubMod, que podemos encontrar aquí:

Descargar VirtualDubMod

La imagen de la derecha trata de ilustrar los diferentes tipos de desincronización a


los que nos podemos enfrentar.

Detectando el tipo de desincronización

Se procede a cargar el vídeo en el VirtualDubMod, para ello ir a File -> Open video file. En el
caso de tener audio VBR (bitrate variable) aparecerá un mensaje advirtiéndolo, donde
deberemos elegir Sí si pensamos extraer el audio a un archivo WAV descomprimido, o
elegir No si lo pensamos extraer en su formato original (por ejemplo MP3), que será lo habitual
(por tanto normalmente elegiremos No).

Una vez cargado el vídeo, vamos a File -> File Information, y comparamos la duración del
audio con la del vídeo, como se ve en la imagen. Si no existe diferencia notable (en este caso por
ejemplo es despreciable) entonces se puede suponer que la desincronización es constante.
Vale aclarar que este método no es 100% fiable, y siempre es mejor reproducir el vídeo para
asegurarse de reconocer el tipo de desincronización.

Solucionando la desincronización

En función del tipo de desincronización que hayamos detectado, seguiremos unos pasos u otros.

Desincronizacion progresiva (método 1)

Como se comentó antes, se produce cuando audio y vídeo tienen diferente duración. En este
caso se apela a un ajuste del framerate del vídeo para corregir la diferencia de tiempos. Como
este ajuste es despreciable (a no ser que la diferencia sea muy grande) no suele presentar
problemas de compatibilidad.

Previamente a este ajuste es necesario separar audio y vídeo, para ello vamos a Streams ->
Stream list -> Demux (para guardarlo en el formato original, lo habitual) o Save WAV (si lo
queremos pasar a un archivo WAV descomprimido), dependiendo del uso que se le dará y del
formato en que se encuentre, y guardamos el archivo de audio. Luego deshabilitamos esta pista
con Disable y hacemos clic en OK. Sólo falta ir al menú Video y seleccionar Direct stream
copy. Finalmente guardamos el vídeo en File -> Save As...

Ahora sí, abrimos el vídeo sin audio que acabamos de crear y le agregamos el audio recién
extraído yendo a Streams -> Stream list y usando Add. También seleccionamos Direct
stream copy para este audio. Y ahora es el turno de la sincronización: para acceder a la
herramienta vamos al menú Video -> Frame Rate. Como se puede ver en la imagen hay que
seleccionar Change so video and audio durations match, y el valor entre paréntesis
muestra el nuevo valor de framerate que tendrá el vídeo. Finalmente hay que guardar el archivo.

Desincronizacion progresiva (método 2)

Existe otro método que evita la modificación del framerate del vídeo, modificando en su lugar el
audio, logrando así el mismo resultado que es modificar su duración. En primer lugar hay que ir
a File -> File Information y apuntar la duración del vídeo, la del audio, y el framerate del
vídeo. A continuacion habrá que hacer algunos cálculos, nada muy complicado. Lo mejor como
siempre es ilustrarlo con un ejemplo:
 Supongamos que el vídeo dura 2:12:41.40, el audio 2:12:35.64 y el framerate del vídeo
es 25 fps.

 Pasamos las duraciones a segundos:


2:12:41.40 = 2*3600 + 12*60 + 41 + 0.40 = 7961.40 (A)
2:12:35.64 = 2*3600 + 12*60 + 35 + 0.64 = 7955.64 (B)

 Framerate del audio = (A / B) * framerate vídeo. Conviene sacar 4 decimales. En este


ejemplo:
(7961.40 / 7955.64) * 25 = 25.0181 fps

Acto seguido extraemos el audio desde Streams -> Stream list -> Demux, y lo
recomprimimos con el programa BeLight haciendo un cambio de framerate del calculado
(25.0181) al que debería tener (25 fps), y lo volvemos a poner al vídeo usando Streams ->
Stream list -> Add. Por último, debemos guardar el vídeo, y asunto solucionado.

La forma de cambiar la duración del audio está explicada con mayor detalle en este manual. En
él se cambia también el framerate al vídeo, pero es algo que en este caso no tenemos que hacer,
pues simplemente queremos cambiar el audio sin tocar el vídeo.

Desincronización constante

Ésta es la más fácil de corregir, ya que se trata simplemente de desplazar el audio completo
hacia atrás o adelante en el tiempo (dependiendo de si el audio se reproduce después o antes
que el vídeo, respectivamente). Se corrige mediante una herramienta dedicada a ello, que
permite ajustar el delay (retraso) del audio. En Streams -> Stream list hacemos clic con el
botón derecho sobre el audio afectado, y seleccionamos Interleaving. De paso controlar que
esté en Direct stream copy. Los valores se introducen en Delay audio track by y se miden
en milisegundos (ms). Un número positivo atrasará el audio mientras que uno negativo lo
adelanta. Para saber qué valor poner, lo ideal es medir el tiempo aproximadamente,
reproduciendo el vídeo desincronizado, como para tener un valor de referencia, y luego procesar
una parte a ver si sirvió, y si no ir ajustándolo mas finamente y procesando pequeños trozos para
ver cómo va quedando.

Por ejemplo, si observamos que el audio sale un segundo más tarde de lo debido, el valor a
introducir sería -1000
Se puede dar también el caso de que el AVI luzca perfectamente sincronizado en el PC, pero
después de grabarlo e ir a probarlo en nuestro reproductor de salón, nos encontremos
nuevamente con la desincronización constante. Esto se produce debido a que el reproductor
ignora el interleaving/delay que hemos configurado y comienza a reproducir el audio al mismo
tiempo que el vídeo, haciendo caso omiso al retraso o adelanto que le agregamos.

Para solucionar este inconveniente habrá que hacer uso nuevamente del VirtualDubMod. Esta
vez extraeremos el audio a un archivo WAV, desde el menú Streams -> Stream list -> Save
WAV. Ahora necesitaremos algún editor de audio no muy complejo, como el muy fácil de usar y
gratuito Audacity. Con este programa debemos agregar un silencio al comienzo de la pista de
audio igual en duración al delay que habíamos configurado anteriormente, y cortar ese tiempo
exacto al final de la pista. Es muy importante cortar el mismo tiempo exacto que estamos
agregando, pues si no es así no coincidiran las duraciones del audio y el vídeo y habremos
creado una desincronización progresiva, todo esto en caso de que el audio haya que atrasarlo. Si
hay que adelantarlo se deberán cortar en el inicio esos segundos (o milisegundos) del audio y
agregar el silencio de igual duración al final de la pista.

Procedamos: una vez dentro de Audacity, cargamos el audio con Archivo -> Abrir, y
seleccionamos el archivo WAV del audio (o MP3 si lo extrajimos en dicho formato). Para añadir
un silencio primero vamos al menú Editar -> Mover cursor, y moveremos el cursor al
principio o final de la pista según dónde queramos agregar el silencio. Luego hay que ir al
menú Generar -> Silence e indicar el tiempo, recordando que debe ser exactamente el mismo
que habíamos configurado en el delay del VirtualDubMod. Haciendo clic en la flecha de la
ventana Silence Generator se puede especificar el formato de tiempo introducido, siendo
recomendable usar hh:mm:ss + milliseconds, que permite ajustar hasta las milésimas de
segundo. En el siguiente ejemplo se hace un ajuste de 1550 milisegundos.

Ahora debemos cortar el trozo sobrante, para ello vamos al menú Editar -> Snap-To ->
Apagado (esto es para poder marcar un trozo de forma muy exacta), y seleccionamos el trozo a
eliminar con el ratón. Puede ser útil ampliar la vista usando los botones de zoom marcados
con 1. El tiempo seleccionado se puede ver abajo (2, donde también conviene ajustar el formato
de tiempo a hh:mm:ss + milliseconds usando la flecha). Se debe seleccionar el trozo de igual
duración al silencio agregado, al principio o final de la pista según corresponda. Una vez
seleccionado ir al menú Editar -> Borrar para eliminarlo.
Para guardar el archivo, antes será necesario especificar la ruta al codec MP3 Lame
(archivo lame_enc.dll), únicamente la primera vez que usemos el programa, ya que no viene
incluido con Audacity por razones de licencia. Puede ser descargado desde aquí. Esto se hace
desde el menú Editar -> Preferencias -> Formatos de archivo, donde también debemos
elegir el bitrate de salida del MP3. Hecho esto, nos aseguraremos de que, en la ventana principal
abajo a la izquierda, esté seleccionada una Frecuencia del proyecto (Hz) de 44100 Hz si se
trata de un vídeo para grabar a CD, o de 48000 Hz si es para grabar en DVD.

Ahora exportaremos el MP3 yendo al menú Archivo -> Export As -> MP3, elegiremos un
nombre y lo guardaremos. Si lo quisiéramos mantener en formato WAV, pues simplemente
seleccionaríamos WAV como formato de exportación. Ya sólo queda unirlo al vídeo, usando las
ya conocidas funciones del VirtualDubMod: Streams -> Stream list -> Add para añadirlo,
y Disable para eliminar el audio antiguo. Por último, guardaremos el vídeo definitivo ya
sincronizado.

Desincronización total

La más temida, pero también la mas rara, por suerte. Cuando el audio y vídeo tienen distinta
duración y además se encuentran desfasados en tiempo. En este caso se trata de aplicar ambos
métodos de sincronización por separado, primero el progresivo (se igualan las duraciones) y
luego el constante (se corrige el desfase). Con suerte lograremos nuestro cometido, si no ya se
pone muy complicado (o más engorroso) y escapa a la finalidad de este manual.

Guardando el vídeo

Habiendo corregido ya la desincronización, procedemos a guardar el vídeo. Para ello vamos al


menú Video y seleccionamos Direct stream copy (esto es importante) y por último a File ->
Save As, y lo guardamos como archivo AVI.

Es muy probable que debamos repetir estos pasos varias veces hasta lograr una sincronización
perfecta. Lo ideal es procesar pequeños trozos para no esperar que se procese todo el vídeo cada
vez. Es importante destacar que estos métodos no son mágicos y que incluso en el peor de los
casos no sea posible solucionar la desincronización.

También podría gustarte