Como resolver a falta de sincronismo de áudio e vídeo no streaming?
A perda de sincronismo de áudio e vídeo no streaming tem uma explicação:
Este assunto já foi objeto de vídeo de dica da Seegma, já foi inquirido em várias ocasiões em nossas lives, porém continua sendo um dos assuntos mais perguntados no nosso suporte.
Há algum tempo resolvemos dirimir de vez esta dúvida, especialmente para os usuários do OBS que mais nos relatam este inconveniente:
Vamos retomar mais uma vez o inconveniente da falta de sincronismo entre áudio e vídeo:
A razão principal normalmente é a compressão do vídeo, sendo o “culpado” o algoritmo de compressão.
A compressão ainda mais utilizada H264, torna o arquivo bem menor, porém este algoritmo de compressão exige bastante processamento para transmitir vídeo.
A compressão do áudio por sua vez é bem mais tranquila, normalmente mais rápida e exige muito menos processamento da máquina, isto sem contar que normalmente utilizamos um switches de vídeo para as câmeras o qual
É ligado a uma mesa de áudio, comumente ligadas por cabos analógicos.
Sinais diferentes chegando juntos porém processados a velocidades distintas.
Simplificando, é como se o vídeo demorasse mais para ser processado do que o áudio.
Esta é a razão por que em muitos streamings observamos o áudio um pouco adiantado com relação ao video, ou seja, o vídeo demorou mais para ser processado e ficou atrasado com relação ao áudio.
Pelo número de questionamento que tivemos com relação a este tópico, fizemos um pequeno vídeo passo a passo mostrando como calcular este atraso (delay) e corrigir a transmissão no OBS para que áudio e vídeo fiquem juntos.
O passo a passo requer apenas que se grave alguns segundos de vídeo, sugerimos utilizar uma claquete, ou mesmo batendo palmas para ter um movimento de vídeo e áudio fácil de observar o sincronismo.
Após gravado este pequeno trecho levamos o material para a ilha de edição e apenas observamos se áudio e vídeo estão sincronizados.
Na ilha de edição fica claro que o áudio está um pouco adiante com relação ao vídeo, mostramos um procedimento simples de calcular e resolver esta falta de sincronismo.
O primeiro passo é localizar o Frame onde a claquete (as mãos no caso do vídeo em referência) junta as duas partes (palmas).
Medimos o número de frases entre o quadro em que a claquete (as mãos) estão juntas até o ponto onde a onda sonora mostra o som da claquete (palmas).
Tendo esta distância em frames calculada, basta fazer uma continha simples lembrando de que:
1 segundo contém 1000 milissegundos e que um segundo contém normalmente 30 frames (30 fps).
Para calcular quantos milissegundos por frame há em um vídeo onde umminuto corresponde a 30 frames fazemos o seguinte:
Dividindo 1000/30 chegamos a 33,33 que é o valor em milissegundos de um frame.
Basta multiplicar agora o número de frames de delay apurado multiplicando por 33,33.
O resultado é um nr que deve ser colocado no OBS no campo delay de audio para resolver definitivamente o inconveniente.
Lembre que cada caso é um caso, às vezes podemos trabalhar com câmeras com 60 frames, mas a fórmula é a mesma.