RTSP
Para controlar a entrega de áudio e vídeo sem incorporar o fluxo de mídia ao próprio protocolo, RTSP oferece comandos semelhantes aos de um controle de reprodução. RTSP 2.0 é definido pela RFC 7826, de 2016, e substitui a RFC 2326. Comparado a HTTP, mantém estado de sessão e métodos como SETUP e PLAY; comparado a RTP, controla a sessão em vez de transportar amostras. Exige servidor e cliente compatíveis, e muitos dispositivos ainda implementam apenas RTSP 1.0.
RTSP é um protocolo de aplicação destinado ao controle de sessões de mídia com propriedades de tempo real. Ele funciona como uma camada de comando: o cliente localiza uma apresentação, obtém sua descrição, negocia os transportes de cada trilha, inicia a reprodução, pausa, reposiciona e encerra a sessão. O fluxo de áudio ou vídeo normalmente não é carregado dentro das mensagens RTSP. Em muitas implementações, as amostras são transportadas por RTP sobre UDP, acompanhadas por RTCP; em outras, RTP e RTCP são intercalados na própria conexão TCP usada pelo RTSP. Essa separação permite que o protocolo de controle evolua sem definir cada codec. Uma câmera IP pode expor `rtsp://192.168.10.40:554/stream1`. O cliente envia DESCRIBE e recebe uma descrição SDP com codecs, payload types, endereços e parâmetros. Em seguida, envia SETUP para cada trilha, indicando se quer UDP unicast, multicast ou interleaved TCP. O servidor devolve um identificador de sessão. PLAY inicia a entrega. PAUSE interrompe sem destruir todos os recursos quando suportado. TEARDOWN encerra. OPTIONS anuncia métodos. GET_PARAMETER e SET_PARAMETER podem ser usados em extensões ou manutenção de sessão. RTSP 1.0 foi definido na RFC 2326 em 1998. RTSP 2.0, RFC 7826 de 2016, revisou a especificação, corrigiu ambiguidades, modernizou requisitos e tornou o comportamento mais consistente. Apesar disso, o mercado de câmeras de consumo permanece fortemente baseado em RTSP 1.0. O cliente precisa interrogar e tolerar diferenças. O uso prático em casa inteligente ocorre principalmente em câmeras, NVRs, servidores de mídia, intercomunicadores e gateways. Home Assistant, Frigate, VLC, FFmpeg e muitos NVRs conseguem consumir URLs RTSP. ONVIF pode fornecer a URL correta por meio de serviços padronizados, enquanto RTSP transporta o controle da sessão. ONVIF e RTSP não são sinônimos. Um equipamento pode oferecer RTSP sem ONVIF, ou ONVIF com perfis que apontam a streams RTSP. O protocolo não resolve autenticação moderna de forma universal. Muitas câmeras usam Basic ou Digest Authentication. Basic só deve ser usado sobre transporte protegido porque codifica credenciais, não as cifra. RTSP sobre TLS existe como `rtsps`, mas o suporte é desigual. Em redes locais, a mitigação comum é segmentar câmeras, impedir acesso externo direto e permitir apenas NVR e controladores. Expor a porta 554 à Internet é inadequado. Acesso remoto deve passar por VPN, serviço seguro ou gateway. O protocolo também não garante baixa latência sozinho. Codec, GOP, buffers, jitter, transporte, retransmissão e processamento dominam. H.264 com GOP de 2 s pode levar até dois segundos para permitir decodificação após entrada no stream. TCP interleaved evita bloqueios de UDP em NAT e firewall, mas perdas no TCP podem causar head-of-line blocking. UDP reduz latência, mas pode perder pacotes e exige portas adicionais. A escolha depende da rede. Em Wi‑Fi estável e LAN, UDP costuma oferecer boa latência; em túneis e redes restritivas, TCP é mais fácil. RTSP não possui uma experiência de navegador nativa moderna. Navegadores normalmente não reproduzem RTSP diretamente; é preciso converter para WebRTC, HLS, MSE ou outro formato. Esse gateway aumenta recursos e latência. O protocolo continua valioso porque câmeras e gravadores o implementam amplamente, sua semântica é previsível e ferramentas maduras existem. A limitação principal é a fragmentação entre versões, autenticação e extensões de fabricantes. O integrador deve testar URL, codec, perfil, transporte, áudio, reconexão e comportamento após reinício. Uma URL que abre no VLC não prova que ficará estável por 30 dias num NVR. Sessões precisam de timeout, keepalive e reconexão. O servidor pode encerrar por ociosidade. O cliente deve usar OPTIONS ou GET_PARAMETER conforme o produto. Logs precisam distinguir falha de autenticação, ausência de trilha, timeout, perda RTP e codec incompatível.
- Separa controle de sessão do transporte de mídia, permitindo usar RTP, RTCP e múltiplos codecs sem redefinir cada comando.
- É amplamente implementado por câmeras IP, NVRs, FFmpeg, VLC, Frigate, Home Assistant e sistemas ONVIF.
- Oferece comandos explícitos de descrição, negociação, reprodução, pausa, posicionamento e encerramento.
- Suporta UDP, multicast e mídia intercalada sobre TCP, adaptando-se a redes locais e ambientes com firewall restritivo.
- Permite obter múltiplas trilhas e perfis de uma mesma câmera, incluindo stream principal, substream e áudio.
- Grande parte do mercado ainda usa RTSP 1.0 com extensões e comportamentos divergentes, limitando a interoperabilidade ideal da RFC 7826.
- Criptografia não é padrão em muitas câmeras; RTSP sem TLS expõe credenciais e mídia a nós capazes de capturar o tráfego.
- Navegadores modernos não reproduzem RTSP diretamente, exigindo gateway para WebRTC, HLS ou MSE e adicionando latência ou CPU.
- TCP interleaved pode aumentar atraso em perda, enquanto UDP exige portas e tolerância a pacotes perdidos.
- O protocolo não garante segurança do dispositivo, estabilidade do encoder, baixa latência nem confirmação de que a imagem está sendo decodificada.