¿Cómo puedo obtener un retraso exacto entre audio y video con ffmpeg?

¿Cómo puedo obtener un retraso exacto entre audio y video con ffmpeg?

Sé cómo establecer un retraso con -itsoffsetel indicador de ffmpeg, pero quiero saber cómo obtener y establecer el tiempo de retraso exacto.

Respuesta1

Si hay un retraso intrínseco entre la transmisión de vídeo y audio, no hay una manera fácil de averiguarlo. Supongamos que está creando un archivo audiovisual en el que la transmisión de audio se compensó intencionalmente usando itsoffset. Esto dará como resultado que las marcas de tiempo de la presentación de audio cambien en relación con el video.

Digamos que este es el original, asumiendo tres fotogramas de audio por fotograma de vídeo (que es muy poco en la práctica):

V1       V2          V3    ...
A1 A2 A3 A4 A5 A6 A7 A8 A9 ...

Los fotogramas de audio tendrán las marcas de tiempo A1 = 0, A2 = 1, A3 = 2, etc.

Ahora retrasas la transmisión de audio:

V1       V2          V3    ...
xx xx xx A1 A2 A3 A4 A5 A6 ...

Aquí, las primeras tres muestras vacías tendrán las marcas de tiempo 0, 1 y 2, y A1 tendrá 3. Para el jugador, esto significa que V2 y A1 van juntos, y no hay nada de malo en eso.

Si desea estimar un desplazamiento inicial, deberá inspeccionar la transmisión de audio manualmente o usarsilencedetectpara detectar el período entre el inicio de la transmisión y la primera muestra de audio que contiene información, pero esto solo funciona si la transmisión de audio comienza directamente con una señal. Si se trata de algún tipo de aparición gradual o comienza en -∞ dBFS, no tienes suerte.

información relacionada