O Real Time Streaming Protocol ou RTSP (Real Time Streaming Protocol) é um protocolo da camada de aplicação proposto pela rede Real e pela Netscape para transmitir efetivamente dados de mídia de streaming em uma rede IP. O RTSP fornece uma estrutura extensível que permite a transmissão sob demanda controlável de dados em tempo real, como arquivos de áudio e vídeo. Os dados de origem podem incluir feedback dos dados no local e dos arquivos armazenados. O rtsp fornece controles como pausa e avanço rápido para streaming de mídia, mas ele não transmite dados, o rtsp funciona como um controle remoto do servidor de streaming de mídia. A transmissão de dados pode ser feita através dos protocolos tcp e udp na camada de transporte.O Rtsp também fornece alguns métodos eficazes com base no mecanismo de transmissão rtp.
Diretório [ocultar]
1 formato de mensagem RTSP
2 Processo interativo rtsp simples
3 Métodos comuns em rtsp
3.1 OPÇÃO
3.2 DESCRIÇÃO
3.3 CONFIGURAÇÃO
3.4 PLAY
3.5 PAUSA
3.6 TEARDOWN
3.7 Outros métodos
formato 4 sdp
5 exemplo de processo de mensagem RTSP sob demanda
Formato de mensagem RTSP
RTSP mensagem tem duas categorias, uma mensagem de pedido (request), é uma mensagem de resposta (response), dois tipos de mensagens em diferentes formatos.
Request mensagem:
Método URI RTSP versão CR LF
cabeçalho da mensagem CR LF CR LF
corpo da mensagem CR LF
O método inclui todos os comandos na resposta OPTION, URI é o endereço do destinatário, por exemplo
rtsp: //192.168.20.136
A versão RTSP é geralmente RTSP / 1.0.O CR LF na parte traseira de cada linha indica retorno de carro e avanço de linha, e a análise correspondente é necessária na extremidade receptora.O último cabeçalho da mensagem precisa de duas mensagens de resposta CR LF
:
Interpretação do código de status da versão RTSP
Cabeçalho da mensagem CR LF CR LF CR LF
corpo da mensagem CR LF
onde a versão RTSP é geralmente RTSP / 1.0, o código de status é um valor, 200 significa sucesso e a interpretação é a interpretação de texto correspondente ao código de status.
Processo simples de interação rtsp
C significa cliente rtsp, S significa servidor rtsp
1.C-> S: solicitação de OPÇÃO // Pergunte a S quais métodos estão disponíveis
1.S-> C: resposta de OPÇÃO // As informações de resposta S incluem todos os métodos disponíveis fornecidos
2.C-> S: solicitação de descrição // requerem Obtenha as informações de descrição de inicialização de mídia fornecidas por S
2.S-> C: DESCRIBE response // S responde às informações de descrição de inicialização de mídia, principalmente sdp
3.C-> S: solicitação de instalação // Defina os atributos da sessão e o modo de transmissão, lembre-se S estabelece uma sessão
3. S-> resposta C: SETUP // S estabelece uma sessão, retorna o identificador da sessão e informações relacionadas à sessão
4.C-> S: solicitação PLAY: // solicita C para reproduzir
4.S-> resposta C: PLAY // informações de resposta S que devem ser solicitadas
5.S-> C: enviar dados de streaming
6.C-> S: solicitação de TEARDOWN // solicitação de C para fechar a sessão
6.S-> C: resposta de TEARDOWN // resposta de S deve solicitar o
acima O processo é um processo rtsp padrão e amigável, mas a demanda real não necessariamente vem passo a passo.
Os passos 3 e 4 são necessários!
Na primeira etapa, desde que o cliente servidor aceite e quais métodos estão disponíveis, a solicitação de opção pode ser omitida. A segunda etapa, se tivermos outras maneiras de obter as informações de descrição da inicialização da mídia (como solicitação http, etc.), não precisamos concluir a solicitação de descrição em rtsp. Na quinta etapa, você pode decidir se precisa com base no design dos requisitos do sistema.
Métodos comuns em rtsp
OPÇÃO
O objetivo é obter os métodos disponíveis fornecidos pelo servidor:
OPÇÕES rtsp: //192.168.20.136: 5000 / xxx666 RTSP / 1.0
CSeq: 1 // Cada mensagem é marcada com um número de série, o primeiro pacote geralmente é uma mensagem de solicitação de opção
User-Agent: VLC media player (LIVE555 Streaming Media v2005 .11.10) As
informações de resposta do servidor incluem alguns métodos fornecidos, como:
RTSP / 1.0 200 OK
Servidor: UServer 0.9.7_rc1
Cseq: 1 // O valor cseq de cada mensagem de resposta corresponde ao cseq da mensagem de solicitação
Público: OPTIONS, DESCRIBE, SETUP, TEARDOWN, PLAY, PAUSE, SCALE,
GET_PARAMETER // Server Métodos disponíveis
DESCREVER
C inicia uma solicitação DESCRIBE para S para obter as informações de descrição da sessão (SDP):
DESCRIÇÃO rtsp: //192.168.20.136: 5000 / xxx666 RTSP / 1.0
Token CSeq: 2 :
Aceitar: application / sdp
Agente do usuário: VLC media player (LIVE555 Streaming Media v2005.11.10) O
servidor responde com algumas informações descritivas sobre esta sessão (sdp):
RTSP / 1.0 200 OK
Servidor: UServer 0.9.7_rc1
Cseq: 2
x-prev-url: rtsp: //192.168.20.136: 5000
x-next-url: rtsp: //192.168.20.136: 5000
x-Accept-Retransmit: our-retransmit
x-Accept-Dynamic-Rate: 1
Cache-Control: must-revalidate
Última modificação: sex, 10 nov 2006 12:34:38 GMT
Data: sex, 10 nov 2006 12:34:38 GMT
expira: sex , 10 nov 2006 12:34:38 GMT
Base de conteúdo: rtsp: //192.168.20.136: 5000 / xxx666 /
Comprimento do
conteúdo : 344 Tipo de conteúdo: application / sdp
v = 0 // A seguir estão as informações do sdp
o = OnewaveUServerNG 1451516402 1025358037 IN IP4 192.168.20.136
s = / xxx666
u = http: ///
e = admin @
c = IN IP4 0.0.0.0
t = 0 0
a = isma- conformidade: 1,1.0,1
a = range: npt = 0-
m = video 0 RTP / AVP 96 // m representa a descrição da mídia, a seguir é a descrição da mídia do canal de vídeo na sessão
a = rtpmap: 96 MP4V-ES / 90000
a = fmtp: 96
profile- id do nível = 245; config = 000001B0F5000001B509000001000000012000C888B0E0E0FA62D089028307
a = control: trackID = 0 // trackID = 0 indica que o fluxo de vídeo usa o canal 0
CONFIGURAÇÃO
O cliente lembra o servidor para estabelecer uma sessão e determinar o modo de transmissão:
CONFIGURAÇÃO rtsp: //192.168.20.136: 5000 / xxx666 / trackID = 0 RTSP / 1.0
CSeq: 3
Transporte: RTP / AVP / TCP; unicast; intercastado = 0-1
Agente do usuário: media player VLC (LIVE555 Streaming Media v2005. 11.10) O
trackID = 0 na uri indica que o canal está definido. O parâmetro Transport define o modo de transmissão e a
estrutura de pacotes . O segundo byte do cabeçalho do próximo pacote de dados é intercalado e seu valor é
diferente para cada canal.O valor intercalado de trackID = 0 tem dois 0s ou 1s, 0 significa pacote rtp, 1 significa pacote rtcp, accept
De acordo com o valor de intercalado, o final distingue que tipo de pacote de dados.
Mensagem de resposta do servidor:
RTSP / 1.0 200 OK
Servidor: UServer 0.9.7_rc1
Cseq: 3
Sessão: 6310936469860791894 // Identificador da sessão retornado pelo servidor
Cache-Control: sem cache
Transporte: RTP / AVP / TCP; unicast; intercalado = 0-1; ssrc = 6B8B4567
TOQUE
O cliente envia uma solicitação de reprodução:
PLAY rtsp: //192.168.20.136: 5000 / xxx666 RTSP / 1.0
CSeq: 4
Session: 6310936469860791894
Range: npt = 0.000- // Define o intervalo de tempo de reprodução
User-Agent:
servidor VLC media player (LIVE555 Streaming Media v2005.11.10) Mensagem de resposta:
RTSP / 1.0 200 OK
Servidor: UServer 0.9.7_rc1
Cseq: 4
Sessão: 6310936469860791894
Faixa: npt = 0.000000-
RTP-Info: url = trackID = 0; seq = 17040; rtptime = 1467265309
// seq e rtptime estão no pacote rtp Informações de
PAUSE
O cliente inicia uma solicitação de pausa:
PAUSE rtsp: //192.168.20.136: 5000 / xxx666 RTSP / 1.0
Cseq: 5
Session: 6310936469860791894
resposta do servidor:
RTSP / 1.0 200 OK
Servidor: UServer 0.9.7_rc1
CSeq: 5
Sessão: 6310936469860791894
TEARDOWN
O cliente inicia uma solicitação de desligamento:
TEARDOWN rtsp: //192.168.20.136: 5000 / xxx666 RTSP / 1.0
CSeq: 6
Sessão: 6310936469860791894
Agente do Usuário: VLC media player (LIVE555 Streaming Media v2005.11.10)
resposta do servidor:
RTSP / 1.0 200 OK
Servidor: UServer 0.9.7_rc1
Cseq: 6
Sessão: 6310936469860791894
Conexão: Fechar
Outros métodos
Os métodos acima são os mais usados no processo de interação e existem outros métodos importantes, como:
get / set_parameter, pause, redirecione etc.
formato sdp
v = <versão>
o = <nome do usuário> <ID da sessão> <versão> <tipo de rede> <tipo de endereço> <endereço>
s = <nome da sessão>
i = <descrição da sessão>
u = < descrição da sessão> u = <URI>
e = <endereço de email >
p = <número de telefone>
c = <tipo de rede> <tipo de endereço> <endereço de conexão>
b = <modificador>: <valor da largura de banda>
t = <hora de início> <hora de parada>
r = <intervalo de repetição> <ativo duration> <lista de compensações da hora de início>
z = <hora de ajuste> <compensação> <hora de ajuste> <compensação> ....
k = <método>
k = <método>: <chave de criptografia>
a = <atributo >
a = < atributo>: <valor>
m = <media> <port> <transport> <lista fmt>
v = (versão do protocolo)
o = (proprietário / criador e identificador da sessão)
s = (nome da sessão)
i = * (informações da sessão)
u = * (descrição do URI)
e = * (endereço de e-mail)
p = * (número de telefone)
c = * (informações de conexão)
b = * (informações de largura de banda)
z = * (ajuste de fuso horário)
k = * (chave de criptografia)
a = * (0 ou mais linhas de atributos da sessão)
descrição do tempo:
t = (tempo de atividade da sessão)
r = * (0 ou mais repetições)
descrição da mídia:
m = (nome da mídia E endereço de transmissão)
i = * (título da mídia)
c = * (informações de conexão - este campo é opcional se incluído na camada de sessão)
b = * (informações de largura de banda)
k = * (chave de criptografia)
a = * (0 Ou várias linhas de atributo de mídia)
Exemplo de processo de mensagem RTSP sob demanda
Cliente:
servidor RLC VLC : LIVE555 Media Server
1) C (cliente) -> M (servidor de mídia)
OPÇÕES rtsp: //192.168.1.109/1.mpg RTSP / 1.0
CSeq: 1
usuário-agente: VLC media player (VLC media player (LIVE555 Streaming Media v2007.02.20)
1) M -> C
RTSP / 1.0 200 OK
CSeq: 1
Data: quarta-feira, 20 de fevereiro de 2008 07:13:24 GMT
Público: OPTIONS, DESCRIBE, SETUP, TEARDOWN, PLAY, PAUSE
2) C -> M
DESCRIBE rtsp: / /192.168.1.109/1.mpg RTSP / 1.0
CSeq: 2
Aceitar: application / sdp
Agente do usuário: VLC media player (LIVE555 Streaming Media v2007.02.20)
2) M -> C
RTSP / 1.0 200 OK
CSeq: 2
Data: quarta-feira, 20 de fevereiro de 2008 07:13:25 GMT
Base de conteúdo: rtsp: //192.168.1.109/1.mpg/
Tipo de conteúdo: application / sdp
Comprimento do conteúdo: 447
v = 0
o = - 2284269756 1 IN IP4 192.168.1.109
s = Stream do programa MPEG-1 ou 2, transmitido pelo LIVE555 Media Server
i = 1.mpg
t = 0 0
a = ferramenta: LIVE555 Streaming Media v2008.02.08
a = tipo: transmissão
a = controle: *
a = intervalo: npt = 0-66.181
a = x-qt-text-nam: MPEG-1 ou Fluxo de Programa, transmitido pelo LIVE555 Media Server
a = x-qt -text-inf: 1.mpg
m = vídeo 0 RTP / AVP 32
c = IN IP4 0.0.0.0
a = controle: faixa1
m = áudio 0 RTP / AVP 14
c = IN IP4 0.0.0.0
a = controle: faixa2
3) C -> M
CONFIGURAÇÃO rtsp: //192.168.1.109/1.mpg/track1 RTSP / 1.0
CSeq: 3
Transporte: RTP / AVP; unicast; client_port = 1112-1113
Agente do usuário: VLC media player (LIVE555 Streaming Media v2007.02.20)
3) M -> C
RTSP / 1.0 200 OK
CSeq: 3
Data: quarta-feira, 20 de fevereiro de 2008 07:13:25
Transporte GMT : RTP / AVP; unicast; destino = 192.168.1.222; source = 192.168.1.109; client_port = 1112 -1113; server_port = 6970-6971
Sessão: 3
4) C -> M
SETUP rtsp: //192.168.1.109/1.mpg/track2 RTSP / 1.0
CSeq: 4
Transporte: RTP / AVP; unicast; client_port = 1114-1115
Sessão: 3
User-Agent: VLC media player (LIVE555 Streaming Media v2007.02.20)
4) M -> C
RTSP / 1.0 200 OK
CSeq: 4
Data: quarta-feira, 20 de fevereiro de 2008 07:13:25
Transporte GMT : RTP / AVP; unicast; destino = 192.168.1.222; source = 192.168.1.109; client_port = 1114 -1115; server_port = 6972-6973
Sessão: 3
5) C -> M
PLAY rtsp: //192.168.1.109/1.mpg/ RTSP / 1.0
CSeq: 5
Sessão: 3
Intervalo: 3 Intervalo: npt = 0,000-
User-Agent: VLC media player (LIVE555 Streaming Media v2007.02.20)
5) M-> C
RTSP / 1.0 200 OK
CSeq: 5
Faixa: npt = 0.000-
Sessão: 3
RTP-Info: url = rtsp: //192.168.1.109/1.mpg/track1; seq = 9200; rtptime = 214793785 , url = rtsp: //192.168.1.109/1.mpg/track2; seq = 12770; rtptime = 31721
(iniciar o streaming de mídia ...)
——————————————————