Se houver um atraso intrínseco entre o fluxo de vídeo e áudio, não há uma maneira fácil de descobrir. Suponha que você esteja criando um arquivo audiovisual em que o fluxo de áudio foi propositadamente compensado usando itsoffset
. Isso resultará na alteração da data e da hora de apresentação do áudio em relação ao vídeo.
Digamos que este seja o original, assumindo três quadros de áudio por quadro de vídeo (o que é muito pouco na prática):
V1 V2 V3 ...
A1 A2 A3 A4 A5 A6 A7 A8 A9 ...
Os quadros de áudio terão os timestamps A1 = 0, A2 = 1, A3 = 2, etc.
Agora você atrasa o fluxo de áudio:
V1 V2 V3 ...
xx xx xx A1 A2 A3 A4 A5 A6 ...
Aqui, as primeiras três amostras vazias terão os timestamps 0, 1 e 2, e A1 terá 3. Para o jogador, isto significa que V2 e A1 pertencem juntos, e não há nada de errado com isso.
Se você quiser estimar um deslocamento inicial, precisará inspecionar o fluxo de áudio manualmente ou usar silencedetect
para detectar o período entre o início do fluxo e o primeiro exemplo de áudio que contém informações, mas isso só funciona se o fluxo de áudio iniciar diretamente com um sinal. Se é um fade-in de algum tipo, ou começa em -∞ dBFS, você está sem sorte.