RTSP (sigla de Real Time Streaming Protocol) é um protocolo de rede de camada de aplicação projetado para estabelecer, controlar e gerenciar sessões de transmissão de mídia em tempo real, como áudio e vídeo, entre um servidor de streaming e um cliente. Ele atua como uma “interface de controle remoto” para streams, permitindo operações como reproduzir, pausar e interromper conteúdo de mídia transmitido em tempo real. ([turn0search3](#turn0search3)turn0search4
Definição técnica de RTSP:
O RTSP é um protocolo que permite a comunicação entre clientes e servidores de mídia para controlar o fluxo de dados multimídia em tempo real. Ele foi padronizado pela IETF (Internet Engineering Task Force) em 1998 e definido na RFC 2326. Embora o RTSP não transporte os dados de áudio e vídeo em si — isso costuma ser feito por protocolos como RTP (Real-Time Transport Protocol) — ele contém mecanismos para iniciar, parar e ajustar a transmissão. ([turn0search3](#turn0search3)turn0search4
Como funciona?
O funcionamento do RTSP envolve troca de mensagens entre o cliente e o servidor para controlar a transmissão de mídia. Alguns pontos principais incluem:
- Estabelecimento de sessão: o cliente envia um pedido ao servidor para iniciar a transmissão de um stream. ([turn0search24](#turn0search24))
- Comandos de controle: comandos como PLAY, PAUSE e TEARDOWN permitem controlar a reprodução da mídia. ([turn0search0](#turn0search0))
- Negociação de parâmetros: antes da transmissão de mídia, clientes e servidores negociam parâmetros como codecs, endereços de rede e métodos de transporte. ([turn0search3](#turn0search3))
Protocolos associados
- RTP (Real-Time Transport Protocol): frequentemente usado para transportar os dados de áudio e vídeo em tempo real depois que a sessão RTSP é estabelecida. ([turn0search4](#turn0search4))
- RTCP (Real-Time Control Protocol): usado em conjunto com RTP para monitorar a qualidade da transmissão e controlar a sessão de comunicação. ([turn0search4](#turn0search4))
Principais características do RTSP:
- Controle de streaming: permite que o cliente gerencie o fluxo de mídia remotamente com comandos de reprodução e pausa. ([turn0search16](#turn0search16))
- Protocolo de camada de aplicação: opera no nível 7 do modelo OSI, lidando com sessões e mensagens de controle. ([turn0search4](#turn0search4))
- Similar ao HTTP: a sintaxe de mensagens é semelhante ao HTTP, facilitando entendimento e implementação. ([turn0search3](#turn0search3))
- Portas padrão: por padrão utiliza a porta 554 para comunicação de controle. ([turn0search18](#turn0search18))
Aplicações típicas:
O RTSP é amplamente usado em sistemas de transmissão de mídia, especialmente em:
- Câmeras de vigilância IP: transmissão de vídeo ao vivo para aplicações de monitoramento e segurança. ([turn0search20](#turn0search20))
- Servidores de streaming de vídeo e áudio: controle de sessões multimídia para usuários finais e aplicações de entretenimento. ([turn0search24](#turn0search24))
- Sistemas VMS e NVR: integração com sistemas de gerenciamento de vídeo para registrar, reproduzir e controlar streams em tempo real. ([turn0search6](#turn0search6))
Vantagens e limitações:
- Vantagens: oferece controle detalhado sobre a sessão de mídia e suporta operações interativas semelhantes a um “controle de mídia remoto”. ([turn0search16](#turn0search16))
- Limitações: não transmite os próprios dados multimídia; utiliza RTP ou outros protocolos auxiliares para essa função, e não é tão amplamente adotado em streaming baseado em HTTP moderno como HLS ou DASH. ([turn0search5](#turn0search5))
- Segurança: por padrão não é criptografado, então pode requerer métodos adicionais (como RTSPS sobre TLS) para proteger streams em redes inseguras. ([turn0search17](#turn0search17))
Exemplo de comando RTSP:
A sessão RTSP pode incluir comandos semelhantes aos de um controle de mídia tradicional, como:
- DESCRIBE: obtém a descrição do conteúdo disponível no servidor. ([turn0search0](#turn0search0))
- SETUP: prepara os parâmetros de transporte antes da transmissão. ([turn0search0](#turn0search0))
- PLAY: inicia a transmissão de mídia. ([turn0search0](#turn0search0))
- PAUSE: pausa a transmissão temporariamente. ([turn0search0](#turn0search0))
- TEARDOWN: encerra a sessão de streaming e libera recursos. ([turn0search0](#turn0search0))