Sé cómo establecer un retraso con -itsoffset
el 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 usarsilencedetect
para 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.