Entenda o que é RTSP, como controla sessões de streaming, a diferença entre RTSP 1.0 e 2.0 e sua relação com RTP, TCP, UDP, SRTP e ONVIF.

Confira!

O RTSP — Real Time Streaming Protocol é um protocolo de aplicação utilizado para estabelecer e controlar sessões de entrega de mídia. Sua função é semelhante à de um controle remoto: ele permite negociar parâmetros e executar operações como iniciar, pausar e encerrar uma sessão, enquanto a mídia propriamente dita costuma ser transportada por protocolos como RTP.

O que é o protocolo RTSP

O RTSP foi criado para permitir que clientes controlem a entrega de mídia armazenada ou ao vivo. O protocolo define métodos, estados de sessão e mecanismos de descrição e negociação, mas não deve ser confundido com o transporte do áudio ou vídeo.

A especificação IETF atual é o RFC 7826 — Real-Time Streaming Protocol Version 2.0, publicado em 2016. Esse documento substitui formalmente o RFC 2326, que definiu o RTSP 1.0.

Essa atualização precisa ser interpretada com cuidado em sistemas de segurança eletrônica. O fato de RTSP 2.0 ser a especificação IETF atual não significa que toda câmera, VMS ou implementação ONVIF utilize RTSP 2.0.

Como funciona uma sessão RTSP

Em uma sessão típica, o cliente primeiro identifica os recursos disponíveis e suas características. Depois negocia como a mídia deverá ser transportada, estabelece os parâmetros da sessão e solicita a reprodução.

Métodos conhecidos incluem OPTIONS, DESCRIBE, SETUP, PLAY, PAUSE e TEARDOWN. A disponibilidade e a semântica exata dependem da versão do RTSP e da implementação.

O método DESCRIBE costuma ser utilizado para obter uma descrição da apresentação, frequentemente em SDP. SETUP define parâmetros de transporte para um ou mais fluxos. PLAY inicia a entrega e TEARDOWN encerra a sessão.

RTSP não transporta o vídeo por si só

Um erro conceitual comum é dizer que “o vídeo vai por RTSP”. Na prática, RTSP controla a sessão, enquanto a mídia é normalmente entregue em pacotes RTP.

Isso permite diferentes combinações de transporte. RTP pode operar sobre UDP unicast, UDP multicast ou, em determinados modos, ser intercalado na própria conexão usada pelo RTSP sobre TCP.

A distinção é importante no troubleshooting. Uma sessão RTSP pode ser estabelecida corretamente e ainda assim o vídeo falhar por perda de pacotes RTP, bloqueio de portas UDP, multicast mal configurado ou problemas no codec.

RTSP sobre UDP e RTP sobre TCP

RTSP e RTP ocupam funções diferentes, por isso expressões como “RTSP sobre UDP” precisam ser usadas com precisão. O controle RTSP normalmente utiliza um transporte confiável, enquanto a mídia negociada pode usar RTP sobre UDP.

Quando UDP não é viável por causa de NAT, firewall ou política de rede, algumas implementações permitem RTP interleaved over RTSP/TCP, fazendo com que pacotes RTP e RTCP sejam enviados dentro da conexão TCP da sessão.

Esse modo simplifica a travessia de firewalls, mas herda características do TCP, inclusive entrega ordenada e possibilidade de aumento de latência quando há perda.

RTSP 1.0 e RTSP 2.0

O RFC 2326 definiu o RTSP 1.0. O RFC 7826 define RTSP 2.0 e obsoleta formalmente a versão anterior. Entretanto, o próprio RFC 7826 deixa claro que RTSP 2.0 não é simplesmente uma revisão totalmente compatível com RTSP 1.0.

Há mudanças de protocolo suficientes para que um cliente ou servidor não deva presumir compatibilidade automática entre as versões. A versão precisa ser identificada durante a comunicação.

Para equipamentos de vídeo IP, portanto, é mais seguro verificar a especificação do fabricante, a documentação ONVIF e o comportamento observado no tráfego do que inferir a versão apenas pela presença de uma URI rtsp://.

Qual RTSP o ONVIF utiliza?

Aqui existe uma nuance importante. Embora o RFC 7826 seja a especificação IETF atual, materiais de conformidade e interoperabilidade do ONVIF historicamente utilizam referências e comportamentos associados ao RTSP 1.0 / RFC 2326.

Por isso, afirmar genericamente que “ONVIF usa RTSP 2.0” seria incorreto. O engenheiro deve verificar a versão da especificação ONVIF, o Profile ou Add-on aplicável e as capabilities declaradas pelo equipamento.

Em implementações ONVIF modernas, os serviços de mídia também descrevem diferentes modos de streaming, incluindo RTP/UDP, RTP sobre RTSP/TCP e modos seguros com RTSPS e SRTP.

RTSP no ONVIF Profile T

O ONVIF Profile T é direcionado a streaming de vídeo avançado e inclui requisitos de interoperabilidade relacionados à configuração e consumo de streams. O cliente pode usar serviços ONVIF para obter a URI e os parâmetros da mídia e então utilizar RTSP para controlar a sessão correspondente.

A presença de ONVIF não elimina a necessidade de RTSP, RTP e demais protocolos. ONVIF organiza a interoperabilidade entre dispositivos e clientes sobre essas tecnologias existentes.

RTSP, RTSPS e HTTPS

RTSPS representa o uso seguro do RTSP por meio de TLS. Isso é diferente de HTTPS, que protege comunicação HTTP.

Em ambos os casos TLS pode participar da segurança do canal, mas os protocolos de aplicação são diferentes. HTTPS não é sinônimo de RTSP seguro, e um endpoint HTTPS ativo não prova que a mídia RTP esteja criptografada.

Nas especificações ONVIF mais recentes, o conceito de streaming seguro pode combinar RTSPS para o controle da sessão com SRTP para proteger a mídia.

RTSP e SRTP

O RTSP 2.0 trata explicitamente de transporte seguro e, quando RTP é utilizado, estabelece requisitos de suporte a SRTP. O SRTP protege os pacotes de mídia e de controle, enquanto RTSP ou RTSPS continua tratando da sessão.

Essa divisão de responsabilidades é essencial para compreender Secure Streaming: segurança do canal de controle e segurança da mídia são problemas relacionados, mas distintos.

RTSP versus RTP

CaracterísticaRTSPRTP
Camada funcionalAplicação/controleTransporte de mídia em tempo real
Principal funçãoEstabelecer e controlar sessãoCarregar áudio, vídeo e outros dados
Métodos PLAY/PAUSESimNão
Sequence number de mídiaNão é sua funçãoSim
Timestamp de mídiaNão é sua função principalSim
RFC atual de referênciaRFC 7826RFC 3550

Em uma arquitetura típica, RTSP diz como e quando a mídia deve ser entregue; RTP carrega os pacotes que compõem essa mídia.

Troubleshooting de RTSP em câmeras e VMS

Quando um stream não abre, convém separar as etapas do diagnóstico. Primeiro verifique se a conexão de controle é estabelecida e se métodos como DESCRIBE e SETUP recebem respostas válidas. Depois confirme quais portas e transportes foram negociados e se os pacotes RTP/RTCP efetivamente circulam.

Erros 401 podem indicar autenticação; 404 ou 454 podem apontar recurso ou sessão inválida; timeouts após SETUP podem revelar bloqueio do transporte de mídia. Capturas de pacotes ajudam a distinguir uma falha de RTSP de uma falha de RTP, UDP, TCP ou segurança.

Referências técnicas

[1] SCHULZRINNE, H. et al. RFC 7826: Real-Time Streaming Protocol Version 2.0. RFC Editor, 2016.

[2] SCHULZRINNE, H.; RAO, A.; LANPHIER, R. RFC 2326: Real Time Streaming Protocol (RTSP). RFC Editor, 1998. Obsoleto pelo RFC 7826.

[3] ONVIF. Profile T — For advanced video streaming.

Perguntas frequentes
O que é o protocolo RTSP?

É um protocolo de aplicação usado para estabelecer e controlar sessões de streaming. A mídia normalmente é transportada por RTP.

Qual RFC define RTSP atualmente?

A especificação IETF atual é o RFC 7826, que define RTSP 2.0 e obsoleta o RFC 2326 do RTSP 1.0.

ONVIF usa RTSP 2.0?

Não se deve assumir isso. Embora RTSP 2.0 seja o padrão IETF atual, materiais e implementações ONVIF historicamente utilizam comportamentos associados ao RTSP 1.0. É necessário verificar a especificação e as capabilities efetivamente suportadas.

RTSP transporta o vídeo?

Normalmente não. RTSP controla a sessão; RTP transporta os pacotes de áudio ou vídeo.

Qual a diferença entre RTSPS e SRTP?

RTSPS protege o canal RTSP com TLS. SRTP protege a mídia RTP e o controle RTCP. Os dois podem ser usados em conjunto.

Materiais técnicos complementares

None