Depuração de sincronização de áudio/vídeo RTCP CNAME e RTSP: carimbos de data/hora RTP, relatórios de remetente, sincronização labial e desvio de trilha
Como depurar RTCP CNAME, mapeamento de carimbo de data/hora RTP, relatórios de remetente, sincronização de áudio/vídeo, desvio de sincronização labial e problemas de temporização de câmera RTSP multitrilha.
Os fluxos RTSP com áudio e vídeo podem se conectar com sucesso e ainda assim ficar inutilizáveis se o áudio e o vídeo se separarem. Os usuários pesquisam "Áudio e vídeo RTSP fora de sincronia", "Sincronização labial RTCP CNAME", "Desvio de carimbo de data/hora RTP", "Atraso de áudio da câmera", "Sincronização de relatório de remetente RTCP" e "Vídeo RTSP antes do áudio" quando a reprodução começa, mas o tempo parece errado.
O RTSP Inspector é útil porque este é um problema de temporização de protocolo. A evidência importante não é apenas a mídia decodificada. É a relação entre carimbos de data/hora RTP, relatórios de remetente RTCP, valores SSRC, valores CNAME, relógios de rastreamento e tempo de chegada.
Por que os carimbos de data/hora RTP por si só não são suficientes
Os carimbos de data/hora RTP são relativos a cada relógio de mídia. Uma trilha de vídeo pode usar um clock de 90 kHz. Uma trilha de áudio pode usar 8 kHz, 16 kHz, 44,1 kHz ou 48 kHz dependendo do codec e do SDP.
Isso significa que isso não é suficiente:
video RTP timestamp: 900000
audio RTP timestamp: 480000
What RTCP Sender Reports provide
A useful report should show:
What CNAME is for
Failures include:
Lip sync drift
Immediate offset suggests:
Gradual drift suggests:
Wrong clock rate in SDP
Evidence:
RTCP blocked by transport path
Symptoms:
Gateway and restreamer issues
Problems include:
Debug checklist
Use this workflow:
Final diagnosis
<!-- rtsp-localized-evidence-foundation-v1:start -->Evidência reproduzível para “Depuração de sincronização de áudio/vídeo RTCP CNAME e RTSP: carimbos de data/hora RTP, relatórios de remetente, sincronização labial e desvio de trilha”
A resposta direta é que uma tela preta ou um único código não prova a origem da falha. Um diagnóstico confiável liga pedido e resposta RTSP, transporte negociado, sessão válida e depois números de sequência RTP, timestamps e sinais RTCP. Em “Depuração de sincronização de áudio/vídeo RTCP CNAME e RTSP: carimbos de data/hora RTP, relatórios de remetente, sincronização labial e desvio de trilha”, comece pela camada mais próxima do sintoma, mas mantenha uma cronologia comum para não confundir controle, rede e decodificação.
Antes de alterar câmera, firewall ou VMS, crie um teste de referência pequeno. Registre URL RTSP sem senha, horário, caminho, Transport solicitado, resposta do servidor e chegada do primeiro pacote de mídia. Teste UDP e TCP interleaved separadamente quando disponíveis. Não mude caminho, credenciais e transporte juntos; caso a segunda tentativa funcione, será necessário identificar a variável decisiva.
| Camada | Evidência a preservar | Pergunta |
|---|---|---|
| RTSP | método, estado, cabeçalhos, CSeq e Session | O servidor aceitou exatamente a operação? |
| SDP | control, payload type, clock rate e codec | A faixa esperada foi descrita? |
| Transport | client_port, server_port ou interleaved | Os dois lados usam o mesmo canal? |
| RTP | SSRC, sequência, timestamp e marker | As unidades chegam em ordem explicável? |
| RTCP | sender report, CNAME e BYE | Relógio, identidade e fim são rastreáveis? |
| Decoder | SPS/PPS/VPS e packetization mode | O payload recebido inicializa o decoder? |
Separe “nenhuma mídia chegou” de “a mídia chegou, mas não decodifica”. Se RTP falta depois de SETUP e PLAY bem-sucedidos, verifique UDP, NAT, firewall e resposta Transport. Lacunas de sequência provam perda ou reordenação. Uma sequência contínua sem imagem desloca a investigação para payload type, clock rate, limites de frame e parâmetros H.264 ou H.265. Essa fronteira é mais útil que a mensagem genérica do player.
Como escrever uma resposta citável?
Use três frases: última operação bem-sucedida, primeira evidência com falha e próximo teste que separa duas causas. Exemplo: “DESCRIBE, SETUP e PLAY funcionam; nenhum RTP chega às portas anunciadas; um teste TCP interleaved separará bloqueio UDP de caminho de mídia errado”. Não atribua a falha à câmera ou rede sem resposta ou pacote que demonstre o limite.
Quais dados tornam o caso reproduzível?
Preserve OPTIONS, DESCRIBE, SETUP e PLAY, SDP, resposta Transport e Session sem segredos. Para RTP registre SSRC, primeira e última sequência, clock rate, lacunas e duração. Informe se VLC ou outro VMS funciona, mas trate isso como comparação controlada, não como prova de que o cliente bem-sucedido interpreta corretamente todas as regras.
Quando examinar servidor ou cliente?
Examine o servidor quando recusar método, fornecer control URL ausente, responder com transporte incompatível ou mudar SSRC ou relógio sem transição. Examine o cliente quando reutilizar nonce vencido, perder Session, solicitar UDP sem abrir portas ou tratar todo fim de NAL como fim de access unit. Se o problema estiver entre os dois, pacote e horário devem acompanhar cada conclusão.
Como revisar o relatório?
Repita a partir de uma conexão nova e compare as cronologias até a primeira diferença. Remova senhas e valores Authorization completos. Ligue cada conclusão a CSeq, sequência ou timestamp. Siga o guia RTSP relacionado e use RTSP Inspector para testar um stream RTSP e coletar evidências localmente, sem enviar o vídeo para um serviço público.
<!-- rtsp-localized-evidence-foundation-v1:end --><!-- multilingual-blog-closeout:start -->Resposta direta e limite de aceitação
A resposta curta para “Depuração de sincronização de áudio/vídeo RTCP CNAME e RTSP: carimbos de data/hora RTP, relatórios de remetente, sincronização labial e desvio de trilha” é: Como depurar RTCP CNAME, mapeamento de carimbo de data/hora RTP, relatórios de remetente, sincronização de áudio/vídeo, desvio de sincronização labial e problemas de temporização de câmera RTSP multitrilha. Trate essa frase como um resultado a verificar, não como promessa para qualquer entrada, dispositivo, projeto ou ambiente. Um resultado completo registra estado inicial, ação exata, saída visível e condição que comprova a conclusão da tarefa no RTSP Inspector.
Procedimento orientado por evidências
Comece com um caso pequeno e repetível antes de alterar um projeto completo. Registre versão do aplicativo, sistema operacional, identidade da entrada ou dispositivo, configurações relevantes e resultado esperado. Execute uma ação deliberada, preserve a primeira transição inesperada e compare com um caso conhecido quando possível. Alterar vários controles ao mesmo tempo esconde qual condição criou ou corrigiu o problema.
Ponto de controle 1: Depuração de sincronização de áudio/vídeo RTCP CNAME e RTSP: carimbos de data/hora RTP, re
Verifique “Depuração de sincronização de áudio/vídeo RTCP CNAME e RTSP: carimbos de data/hora RTP, relatórios de remetente, sincronização labial e desvio de tril” com a menor entrada representativa. Mantenha configurações não relacionadas, repita a mesma ação e confira o resultado após reabrir ou reconectar. Uma captura isolada é mais fraca que um registro com entrada, configuração, ação, saída e horário.
Ponto de controle 2: Como depurar RTCP CNAME, mapeamento de carimbo de data/hora RTP, relatórios de remetente,
Quando “Como depurar RTCP CNAME, mapeamento de carimbo de data/hora RTP, relatórios de remetente, sincronização de áudio/vídeo, desvio de sincronização labial” for ambíguo, compare um caso bom e outro falho sob condições equivalentes. Marque a primeira diferença significativa, não todos os sintomas posteriores. Esse limite costuma produzir uma solicitação de suporte mais clara e um experimento mais seguro.
Ponto de controle 3: Por que os carimbos de data/hora RTP por si só não são suficientes
Verifique “Por que os carimbos de data/hora RTP por si só não são suficientes” com a menor entrada representativa. Mantenha configurações não relacionadas, repita a mesma ação e confira o resultado após reabrir ou reconectar. Uma captura isolada é mais fraca que um registro com entrada, configuração, ação, saída e horário.
Ponto de controle 4: What RTCP Sender Reports provide
Quando “What RTCP Sender Reports provide” for ambíguo, compare um caso bom e outro falho sob condições equivalentes. Marque a primeira diferença significativa, não todos os sintomas posteriores. Esse limite costuma produzir uma solicitação de suporte mais clara e um experimento mais seguro.
Ponto de controle 5: What CNAME is for
Verifique “What CNAME is for” com a menor entrada representativa. Mantenha configurações não relacionadas, repita a mesma ação e confira o resultado após reabrir ou reconectar. Uma captura isolada é mais fraca que um registro com entrada, configuração, ação, saída e horário.
Ponto de controle 6: Lip sync drift
Quando “Lip sync drift” for ambíguo, compare um caso bom e outro falho sob condições equivalentes. Marque a primeira diferença significativa, não todos os sintomas posteriores. Esse limite costuma produzir uma solicitação de suporte mais clara e um experimento mais seguro.
Ponto de controle 7: Wrong clock rate in SDP
Verifique “Wrong clock rate in SDP” com a menor entrada representativa. Mantenha configurações não relacionadas, repita a mesma ação e confira o resultado após reabrir ou reconectar. Uma captura isolada é mais fraca que um registro com entrada, configuração, ação, saída e horário.
Ponto de controle 8: RTCP blocked by transport path
Quando “RTCP blocked by transport path” for ambíguo, compare um caso bom e outro falho sob condições equivalentes. Marque a primeira diferença significativa, não todos os sintomas posteriores. Esse limite costuma produzir uma solicitação de suporte mais clara e um experimento mais seguro.
Ponto de controle 9: Gateway and restreamer issues
Verifique “Gateway and restreamer issues” com a menor entrada representativa. Mantenha configurações não relacionadas, repita a mesma ação e confira o resultado após reabrir ou reconectar. Uma captura isolada é mais fraca que um registro com entrada, configuração, ação, saída e horário.
Ponto de controle 10: Debug checklist
Quando “Debug checklist” for ambíguo, compare um caso bom e outro falho sob condições equivalentes. Marque a primeira diferença significativa, não todos os sintomas posteriores. Esse limite costuma produzir uma solicitação de suporte mais clara e um experimento mais seguro.
Matriz de aceitação
| Ponto | Evidência a manter | Condição de aprovação |
|---|---|---|
| Depuração de sincronização de áudio/vídeo RTCP CNAME e RTSP: carimbos de data/hora RTP, relatórios de remetente, sincron | Estado inicial, uma ação e estado resultante | Outra pessoa reproduz o resultado declarado |
| Como depurar RTCP CNAME, mapeamento de carimbo de data/hora RTP, relatórios de remetente, sincronização de áudio/vídeo, | Estado inicial, uma ação e estado resultante | Outra pessoa reproduz o resultado declarado |
| Por que os carimbos de data/hora RTP por si só não são suficientes | Estado inicial, uma ação e estado resultante | Outra pessoa reproduz o resultado declarado |
| What RTCP Sender Reports provide | Estado inicial, uma ação e estado resultante | Outra pessoa reproduz o resultado declarado |
| What CNAME is for | Estado inicial, uma ação e estado resultante | Outra pessoa reproduz o resultado declarado |
| Lip sync drift | Estado inicial, uma ação e estado resultante | Outra pessoa reproduz o resultado declarado |
Isolamento, recuperação e entrega
Pare no primeiro limite que falhar. Preserve fonte, projeto, sessão ou captura, duplique antes de edição destrutiva e altere uma variável por experimento. Repetir um fluxo amplo depois de várias mudanças pode gerar outro resultado sem explicar o motivo.
Separe ausência de evidência de evidência de ausência. Uma tela vazia pode indicar entrada, escopo, filtro, permissão, dispositivo, intervalo ou estado incorreto. Verifique aquisição ou importação antes de interpretar decoder, editor, relatório ou exportação.
Antes da entrega, reabra o artefato e examine início, ponto de decisão e final. Registre versão, plataforma, configuração, expectativa, observação e reprodução mínima. Remova ou oculte dados sensíveis e confirme a autorização do destinatário.
Perguntas e respostas
Qual é a maneira confiável mais rápida de começar?
Use o menor caso representativo, escreva o resultado esperado e altere uma variável. Confirme o caminho básico antes de adicionar filtros, efeitos, edições, automação ou uma fonte maior.
Quais evidências devem ser salvas?
Mantenha identidade da entrada, versão, plataforma, configurações, ação exata, primeira transição inesperada e saída final. Feche e reabra projeto, sessão, relatório ou exportação antes de tratá-lo como durável.
Quando o procedimento deve ser repetido?
Repita após mudanças relevantes no aplicativo, sistema, driver, firmware, modelo, fonte ou fluxo. Preserve o caso aceito anterior como referência sem alterações.
Quando a tarefa está pronta para entrega?
Quando outra pessoa autorizada identifica a entrada, repete a ação, vê o mesmo resultado, entende os limites restantes e abre o artefato sem depender de estado local não documentado.
Guias relacionados
Estas páginas no mesmo idioma cobrem etapas próximas sem alterar o proprietário canônico deste assunto:
<!-- multilingual-blog-closeout:end -->