Video y audio desincronizado

Buenas.
Suelo usar mkvtoolnix,que es un programa para añadir audios,videos y subtítulos a contenedores mkv.
A veces el audio que quiero meter está desincronizado con el video y este programa tiene opción de adelantar o atrasar el audio hasta que esté todo sincronizado.
Pero hay casos en el que no hay manera de sincronizarlos.Lo hago bien en el primer minuto pero cuando voy al final,está totalmente desincronizado.Supongo que el video al ser de otra región o esté codificado de una manera específica hace imposible la sincronización.
Mi pregunta es si hay algún método para ajustar el video al audio o viceversa para que duren lo mismo y así los pueda mezclar.
Repito,no es un problema de que uno u otro esté adelantado o atrasado,es por algo mas que se me escapa de las manos en la que es imposible que video y audio se puedan sincronizar.¿Puede tener algo que ver los fotogramas por segundo,la región...?.
Muchas gracias y un saludo.
Si, MKV_MERGE; que es parte del paquete MKVToolNix, es el multiplexor oficial de matroska y que sirve para MULTIPLEXAR stream de audio, video, subtitulos, fuentes, imagenes, etc., es un hermoso archivo contenedor matroska-videom [aka .MKV] o matroska audio [aka .MKA]

Como sea...
Ese problema es muy comun, el mas comun de los comunes por desgracia.

Pero antes hay que ver algo a considerar:
- ¿Ambos videos son de la misma duracion? Ya sea serie o pelicula, si son de la misma duracion, pero exactamente de la misma duracion, entonces si puedes tener un problema de framerate distinto. Pero si tienen diferente duracion, entonces es problema de que un video tiene mas o menos contenido que el otro -escenas omitidas del otro video, o escenas extras, o las cortinillas para comerciales o los creditos de la distribuidora o del canal o servicio streaming donde se halla transmitido y el otro video esta 'limpio' de ese contenido-. En este ultimo caso, sera conseguir un video exactamente igual con la misma duracion del video al que se le quiere sustituir el audio.

- El stream de audio que va a sustituir el stream de audio original ¿esta codificado en VBR [bitrate variable]? Con MediaInfo puedes ver como esta codificado el stream de audio o de video, si es CBR o en VBR. Porque algun hardware decodificador en reproductores multimedia, boxtv o televisores con reproductor integrado tienen problemas para decodificar; y con ello , reproducir correctamente esta codificacion de audio dando problemas desde una velocidad irregular, o saltitos o pausas. Caso contrario en la decodificasion por software, estos problemas con VBR no existen. Si este fuera el caso, la solucion es recodificar el audio [solo el audio] pero esta vez usando CBR [bitrate constante]

En estos links de mediainfo, el primero es para abrir el archivo de video y ver sus componentes, el segundo es para comparar entre dos videos y el tercero es bajar el programa MediaInfo. Yo usaria el de comparar
-->mediaarea.net/MediaInfoOnline
-->mediaarea.net/MediaCompare
-->mediaarea.net/en/MediaInfo/Download/Windows

Vamos a suponer que efectivamente ambos videos son exactamente de la misma duracion, y la desincronizacion seria por la diferencia de frame rate o velocidad de cuadro. En estos dias es mas comun para series y peliculas que usen framerate de TELECINE de 23.97fps [o 24000/1001] o mas para peliculas el frame rate directo de CINE de 24fps [o 24p] y ambos serian los frame rates 'universales'. Pero algunas distribuidoras; y mas las televisoras, el video lo emiten a la velocidad del sistema local de television, para gran parte de america a 29.97fps [o 30000/1001] del sistema NTSC, o en gran parte de europa a 25fps [o 25p] del sistema frances PAL Entonces puedes encontrar el mismo archivo video de la misma serie o pelicula en diferentes frame rates.

Si los videos estan usando alguna de las velocidades de telecine o 24p o PAL, la desincronizacion no sera muy grande y se soluciona rapido, pero si alguno de los videos esta usando NTSC y el otro telecine o 24p o PAL, pues la desincronizacion sera muy notoria a los pocos minutos de reproduccion del video.

OK, tu ya conoces el uso de la tecnica del DELAY o RETARDO, donde valores positivos dan un retraso del comienzo de la reproduccion del audio, y los valores negativos ocasionan un adelanto de la reproduccion del audio. Con esto puedes sincronizar audio y video, de hecho, todos los archivos de un DVD o BluRay y algunos servicios streaming siempre cuentan con un valor DELAY del audio, asi se le da tiempo al sistema de video de poder decodificar y cargar parte de los datos de video a la RAM de Video, porque esta tarea de computo lleva mas tiempo que la decodificacion del audio.

Bien, hay otra tecnica del timestamp y timecode

Entonces tienes varias opciones para corregir esa desigualdad en el tiempo de reproduccion. Usas alguna de estas que enumero:
-- Usa un editor de audio para cambiar el framerate y recodificar el audio. Hay editores de audio que pueden leer la cabezera del archivo stream de audio [un .aac o .m4a o .mpa]. En la cabezera viene indicada la velocidad de cuadro a usar y que el reproductor de video ajustara la duracion a ese framerate. El archivo stream de sonido que guardes desde el editor ya lo podras poner en MKVMerge del MKVToolNix, ajustar el delay si es necesario y tener tu audio y video sincronizado.

- Desde MKVMerge usa la opcion de STRECH BY que esta exactamente debajo de DELAY.
Se emplea un valor numerico para 'estirar' [ampliar] o 'encoger' [estrechar] la velocidad de reproduccion. Generalmente se usa para el stream de video, pero si la diferencia de frames rates no es mucha [por ejemplo con los videos a 24p o 25p o telecine] se puede usar tambien para el stream de audio. Pero si la diferencia de frames rates es grande [un video estara a 24p o 25p/PAL o telecine y el otro en NTSC] puede que el resultado aunque sincronizado no sea el ideal.
Aqui debemos ver cuantos frames o cuadros tiene cada video y con ello calcular un valor numerico para estirar o estrechar la velocidad de reproduccion y se ajuste asi audio y video. Por omision el valor de 1 seria sin cambios o velocidad normal, valores inferiores a 1 son para estrechar la velocidad y valores mayores a 1 son para estirar la velocidad
Digamos que el video base; el que quedara en tu archivo MKV final, esta a un frame rate de 24p, y el video de donde tomaras el audio esta a 25p, y ambos videos duran 1min. Quiere decir que el video base tiene 1440frames [24fps x 60segundos] y el otro video tendra 1500frames, el audio de este video esta ajustado para escucharse durante 1500frames, entonces para escucharse durante solo 1440frames debe estrecharse la velocidad del audio. El valor para esto es de 0.96 [1440/1500] y ese valor lo pones en el campo STRECH BY, el reproductor leera este valor de strech de la cabezera del MKV y ajustara el tiempo [time code] para este timestamp

- Otra opcion es calcular el Time Code para enlazarlo al stream de audio. El time Code es un archivo de texto usado para indicarle la velocidad de reproduccion entre audio y video ajustandose a uno puntos de tiempó o marcadores, es decir, a cada X frames del video el audio debe reproducir Y segundos. A estas alturas habra software para ello y que produzca el archivo de texto del time code para la sincronia, o quiza desde el mismo MKVToolNix se tenga la herramienta requerida. Eso no lo se, porque ya tiene años que deje este tema de la codificacion de videos y crear misd proppis videos con diferentes audios -de diferentes idiomas o buscar las mejores calidades-

- La ultima opcion; que para muchos seria la mas obvia y la primera en hacer, aunque es de tipo PICAPIEDRA es efectiva sin duda. El video del que tomaras solo el audio tendras que recodificarlo usando el mismo frame rate del video base que vas a emplear. Con esto el codificador agregara el framerate al stream de audio resultante. Aqui sera de que configures la peor calidad y codificacion mas rapida para el stream de video; ya que no te importa su calidad porque lo vas a desechar, pero para el stream de audio usas el mismo formato y mismos valores de BitRate y cantidad de bits que el audio original. Luego ya en MKVMerge arrastras primero el archivo Del video base, desmarcas el stream de audio, luego arrastras el archivo de video que acabas de hacer [mkvmerge te preguntara si lo vas a agregar como un stream independiente o como un append o agregado, ahi lo pones como stream independiente] y desmarcas el stream de video, asi ya tendras el stream de video base y el stream de audio sustituto sincronizado, quiza se rquiuera usar el tema del DELAY; porque como dije, suelen trear un valor delay los videos

Hasta aqui lo dejo porquwe se me acabo em tiempo
.
Gracias maestro.
A ver,lo que hago es usar un mkv de una peli 4K que en castellano no está y le añado el audio de la misma peli de menor calidad.Así poco a poco estoy ampliando la calidad de mis pelis.
Hay veces que no tienen la misma duración y con la opción de desfase de audio,prueba y error lo consigo ajustar.
Otras veces tienen la misma duración pero ni con la opción desfase no hay manera.Aquí puede entrar los frames y la región como has comentado.
Y otras veces no tienen la misma duración,lo corrijo con la opción desfase pero a medida que se reproduce la peli se va desfasando.
Voy a ponerme a hacer pruebas con toda la información que me has dado,que es mucha y yo no tengo experiencia en estos temas por lo que iré poco a poco.
Te contesto cuando vea algún resultado.
Una vez mas,te agradezco como siempre la ingente información que das a la gente que lo necesita.
@mefisto1201 ¿Al final lograste solucionar el problema?

Lo pregunto porque me encuentro en la misma situación; es decir, tengo una película en 1920x1080 y 23'976 FPS con el audio en inglés a la que le quiero añadir un audio en castellano cuyo vídeo está en 25 FPS.

El problema está en que la película en HD dura 1h 30m 35s y la que tiene el audio que quiero aprovechar dura 1h 22m 57m
Que tampoco me cuadra la diferencia de tiempos cuando sólo hay una diferencia de 1 fotograma por segundo.
He estado viendo ambas películas y, aparentemente, son iguales salvo los FPS.
Al final era un anime que tenía escenas cortadas en la versión española y eso hace que sea imposible que cuadrase con la versión japo que yo quería incluir el audio.
Claro,como tú dices,yo veía que empezaba y terminaba igual en ambas versiones y me volvía loco porque no duraban lo mismo.
La única solución que he encontrado es coger mi versión en blu ray y ripearlo.Lo que quería es tener todos los animes de mi infancia en un disco duro pero no me acordaba que que el que yo tenía venía censurado.
Y compañero no creo que los frames influyan mucho en nuestros problemas.
Muchas veces que me ha pasado lo mismo que a tí.Lo que he hecho es conseguir unas cuantas versiones con castellano y siempre había una que coincidía el tiempo y lo pude hacer.O viceversa,claro.
Saludos
En mi caso, lo tengo complicado para conseguir otro audio en castellano porque es una película poco habitual.
De hecho, la tenía mi padre descargada de sabe Dios dónde, en calidad DVD y relación de aspecto 4:3
Y la que he podido conseguir en 16:9 y calidad HD sólo contiene el audio en inglés.

Es frustrante tener todos los elementos por separado y no poder/saber combinarlos correctamente.
Llevo varios días haciendo pruebas pero no consigo ningún resultado. Es para volverse loca.
Si es un AVI, hace poco tuve que adaptar audio español en PAL/25 fps a video en inglés a 23.976 y lo hice sin mayor complicación en VirtualDub.

El audio no lo quieres tocar porque cambiaría el pitch (la velocidad) y sonaría mal o raro.

Como digo, si es un AVI, cambiar el frame rate con VirtualDub desde el menú video a 25 frames y, aunque no es estrictamente necesario, recodificas el vídeo, sólo el vídeo.

Yo te lo recomiendo aunque no sea necesario, porque hay dispositivos que aunque no tengan problemas, como un PC, en una tele, o un reproductor de vídeo, haga que la imagen vaya como a saltos porque la codificación no ha sido nativa a 25 fps y al decodificar y ajustar no se vea fluido.

Es algo que he descubierto con mi tele smart actual. Si Mediainfo dice que el frame rate original no es el actual, vas a tener problemas de reproducción sí o sí.

De todas formas no te vas a librar de ajustar el audio unos milisegundos y no te va a encajar perfecto, bien sea porque la versión inglés añade X frames extra o, sencillamente porque la conversión 23.976 a 25, nunca es fina.

Y sí, no te salen los cálculos, pero es así. Coge la calculadora, convierte el tiempo a segundos y multiplica por el frame rate. Te debería salir el mismo valor. Si no sale el mismo, aparte de echarle la culpa a los decimales, es que tiene más contenido uno que otro.

Como no tengo potencia de PC, yo lo convertí con la web Cloud Convert, aunque no creo que la conversión gratuita te permita hacerlo con un vídeo tan largo. Así no te hace falta software externo, para codificar, aunque para ajustar el audio sí.
Pues voy a probar con VirtualDub, a ver si logro algún resultado.
Muchas gracias [oki]
@Nilin
¿No las pudes conseguir de "Aquella manera"?
ABURRIDO...
Imagen

Ja, ja...
@nilin

No hay un software magico que ajuste la sincronia del audio entre un video que dura 8 minutos mas que el otro. No requieres una calculadora especial para encontrar la cantidad de fotogramas [que puedes hacerlo a mano por cierto] ni te importa el contenedor [sea avi, mkv o el pedorrin mp4] ni el formato de video [divx/xvid, h264 o h265 o av1 o h266]. Es simplemente imposible. Y para la recodificacion se puede usar cualquier encoder, basta que reconozca el contenedor [avi o mkv o mov u ogm o el pedorrin mp4] para poder acceder al stream de audio y video

En tu caso pasa una de dos cosas:
- O tu video en idioma no castellano tiene insertos de cortinillas del canal o del servicio de streaming de donde lo capturaron, mas comerciales o alguna cosa extra y por eso dura 8min mas que el otro que viene en castellano.
- O bien, el contenido realmente dura esos 1h30min y tu version al castellano que tienes viene con escenas cortadas, ya sea por censura o por acortarlo a los tiempos de un canal de television.

Sea cual sea el caso, el cambiar la velocidad de cuadro [frame rate] no sirve de nada, ni estirar o contraer el audio [y aqui si que tienes un cambio de pitch agresivo que hara se escuche raro el audio] porque son 8min de diferencia.

En este caso lo que tienes que hacer es Si-o-Si editar alguno de los videos para que duren lo mismo, Para ello obviamente usas un editor de video:
- O abres el video HD y le cortas las mismas escenas y partes que omitieron en el video con audio en castellano,
- O abres en el editor el video HD, luego importas el audio del video en castellano, y finalmente vas cortando segun se requiera la pista de audio en castellano para irla empalmando en los trozos de video donde se escucha. Tendras el audio en castellano de 1h30 del video HD, pero tendras 'silencios' en las escenas que se hayan quitado del video que viene en castellano.

Para el primer caso renderizas el audio y video [recodificas el audio y video], asi todos los audios y el video tendran la duracion de 1h22min. Luego con un multiplexor juntas los audios y el video en un solo archivo contenedor. Por ejemplo con MKVMerge de MKVToolNix obtendras un MKV Dual audio

Para el segundo caso solo renderizas [recodificas] y exportas la pista de audio en castellano, asi tendras la calidad original del audio e imagen del video HD [porque no los has recodificado] y el audio en castellano lo tendras de la duracion de 1h30min. Haces lo mismo de juntar el audio y video del archivo HD con el audio que has creado en castellano usando un Multiplexor.

En las recodificaciones usas el mismo bitrate, frecuencia de muestreo y cantidad de bits de resolucion que el original. Por ejemplo, si recodificas el video y este tiene un bitratye de 1000kbps y usa 8bit de color, usas esos mismos 1000Kbps y 8/bit de color, si el audio tiene frecuencia de muestreo de 44.1Kbps a 16bit estereo, usas los mismo 44.1Kbps a 16bit estereo

A esto, me resulta extrañamente extrañoo que pese a que ya visitaste el hilo de editores de video que publique hace tiempo y empezaras usando uno [Kdenlive ] no hayas solucionado el tema de encajar un audio en videos de muy, pero muy distinta duracion.. Eso si, no es facil de buenas a primeras y requiere tiempo para cuando te inicias, pero si es de ir usandolo y probando poco a poco a estas alturas ya deberias poder hacer esa parte de cortes para el primer caso del que hablo parrafos arriba, y tu mismo haber entendido por tu cuenta que es lo que sirve de solucion a tu problema en particular. Y VirtualDub; o cualquiera de la familia DUB que salio, aunque es cierto que cuenta con algunas funciones basicas de corte ha estas alturas no es la mejor opcion para esta tarea que es mas 'refinada' y requiere de un programa mejor para el tema de los cortes [y que mejor que un editor de video aunque sea promedio]

@mefisto1201 entiendes porque te pregunte
Pero antes hay que ver algo a considerar:
- ¿Ambos videos son de la misma duracion? Ya sea serie o pelicula, si son de la misma duracion, pero exactamente de la misma duracion, bla-bla-bla...


Porque como dije al principio:
Como sea...
Ese problema es muy comun, el mas comun de los comunes por desgracia.

Y dentro de lo mas comun es que quieren usar videos de muy-muy-muy distinta duracion, precisamente porque la version con doblaje tiene partes cortadas; la primera razon mas comun, o la version del idioma original; lo segundo mas comun, sea una version extendida con escenas y contenido extra y aunque la version con doblaje este completa se queda corta contra la version extendida. Y los ultimos mas comunes de la desincronizacion son por los temas que ya toque de son iguales de duracion [con diferencias de apenas unos cuantos segundos o bien duran exactamente lo mismo] pero con la velocidad de cuadro diferente

En fin...
Ya di la solucion lineas arriba que requieres tambien para ese anime y es de usar un editor de video

En este hilo algunos editores permiten exportar video con dual audio directamente y te ahorras lo de multiplexar aparte para tener el archivo de video con dual audio
hilo_editores-de-video-gratuitos_2326117

Este es un editor de video profesional que ademas cuenta con herramientas mas de un editor de audio profesional que las opciones de audio de un editor de video promedio
hilo_davinci-resolve-15-editor-profesional-de-video-y-version-gratuita_2325494

Y no, no es facil; al menos al inicio, el hacer esta tarea de edicion, ni tampoco es rapida de hacer si apenas empiezas, pero tampoco es algo imposible ni que lleve demasiado tiempo, pero si es de tener paciencia y tener claro que es lo que quieres hacer.
Parece que no te hacemos caso pero es que son cosas muy técnicas que muchos nos hacemos un lio.
Yo siempre que he puesto una duda técnica,te has dejado la piel en los teclados para explicarlo todo los mas detalladamente posible y eso es digno de admiración.
Siempre agradecido.
Saludos
mefisto1201 escribió:¿No las pudes conseguir de "Aquella manera"?
Así conseguí la que está en HD con idioma inglés, pero en castellano no encontré nada.


TRASTARO escribió:A esto, me resulta extrañamente extrañoo que pese a que ya visitaste el hilo de editores de video que publique hace tiempo y empezaras usando uno [Kdenlive ] no hayas solucionado el tema de encajar un audio en videos de muy, pero muy distinta duracion.
Hombre, porque lo que pretendía hacer con Kdenlive era cortar un par de fragmentos de película y luego unirlas con una transición sencilla del tipo fade-out/fade-in. No me compares.

La que tiene idioma castellano, calidad DVD y relación 4:3 la estuve viendo y, aparentemente, no tiene cortes evidentes.
Pero al tratarse de una película descargada y desconocer la fuente, es imposible saber si ha sido manipulada de alguna forma.

Tiene que haber diferencias en el metraje porque es mucha diferencia, pero esas diferencias no están en el inicio ni en el final.
Pero puede ocurrir que tenga cortes bien hechos (aprovechando transiciones), así que tendré que abrir dos ventanas en PotPlayer y reproducir ambas películas simultáneamente para comprobar si son idénticas. Luego, a partir de ahí, tendré que recortar el vídeo en función del audio en castellano que tenga.
@Nilin
Vaya trabajazo compañero.En esta situación yo tiro la toalla.
@mefisto1201 Probablemente, yo también lo haga; pero tengo curiosidad por saber dónde está el problema.
Total, sólo pierdo 90 minutos de mi vida, que es lo que dura la película (bueno, un poco más porque voy anotando los errores).

De momento, llevo 31 minutos y he encontrado tres partes eliminadas en la versión con el audio en castellano.
Supongo que la subsanación no es excesivamente difícil, pero no domino ninguno de los programas necesarios para lograrlo.
¿De verdad que no encuentras mas copias por si alguna coincide?.
Ya tiene que ser rara con lo grande que es la red
Es una película poco conocida, protagonizada por Matthew Perry (el de Friends), titulada The Ron Clark story (2006).

El otro día salió el tema durante el café del curro y cuando llegué a casa le pregunté a mi padre, que tiene muchas pelis.
Y tener la tiene, pero descargada en calidad regular (supongo que la que encontró en su día) y en aspecto 4:3
Y solo tienes esa copia.
Tengo curiosidad y esta noche la voy a buscar.
Dime la duración de la versión HD para ver si encuentro alguna y coincide la duración.
La duración de la película HD con el audio en inglés es de 1h 30m 35s
Por si te sirve de algo, la película en España se tituló Unidos para triunfar; pero ya te digo que la cosa está complicada.

A ver si tienes más suerte que yo. Gracias de antemano, compi [beer]
Y cuanto dura la que tiene castellano.
Tengo mas en proceso en HD y en castellano.A ver si me coinciden dos.
EDITO.
Tengo una versión española que dura lo mismo que la versión HD que tienes: 1:30:35
Y cuanto dura la que tiene castellano.

La que tengo dura 1h 22m 57s pero, a falta de comprobar la última media hora, ya he detectado varios cortes.
Son cortes bien hechos en transiciones que no rompen diálogos y si no lo sabes, apenas se notan. Pero son cortes, claro.

Si la has conseguido en castellano con la misma duración, entonces ya sería un gran adelanto porque si está en HD, aprovecharía todo (audio y vídeo); y si no está en HD, aprovecharía el audio y lo añadiría al vídeo de la que tengo en inglés.

La verdad es que yo no estoy muy puesta en "asuntos marítimos" y no fui capaz de encontrarla en castellano.
Porque supongo que la que conseguiste está en castellano y no en español latino, que ahí si que hay más opciones.

En cualquier caso, mejor hablamos por privado porque estos temas no están permitidos en el foro.
Ojalá hubiera un programa milagroso que le metes el video y el audio y lo hiciera solito.Así @TRASTARO no tendría tanta santa paciencia con nosotros. [carcajad] [carcajad] [carcajad] [carcajad]
Programas los hay, pero tanto en tu caso como en el mío, ya no era cuestión de sincronizar los audios, es que eran vídeos distintos.

Y si los vídeos son distintos, hay que hacer un trabajo de precisión para ir adaptando el audio a los fragmentos aprovechables.
Además, hay que quitar las partes de vídeo que "sobran", con lo cual acabamos teniendo una película quizá demasiado modificada.
21 respuestas