Sessão RTSP 454 não encontrada: por que SETUP ou PLAY falha após o início da conexão da câmera

Como solucionar erros de sessão RTSP 454 não encontrada em câmeras IP, NVRs, ffmpeg, VLC, SETUP, PLAY, IDs de sessão, keepalive e sessões RTSP obsoletas.

sessão rtsp 454 não encontrada, erro de sessão rtsp, falha na reprodução da câmera, ffmpegrtsp, diagnóstico rtsp

454 Session Not Found é um dos erros RTSP que confunde os usuários porque a câmera está claramente acessível. A conexão TCP foi aberta. O URL pode ter respondido a OPTIONS ou mesmo DESCRIBE. A autenticação pode ter funcionado. Então SETUP, PLAY, keepalive ou uma solicitação posterior falha com 454 Session Not Found.

Os usuários procuram por "Sessão RTSP 454 não encontrada", "Falha no PLAY do método ffmpeg 454", "Câmera VLC RTSP 454" e "Sessão de câmera não encontrada RTSP" quando um fluxo não falha na primeira etapa. Este erro geralmente significa que o servidor RTSP não reconhece o ID da sessão usado pelo cliente, a sessão expirou, o cliente enviou uma solicitação antes da existência de uma sessão ou o caminho do fluxo/URL de controle causou um estado incompatível.

O RTSP Inspector é útil porque 454 não é um problema de decodificador de vídeo. É uma evidência do estado da sessão RTSP.

O que significa 454 Sessão Não Encontrada

Após RTSP SETUP, a câmera retorna um cabeçalho Session:

RTSP/1.0 200 OK
Session: 12345678;timeout=60

Later requests should use that session:

PLAY rtsp://192.168.1.50/stream1 RTSP/1.0
Session: 12345678

Se a câmera não reconhecer 12345678, ela poderá retornar:

RTSP/1.0 454 Session Not Found

That can happen because the client used the wrong Session ID, the camera expired it, the camera restarted internally, a proxy lost state, or the request URI does not match the session context.

Common causes

High-probability causes include:

  • PLAY sent without a successful SETUP.
  • Client reused a stale Session ID after reconnect.
  • Camera timed out the session because keepalive was missing.
  • SETUP succeeded for one track but PLAY used a different aggregate URL.
  • NVR session state was cleared while the client kept the old session.
  • Camera returned a Session header with parameters and the client parsed it incorrectly.
  • Multiple clients exceeded camera session capacity.
  • Firmware bug after encoder restart or profile switch.
  • RTSP proxy or relay did not preserve session affinity.

The error is about server-side state, not necessarily wrong credentials.

Session header parsing problems

Some Session headers include parameters:

Session: 12345678;timeout=60

O identificador da sessão é 12345678; timeout=60 é um parâmetro. Se um cliente enviar o valor inteiro incorretamente ou retirar a parte errada, a câmera poderá rejeitar solicitações posteriores.

Um bom diagnóstico deve preservar exatamente o que a câmera retornou e exatamente o que o cliente enviou posteriormente.

Configuração de rastreamento e reprodução agregada

Para fluxos multitrilha, o cliente pode enviar solicitações SETUP separadas para trilhas de vídeo e áudio. Então ele pode enviar um PLAY agregado.

O SDP pode conter:

a=control:*
a=control:trackID=1
a=control:trackID=2

If the client chooses the wrong control URL, the camera may create session state for one resource and reject playback on another. This can look like a session error even when authentication and SDP are correct.

Session timeout and keepalive

If 454 appears after 30, 60, or 120 seconds, inspect keepalive. The camera may expire the session if the client does not send OPTIONS or GET_PARAMETER before timeout.

Important questions:

  • What timeout did the camera advertise?
  • Did the client send keepalive?
  • Did keepalive include the correct Session header?
  • Did the camera return 200 OK?
  • Did 454 happen immediately after a missed keepalive interval?

If the timing matches the timeout, this is a session lifetime problem.

Reconnect logic can create stale sessions

Some applications reconnect quickly after network loss. If the app keeps old session state after reconnect, it may send requests using a Session ID from the previous TCP connection. Many cameras treat that as invalid.

The correct behavior is usually to run a fresh RTSP sequence:

  1. OPTIONS
  2. DESCRIBE
  3. SETUP
  4. PLAY

Do not assume the camera remembers an old Session ID after a reconnect.

Debug checklist

Use this process:

  1. Find the first 454 Session Not Found.
  2. Identify which RTSP method received it.
  3. Locate the SETUP response that created the session.
  4. Compare the Session ID returned by camera with the Session ID sent by client.
  5. Check whether the Session header included parameters.
  6. Check whether keepalive occurred before timeout.
  7. Check whether RTSP TCP reconnected before 454.
  8. Compare track control URLs and aggregate control URL.
  9. Check whether multiple clients are opening the same camera stream.
  10. Test direct camera vs NVR/proxy path.

Final diagnosis

RTSP 454 Session Not Found means the RTSP server rejected the client's session state. The root cause may be stale Session ID, missing keepalive, wrong control URL, expired session, proxy state loss, or camera firmware behavior. The fix starts with the RTSP method sequence and Session header evidence.

RTSP Inspector helps expose that sequence so the problem can be diagnosed at the RTSP state-machine layer instead of being mistaken for a codec, player, or generic network issue.

<!-- rtsp-localized-evidence-foundation-v1:start -->

Evidência reproduzível para “Sessão RTSP 454 não encontrada: por que SETUP ou PLAY falha após o início da conexão da câmera”

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 “Sessão RTSP 454 não encontrada: por que SETUP ou PLAY falha após o início da conexão da câmera”, 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 --><!-- rtsp-localized-layer-verdicts-v1:start -->

Da observação ao veredito por camada

Em “Sessão RTSP 454 não encontrada: por que SETUP ou PLAY falha após o início da conexão da câmera”, escreva primeiro a observação e depois a interpretação. Outra pessoa deve localizar a observação na captura: estado RTSP ligado a CSeq, valor SDP, resposta Transport, lacuna de sequência, mudança de SSRC ou diferença entre RTP timestamp e RTCP sender report. “O servidor está lento” ou “o codec é incompatível” continua hipótese até que uma prova específica a explique melhor que as alternativas.

Divida o fluxo em fronteiras. Primeiro TCP abre; depois OPTIONS ou DESCRIBE é aceito. SDP deve descrever faixa utilizável, control URL, payload type e clock rate. SETUP precisa de resposta Transport compatível e PLAY de Session válida. Só então vêm chegada RTP, ordem, tempo e preparo do decoder. Pare na primeira fronteira sem prova de sucesso.

Mantenha fonte e intervalo constantes nas comparações. UDP contra TCP interleaved usa caminho e credenciais iguais. Main stream contra sub stream preserva cliente e transporte. Ao comparar VLC com VMS, registre métodos, cabeçalhos e URL reais. Diferença em control URL, Authorization, Session ou keepalive pode explicar o resultado melhor que o nome do programa.

Matriz de exclusão

Comece com duas hipóteses. Sem mídia, UDP pode estar bloqueado ou o servidor pode enviar a outras portas. TCP interleaved testa a primeira; comparar oferta e resposta Transport, IP e portas testa a segunda. Para imagem corrompida, RTP sequence separa perda de inicialização incompleta, enquanto SPS/PPS/VPS antes do primeiro frame testa os parâmetros codec.

Para cada hipótese anote prova favorável e prova que pode refutá-la. Uma afirmação que nenhum pacote consegue negar é ampla demais. “NAT descarta UDP” é refutada por RTP na porta do cliente. “Faltam parâmetros H.264” é refutada por SPS e PPS válidos antes de IDR. Assim o relatório mantém prioridade.

Não misturar relógios

RTSP CSeq ordena transações, RTP sequence ordena pacotes, RTP timestamp expressa tempo de amostra e capture clock expressa chegada ao ponto observado. Não são o mesmo relógio. Variação de chegada não prova drift; salto timestamp não prova perda sem sequência. RTCP sender report liga relógios RTP de áudio e vídeo a uma referência comum.

Pacote de aceitação

Encerre quando a correção se repetir em conexão nova com uma mudança documentada. O relatório informa entradas, última fronteira correta, primeira prova falha, alteração, resultado e testes abertos. Anexe transcript curto ou estatísticas focadas. Oculte segredos, mas preserve CSeq, Session limpa, SSRC e intervalo.

Use a solução de problemas RTSP para reconstruir o fluxo e os relatórios do RTSP Inspector para entregar a fronteira à equipe de câmera, rede ou VMS.

<!-- rtsp-localized-layer-verdicts-v1:end -->