Depuração envolvente de número de sequência RTP: rollover de 16 bits, perda de pacotes falsos, picos de instabilidade e fluxos de câmera longos
Como depurar wraparound de número de sequência RTP, rollover de 16 bits, falsos alarmes de perda de pacotes, fluxos de câmera RTSP de longa duração, picos de jitter e bugs de rastreamento de sequência.
Os números de sequência RTP são valores de 16 bits. Eles eventualmente passam de 65535 de volta para 0. Os usuários procuram por "Wraparound do número de sequência RTP", "perda de pacote falso RTP", "pico de jitter RTSP após um minuto", "rollover de sequência RTP" e "alarme de perda de pacote de fluxo de câmera errado" quando um fluxo de longa execução repentinamente parece perder milhares de pacotes.
O RTSP Inspector é útil porque este é um problema de contabilidade de cabeçalho de mídia. O fluxo pode estar íntegro, mas o analisador, o gateway ou a lógica de monitoramento podem tratar o rollover como perda.
Qual é a aparência do envoltório
A progressão normal da sequência RTP perto do rollover se parece com:
65533
65534
65535
0
1
2
That is not a gap. It is expected 16-bit rollover.
If a tool calculates 0 - 65535 as a huge negative jump or treats it as missing packets, it will report false loss.
Common symptoms
Wraparound bugs show up as:
- Packet loss spikes at regular intervals.
- Jitter graph jumps suddenly.
- Recording marks a healthy stream as unstable.
- RTP replay stops at sequence 65535.
- Analyzer reports negative sequence delta.
- Gateway resets statistics incorrectly.
- Long streams fail while short tests pass.
This case matters because many test streams are too short to expose the bug.
How fast rollover happens
Rollover timing depends on packet rate. A high bitrate video stream with many RTP packets per second can wrap relatively often. Low bitrate audio wraps much later.
Factors:
- Frame rate.
- Resolution.
- Bitrate.
- Fragmentation.
- MTU.
- Codec.
- Whether audio and video are analyzed separately.
If an H.264 keyframe is heavily fragmented, sequence numbers advance faster.
Loss vs rollover
A real loss near rollover is possible, so the analyzer must handle both cases.
Compare:
- Expected next sequence modulo 65536.
- Payload continuity.
- RTP timestamp continuity.
- Marker bit behavior.
- SSRC continuity.
- RTCP receiver reports.
If SSRC, timestamp, and payload cadence continue normally, rollover is likely benign.
SSRC changes are different
Do not confuse sequence wraparound with SSRC change. When SSRC changes, a new sequence space may start. When only sequence number wraps, the same stream identity continues.
Evidence:
- Same SSRC before and after.
- Same payload type.
- Same clock rate.
- Timestamp continues.
- No RTCP BYE.
- No RTSP reconnect.
That is sequence rollover, not source replacement.
Replay and archive bugs
Tools that archive RTP events can fail at wraparound if they sort by raw sequence number instead of extended sequence number.
Bad behavior:
- Packets after zero are sorted before older packets.
- Replay jumps backward.
- Loss calculation resets incorrectly.
- Exported evidence looks out of order.
RTSP Inspector should preserve raw sequence numbers but calculate continuity with rollover-aware logic.
Debug checklist
Use this process:
- Find the sequence boundary near
65535. - Check next packets after zero.
- Confirm SSRC stays the same.
- Confirm payload type stays the same.
- Compare RTP timestamp deltas.
- Check marker bit around frame boundary.
- Check RTCP loss reports.
- Separate rollover from actual missing packets.
- Preserve packets before and after rollover.
- Test long enough streams, not only short samples.
Final diagnosis
RTP sequence wraparound is normal. False alarms happen when tools treat 16-bit rollover as packet loss or stream reset.
RTSP Inspector helps diagnose long-running camera streams by showing sequence continuity, SSRC continuity, timestamp behavior, and real packet-loss evidence across rollover.
<!-- rtsp-localized-evidence-foundation-v1:start -->Evidência reproduzível para “Depuração envolvente de número de sequência RTP: rollover de 16 bits, perda de pacotes falsos, picos de instabilidade e fluxos de câmera longos”
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 envolvente de número de sequência RTP: rollover de 16 bits, perda de pacotes falsos, picos de instabilidade e fluxos de câmera longos”, 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 envolvente de número de sequência RTP: rollover de 16 bits, perda de pacotes falsos, picos de instabilidade e fluxos de câmera longos” é: Como depurar wraparound de número de sequência RTP, rollover de 16 bits, falsos alarmes de perda de pacotes, fluxos de câmera RTSP de longa duração, picos de jitter e bugs de rastreamento de sequência. 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 envolvente de número de sequência RTP: rollover de 16 bits, perda de pacotes fal
Encerre “Depuração envolvente de número de sequência RTP: rollover de 16 bits, perda de pacotes falsos, picos de instabilidade e fluxos de câmera longos” somente quando o resultado salvo, exportado ou reaberto continuar igual ao estado observado. O retorno temporário da interface ajuda, mas evidência durável é mais forte. Registre qualquer limite restante para a próxima pessoa.
Ponto de controle 2: Como depurar wraparound de número de sequência RTP, rollover de 16 bits, falsos alarmes de
Para “Como depurar wraparound de número de sequência RTP, rollover de 16 bits, falsos alarmes de perda de pacotes, fluxos de câmera RTSP de longa duração, p”, separe uma decisão do produto de um limite do sistema, hardware, arquivo, permissão ou processo. Confirme qual camada produziu a evidência antes de atribuir causa. Isso evita transformar um sintoma próximo em causa raiz supostamente provada.
Ponto de controle 3: Qual é a aparência do envoltório
Encerre “Qual é a aparência do envoltório” somente quando o resultado salvo, exportado ou reaberto continuar igual ao estado observado. O retorno temporário da interface ajuda, mas evidência durável é mais forte. Registre qualquer limite restante para a próxima pessoa.
Ponto de controle 4: Common symptoms
Para “Common symptoms”, separe uma decisão do produto de um limite do sistema, hardware, arquivo, permissão ou processo. Confirme qual camada produziu a evidência antes de atribuir causa. Isso evita transformar um sintoma próximo em causa raiz supostamente provada.
Ponto de controle 5: How fast rollover happens
Encerre “How fast rollover happens” somente quando o resultado salvo, exportado ou reaberto continuar igual ao estado observado. O retorno temporário da interface ajuda, mas evidência durável é mais forte. Registre qualquer limite restante para a próxima pessoa.
Ponto de controle 6: Loss vs rollover
Para “Loss vs rollover”, separe uma decisão do produto de um limite do sistema, hardware, arquivo, permissão ou processo. Confirme qual camada produziu a evidência antes de atribuir causa. Isso evita transformar um sintoma próximo em causa raiz supostamente provada.
Ponto de controle 7: SSRC changes are different
Encerre “SSRC changes are different” somente quando o resultado salvo, exportado ou reaberto continuar igual ao estado observado. O retorno temporário da interface ajuda, mas evidência durável é mais forte. Registre qualquer limite restante para a próxima pessoa.
Ponto de controle 8: Replay and archive bugs
Para “Replay and archive bugs”, separe uma decisão do produto de um limite do sistema, hardware, arquivo, permissão ou processo. Confirme qual camada produziu a evidência antes de atribuir causa. Isso evita transformar um sintoma próximo em causa raiz supostamente provada.
Ponto de controle 9: Debug checklist
Encerre “Debug checklist” somente quando o resultado salvo, exportado ou reaberto continuar igual ao estado observado. O retorno temporário da interface ajuda, mas evidência durável é mais forte. Registre qualquer limite restante para a próxima pessoa.
Ponto de controle 10: Final diagnosis
Para “Final diagnosis”, separe uma decisão do produto de um limite do sistema, hardware, arquivo, permissão ou processo. Confirme qual camada produziu a evidência antes de atribuir causa. Isso evita transformar um sintoma próximo em causa raiz supostamente provada.
Matriz de aceitação
| Ponto | Evidência a manter | Condição de aprovação |
|---|---|---|
| Depuração envolvente de número de sequência RTP: rollover de 16 bits, perda de pacotes falsos, picos de instabilidade e | Estado inicial, uma ação e estado resultante | Outra pessoa reproduz o resultado declarado |
| Como depurar wraparound de número de sequência RTP, rollover de 16 bits, falsos alarmes de perda de pacotes, fluxos de c | Estado inicial, uma ação e estado resultante | Outra pessoa reproduz o resultado declarado |
| Qual é a aparência do envoltório | Estado inicial, uma ação e estado resultante | Outra pessoa reproduz o resultado declarado |
| Common symptoms | Estado inicial, uma ação e estado resultante | Outra pessoa reproduz o resultado declarado |
| How fast rollover happens | Estado inicial, uma ação e estado resultante | Outra pessoa reproduz o resultado declarado |
| Loss vs rollover | 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:
- Erro de RTP na correção de fluxo primário: diagnosticar perda de pacotes, congelamentos de câmera e macroblocos em RTSP
- Relatórios de remetente RTCP, jitter e perda de pacotes: lendo a integridade do fluxo sem assistir ao vídeo
- Como corrigir erros RTP / NDPI de 'gravação desconhecida' - tipo de carga útil dinâmica e mapeamento SDP em fluxos RTSP