Bueno, pues aquí te explico un poco como .SINCRONIZAR UN MPG
El avi del que extraia el audio, estaba perfectamente sincronizado, pero al extraerle el audio, tanto con el Virtualdub, Nandub, Virtualdubmod o Graphedit, al pasarlo con el video con el Tmpgenc, el mpg resultante siempre me salia desincronizado, mas adelantado el sonido que la imagen.
El tema lo he resuelto con el TMPGenc de esta manera
Cargo el video, el audio y la configuracion como suelo hacerlo habitualmente. Ahora vamos a SETTING y en AVANZADO clikeamos dos veces en SOURCE RANGE. Una de las opciones que nos sale en esta nueva ventana es AUDIO GAP CORRECT.
Ahi es donde vamos a operar. En caso de que el sonido nos salga adelantado al video le añadimos un valor negativo (en milisegundos). Si el sonido se nos adelanta unos 6 segundos, pondriamos -6000. Si el caso es a la inversa, se adelanta la imagen al sonido, le pondremos valor positivo. El post de donde saque la informacion, en ingles, sin embargo indica que ha de ser al reves, pero mi experiencia me indica que ha de ser de esta manera, probar vosotros. El problema es que en esta opcion vemos la imagen sin sonido por lo que tendriamos que poner la cifra de milisegundos a ojo o en mi caso uso el Virtualdub.
Para poder comprobar cuantos son los milisegundos de adelanto o de atraso, corto un trozo del mpg que tengo desincronizado donde haya un ruido que resalte, un choque, disparo... Con el Virtualdub en la opcion
AUDIO, INTERLEAVING, en la ultima casilla DELAY AUDIO TRACK BY es donde pondremos los milisegundo que estimamos a ojo que atrasa o adelanta. Le damos a OK y abajo a la izquierda al primer PLAY y veremos como seria el resultado.
Te recomiendo paciencia para ir introduciendo valores mayores o menores hasta que quede sincronizado.
Y ahora .SINCRONIZAR UN AVI
Necesitaremos el programa VirtualDub.
Abriremos el VirtualDub, File-->Open video file, y seleccionamos el archivo AVI.
Si te sale una pantalla advirtiéndote que el audio no tiene un VBR constante no pasa nada, picas Aceptar.
Iremos a la pestaña Audio y seleccionaremos, Full processing mode. Otra vez a Audio y le damos a Conversion, saldrá una ventana en la que seleccionaremos:
44.100, 16-bit, stereo, todo lo demás en blanco.
Ahora seleccionaremos Video-->Direct stream copy. Vamos de nuevo a File y le damos a Save Wav. Se abre una ventana, ponemos nombre y aceptamos.
Ya tendremos el audio separado.
Para separar el video iremos a la pestaña, Audio y elegimos, No audio. Luego nos aseguramos de que en la pestaña Video esté seleccionado Direct stream copy. Vamos a File y seleccionamos Save as Avi, le damos nombre y guardamos (pondremos un nombre diferente al del AVI original).
Ahora sincronizaremos el Video y el audio a partir de la imagen y el sonido separados.
Abriremos el VirtualDub, nos vamos a la pestaña Audio-->Opción interleaving; recuerda que tanto en audio y el video deben de estar en Direct stream copy, esto es muy importante. Nos aparecerá una ventana con las siguientes opciones.
1º Enable audio/video interleaving (Debe de estar seleccionado sino lo está por defecto).
2º En audio block placement; en preload 500 ms of audio before video stars. Y en interleave audio every 1; y seleccionaremos frames.
3º Audio skew correction; (Bien esta es el kit de la cuestión) debes poner en Delay audio track by (lo siguiente *) ms.
· Si el audio va por delante de la imagen correspondiente, coloca un valor positivo en el campo marcado. Ejemplo: +1000 ms
· Si el audio va por detrás de la imagen correspondiente, coloca un valor negativo en el campo marcado. Ejemplo: -1000 ms.
A tener en cuenta: 1000 ms corresponde a un segundo de desfase; así que ya dependiendo del desfase total que tengamos pondremos un valor u otro; Normalmente entre valores de 500 y – 500 se solucionan muchos. Ya esta ahora Save avi y a esperar
Un saludo y espero haberte ayudado.