Calculadora de sincronização de áudio e vídeo
A calculadora de sincronização de áudio e vídeo transforma um adiantamento ou atraso medido do som em uma correção exata.
Executar grátis
Roda direto no seu navegador. Grátis, sem cadastro — seus dados não são enviados para lugar nenhum.
Informe o deslocamento detectado em milissegundos: use um valor positivo quando o som chegar antes da imagem correspondente e negativo quando chegar depois. O resultado informa se você deve atrasar o áudio ou o vídeo, fornece um atraso não negativo e preserva a medição com sinal para referência. Assim, você evita a confusão comum sobre sinais antes de configurar um editor, transcodificador, player ou fluxo de multiplexação.
Descreva o deslocamento detectado com uma convenção de sinal consistente
Comece com uma medição que compare um evento sonoro ao evento visual correspondente. Uma palma, uma claquete, uma porta se fechando ou uma consoante falada com movimento labial claro pode servir como referência. Informe um número positivo quando o áudio estiver adiantado: por exemplo, use 180 quando o som for ouvido 180 milissegundos antes do quadro correspondente. Informe um número negativo quando o áudio estiver atrasado: use -240 quando a imagem atingir o evento de referência 240 milissegundos antes do som. Essa convenção descreve a posição do áudio em relação ao vídeo, e não uma opção copiada de um aplicativo específico. A distinção importa porque os aplicativos rotulam deslocamentos de maneiras diferentes. Alguns pedem quando uma entrada deve começar, enquanto outros pedem quanto atraso adicionar; os sinais positivos podem ter sentidos opostos. Ao registrar primeiro a relação detectada, você mantém a observação independente da interface. A calculadora preserva essa medição com sinal e fornece separadamente a direção corretiva e a magnitude, evitando confusão entre evidência e ação.
Aplique a correção ao fluxo que chega primeiro
A sincronização é restaurada atrasando o fluxo que chega primeiro. Quando o valor informado é positivo, o áudio antecede a imagem; portanto, o resultado indica delay_audio e retorna a mesma magnitude em audio_delay_ms. Quando o valor é negativo, o áudio fica atrás da imagem, o que significa que o vídeo chega primeiro; nesse caso, o resultado indica delay_video e usa a magnitude absoluta em video_delay_ms. O campo offset_ms é sempre não negativo e representa o atraso que deve ser aplicado. O outro fluxo recebe atraso zero, deixando a operação explícita para automação. Uma medição zero retorna none porque nenhum fluxo precisa ser deslocado. O cálculo não estica, reamostra, corta nem altera a mídia; ele calcula apenas uma correção de alinhamento do início. Se a sincronização começar correta e se desviar gradualmente durante a reprodução, um deslocamento fixo não será suficiente. Investigue taxas de amostragem incompatíveis, interpretação da taxa de quadros, desvio de relógio ou timestamps danificados. Para um adiantamento ou atraso estável, um único atraso alinha os eventos sem mudar a velocidade de reprodução.
Transfira o resultado com segurança para um editor ou fluxo de multiplexação
Use direction para decidir qual faixa ou fluxo receberá o atraso e offset_ms como magnitude. Antes de inserir o valor em outra ferramenta, confirme se ela aceita milissegundos, segundos, quadros ou timecode. Converta as unidades sem alterar a correção: 250 milissegundos correspondem a 0.25 segundos, enquanto a conversão em quadros também depende da taxa de quadros do projeto. Se uma interface usar deslocamento com sinal em vez de um atraso nomeado, consulte a documentação e faça o mapeamento deliberadamente, pois a convenção pode ser diferente daquela de detected_audio_offset_ms. Teste a saída corrigida em vários eventos nítidos próximos ao começo e ao fim do programa. Essas verificações ajudam a diferenciar um deslocamento constante de um desvio gradual e revelam medições baseadas em som ambíguo. Guarde a medição original com sinal junto da correção nos metadados ou nas notas de revisão. O cálculo é determinístico, não exige upload de mídia e pode integrar scripts de controle de qualidade que já recebem um deslocamento de análise de forma de onda ou revisão manual.
Casos de uso
Corrigir uma faixa de microfone gravada separadamente
Converta o adiantamento ou atraso medido do microfone no atraso exato antes de multiplexá-lo com a filmagem da câmera.
Preparar uma correção para a linha do tempo
Transforme um erro de sincronização relatado pela revisão em uma direção inequívoca e uma magnitude em milissegundos.
Automatizar correções de controle de qualidade
Envie o deslocamento com sinal de um detector ao pipeline e aplique o atraso à etapa correta de áudio ou vídeo.
Perguntas frequentes
O que significa um deslocamento de áudio positivo?
Significa que o áudio antecede o evento visual correspondente. Atrase o áudio pelo valor retornado em offset_ms.
O que significa um deslocamento de áudio negativo?
Significa que o áudio está atrasado em relação ao evento visual; portanto, o vídeo chega primeiro. Atrase o vídeo por offset_ms.
O que acontece quando o deslocamento é zero?
A direção é none e os dois atrasos são zero, pois nenhuma correção do alinhamento inicial é necessária.
É possível corrigir desvio de sincronização ao longo do tempo?
Não. O cálculo fornece um atraso fixo. Um desvio progressivo costuma exigir correção de timing, amostragem, quadros ou timestamps.
Quanto custa o cálculo?
Cada solicitação de API custa US$ 0,002. O cálculo é determinístico e não envia nem processa um arquivo de mídia.
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/video/mux-audio-offset \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"audio_offset_ms":180}'const res = await fetch("https://api.kit.forhosting.com/video/mux-audio-offset", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"audio_offset_ms": 180
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/video/mux-audio-offset",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"audio_offset_ms": 180
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/video/mux-audio-offset", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"audio_offset_ms":180}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"audio_offset_ms":180}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/video/mux-audio-offset", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"audio_offset_ms": 180
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "video.mux_audio_offset",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Limites
max_mb | 500 |
max_minutes | 60 |
max_megapixels | 3.9 |
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |