.png)
Aquí hay una pregunta similar para Windows:
¿Herramienta para arreglar videos que no están sincronizados con el audio?
Espero resolver este problema en una Mac.
Probé Handbrake y Avidemux (este último parece tener una opción, "shift", para solucionarlo, pero no reproduce el audio en absoluto, así que no puedo decir si está haciendo algo).
Respuesta1
Consíguete una copia de FFmpeg. Vea la parte inferior de esta publicación sobre cómo hacerlo.
Si el vídeo va por detrás del audio o viceversa, realmente no importa. El comando básico es el siguiente. Pasaremos la entrada dos veces, como se puede ver en dos -i
opciones, luego retrasaremos una entrada y las fusionaremos nuevamente.
ffmpeg -i in.flv -itsoffset offset -i in.flv -map 1:0 -map 0:1 -c copy out.flv
Aquí,offset
es el retraso en segundos, por ejemplo, 1.5
o 0.35
. Este valor tiene que ser positivo, por lo que si su audio va por detrás del vídeo, tendremos que compensar el vídeo. Esto se muestra en el ejemplo anterior. Del mismo modo, si el vídeo va por detrás del audio, tendremos que compensar el audio.
Entonces, ¿cómo eliges si retrasar el audio o el vídeo? Bueno, como hemos retrasado todo in.flv
, simplemente seleccionaremos las transmisiones de audio o video y las fusionaremos con las transmisiones de audio o video originales. Esto se hace en las -map
opciones.
Básicamente, map
tiene dos números. El que está antes de los dos puntos especifica el número del archivo de entrada (comenzando en 0) y el segundo número especifica la secuencia del archivo de entrada (también comenzando en 0).
Entonces, para retrasar el audio, use las dos opciones siguientes:
-map 1:0
significa: tomar la primera transmisión del segundo archivo de entrada (video del archivo original)-map 0:1
significa: tomar la segunda transmisión del primer archivo de entrada (audio del archivo retrasado)
Dale la vuelta si tienes que retrasar tu video:
-map 0:0
significa: tomar la primera transmisión del primer archivo de entrada (video del archivo retrasado)-map 1:1
significa: tomar la segunda transmisión del segundo archivo de entrada (audio del archivo original)
Finalmente, -c copy
simplemente le indicará a FFmpeg que copie los flujos de bits de video y audio. Esto significa que no habrá ningún proceso de codificación. Esto hace que el comando sea ultrarrápido y ni siquiera perderás calidad en el proceso. Sin embargo, si se encuentra con errores de sincronización, debe omitirlo -c copy
y dejar que FFmpeg vuelva a codificar la entrada.
Puede obtener la última versión estable de FFmpeg a través decerveza casera.
Abra una Terminal e ingrese:
ruby -e "$(curl -fsSkL raw.github.com/mxcl/homebrew/go)"
Ver elrequerimientos de instalacióntambién. Debe instalar las herramientas de línea de comandos para Xcode si no lo ha hecho. Necesitará una ID de Apple para eso.
Una vez instalado Homebrew, instale FFmpeg:
brew install ffmpeg
Una vez hecho esto, podemos usar FFmpeg para arreglar su video.