Processo de interação do protocolo Rtsp

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: 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 ...)
——————————————————

Publicado 115 artigos originais · Gosto 29 · Visitantes com mais de 50.000

Acho que você gosta

Origin blog.csdn.net/huabiaochen/article/details/100666624
Recomendado
Clasificación