Proceso de interacción del protocolo RTSP

El Protocolo de transmisión en tiempo real o RTSP (Protocolo de transmisión en tiempo real) es un protocolo de capa de aplicación propuesto por Real Network y Netscape para transmitir de manera efectiva datos de transmisión de medios en una red IP. RTSP proporciona un marco extensible que permite la transmisión controlable y bajo demanda de datos en tiempo real, como archivos de audio y video. Los datos de origen pueden incluir comentarios de datos en el sitio y archivos almacenados. rtsp proporciona controles como pausa y avance rápido para la transmisión de medios, pero no transmite datos en sí. rtsp funciona como un control remoto del servidor de transmisión de medios. La transmisión de datos se puede realizar a través de los protocolos tcp y udp en la capa de transporte. Rtsp también proporciona algunos métodos efectivos basados ​​en el mecanismo de transmisión rtp.

Directorio [ocultar]

1 Formato de mensaje RTSP
2 Proceso interactivo simple rtsp
3 Métodos comunes en rtsp
3.1 OPCIÓN
3.2 DESCRIBIR
3.3 CONFIGURACIÓN
3.4 PLAY
3.5 PAUSA
3.6 DESPLAZAMIENTO
3.7 Otros métodos
4 formato sdp
5 Ejemplo de proceso de mensaje RTSP a pedido


Formato de mensaje RTSP


Hay dos tipos de mensajes RTSP, uno es un mensaje de solicitud y el otro es un mensaje de respuesta. Los dos mensajes tienen formatos diferentes.
Mensajes de solicitud:

Método URI RTSP versión CR LF 
encabezado del mensaje CR LF CR LF 
cuerpo del mensaje CR LF 

El método incluye todos los comandos en la respuesta OPCIÓN, URI es la dirección del destinatario, por ejemplo
rtsp: //192.168.20.136

La versión RTSP es generalmente RTSP / 1.0. El CR LF en la parte posterior de cada línea indica retorno de carro y avance de línea, y se requiere el análisis correspondiente en el extremo receptor. El último encabezado del mensaje necesita dos mensajes de respuesta CR LF
:

Interpretación del código de estado de la versión RTSP Encabezado del 
mensaje CR LF CR LF 
Cuerpo del mensaje CR LF CR LF

donde la versión RTSP es generalmente RTSP / 1.0, el código de estado es un valor, 200 significa éxito, y la interpretación es la interpretación del texto correspondiente al código de estado.

Proceso simple de interacción rtsp

C significa cliente rtsp, S significa servidor rtsp

1.C-> S: solicitud de OPCIÓN // Pregunte a S qué métodos están disponibles 
1.S-> C: respuesta de OPCIÓN // La información de respuesta S incluye todos los métodos disponibles proporcionados 
2.C-> S: solicitud de DESCRIBIR // requerir Obtenga la información de descripción de inicialización de medios proporcionada por S 
2.S-> C: DESCRIBA la respuesta // S responde a la información de descripción de inicialización de medios, principalmente sdp 
3.C-> S: solicitud de CONFIGURACIÓN // Establecer atributos de sesión y modo de transmisión, recordatorio S establece una sesión 
3. S-> C: respuesta de CONFIGURACIÓN // S establece una sesión, devuelve el identificador de sesión y la información relacionada con la sesión 
4.C-> S: solicitud PLAY // C solicita jugar 
4.S-> C: respuesta PLAY // Información de respuesta S que debe solicitarse 
5.S-> C: enviar datos de transmisión 
6.C-> S: solicitud de DESCENSO // Solicitud de C para cerrar la sesión 
6.S-> C: Respuesta de DESARROLLO // La respuesta de S debe solicitar lo 
anterior El proceso es un proceso rtsp estándar y amigable, pero la demanda real no necesariamente viene paso a paso.
¡Se requieren los pasos 3 y 4!
En el primer paso, siempre que el cliente del servidor esté de acuerdo y qué métodos estén disponibles, la solicitud de opción puede omitirse. El segundo paso, si tenemos otras formas de obtener la información de descripción de inicialización de medios (como la solicitud http, etc.), entonces no necesitamos completar la solicitud de descripción en rtsp. En el quinto paso, puede decidir si lo necesita en función del diseño de los requisitos del sistema.

Métodos comunes en rtsp

OPCIÓN

El propósito es obtener los métodos disponibles proporcionados por el servidor:

OPCIONES rtsp: //192.168.20.136: 5000 / xxx666 RTSP / 1.0 
CSeq: 1 // Cada mensaje está marcado con un número de serie, el primer paquete suele ser un mensaje de solicitud de opción 
Usuario-Agente: reproductor multimedia VLC (LIVE555 Streaming Media v2005 .11.10) La 
información de respuesta del servidor incluye algunos métodos proporcionados, como:

 
RTSP / 1.0 200 OK 
Servidor: UServer 0.9.7_rc1 
Cseq: 1 // El valor cseq de cada mensaje de respuesta corresponde al cseq del mensaje de solicitud 
Público: OPCIONES, DESCRIBIR, CONFIGURAR, DESPLAZAMIENTO, PLAY, PAUSA, ESCALA, 
OBTENER PARÁMETRO // Servidor Métodos disponibles 


DESCRIBIR

C inicia una solicitud DESCRIBE a S para obtener la información de descripción de sesión (SDP):

 
DESCRIBA rtsp: //192.168.20.136: 5000 / xxx666 RTSP / 1.0 

CSeq: 2 
token: 
Aceptar: aplicación / sdp 
User-Agent: VLC media player (LIVE555 Streaming Media v2005.11.10) El 
servidor responde con información descriptiva sobre esta sesión (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 
Last-Modified: Fri, 10 Nov 2006 12:34:38 ​​GMT 
Date: Fri, 10 Nov 2006 12:34:38 ​​GMT 
Caduca: vie , 10 de noviembre de 2006 12:34:38 ​​GMT 
Content-Base: rtsp: //192.168.20.136: 5000 / xxx666 / 
Content-Length: 344 
Content-Type: application / sdp 

v = 0 // La siguiente es la información 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- cumplimiento: 1,1.0,1 

a = rango: npt = 0- 
m = video 0 RTP / AVP 96 // m representa la descripción de medios, la siguiente es la descripción de medios del canal de video en la sesión 
a = rtpmap: 96 MP4V-ES / 90000 
a = fmtp: 96 
profile- level-id = 245; config = 000001B0F5000001B509000001000000012000C888B0E0E0FA62D089028307 

a = control: trackID = 0 // trackID = 0 indica que la transmisión de video usa el canal 0 


PREPARAR

El cliente le recuerda al servidor que establezca una sesión y determine el modo de transmisión:

SETUP rtsp: //192.168.20.136: 5000 / xxx666 / trackID = 0 RTSP / 1.0 
CSeq: 3 
Transporte: RTP / AVP / TCP; unicast; intercalado = 0-1 
User-Agent: reproductor multimedia VLC (LIVE555 Streaming Media v2005. 11.10) El 
trackID = 0 en la uri indica que el canal está configurado. El parámetro Transport establece el modo de transmisión y la
estructura del paquete . El segundo byte del encabezado del siguiente paquete de datos está entrelazado y su valor es
diferente para cada canal. El valor entrelazado de trackID = 0 tiene dos 0s o 1s, 0 significa paquete rtp, 1 significa paquete rtcp, aceptar
Según el valor de intercalado, el final distingue qué tipo de paquete de datos.

Mensaje de respuesta del servidor:

RTSP / 1.0 200 OK 
Servidor: UServer 0.9.7_rc1 
Cseq: 3 
Sesión: 6310936469860791894 // Identificador de sesión devuelto por el servidor 
Cache-Control: no-cache 
Transporte: RTP / AVP / TCP; unicast; interleaved = 0-1; ssrc = 6B8B4567 


TOCAR

El cliente envía una solicitud de reproducción:

PLAY rtsp: //192.168.20.136: 5000 / xxx666 RTSP / 1.0 
CSeq: 4 
Sesión: 6310936469860791894 
Rango: npt = 0.000- // Establecer el rango del tiempo de reproducción 
Usuario-agente: VLC media player (LIVE555 Streaming Media v2005.11.10) 
servidor Mensaje de respuesta:

 
RTSP / 1.0 200 OK 
Servidor: UServer 0.9.7_rc1 
Cseq: 4 
Sesión: 6310936469860791894 
Rango: npt = 0.000000- 
RTP-Info: url = trackID = 0; seq = 17040; rtptime = 1467265309 
// seq y rtptime están en el paquete rtp Información de 
PAUSA

El cliente inicia una solicitud de pausa:

PAUSA rtsp: //192.168.20.136: 5000 / xxx666 RTSP / 1.0 
Cseq: 5
Sesión: 6310936469860791894
respuesta del servidor:

RTSP / 1.0 200 OK 
Servidor: UServer 0.9.7_rc1 
Cseq: 5 
Sesión: 6310936469860791894
DESARROLLO

El cliente inicia una solicitud de apagado:

TEARDOWN rtsp: //192.168.20.136: 5000 / xxx666 RTSP / 1.0 
CSeq: 6
Sesión: 6310936469860791894 
User-Agent: VLC media player (LIVE555 Streaming Media v2005.11.10) 
respuesta del servidor:

 
RTSP / 1.0 200 OK 
Servidor: UServer 0.9.7_rc1 
Cseq: 6
Sesión: 6310936469860791894 
Conexión: Cerrar 
Otros métodos

Los métodos anteriores son los más utilizados en el proceso de interacción, y existen otros métodos importantes como:
get / set_parameter, pause, redirect, etc.

formato sdp

v = <versión> 
o = <nombre de usuario> <ID de sesión> <versión> <tipo de red> <tipo de dirección> <dirección> 
s = <nombre de sesión> 
i = <descripción de sesión> 
u = <URI> 
e = <dirección de correo electrónico > 
p = <número de teléfono> 
c = <tipo de red> <tipo de dirección> <dirección de conexión> 
b = <modificador>: <valor de ancho de banda> 
t = <hora de inicio> <hora de
finalización r = <intervalo de repetición> <activo duración> <lista de desplazamientos desde la hora de inicio> 
z = <tiempo de ajuste> <desplazamiento> <tiempo de ajuste> <desplazamiento> .... 
k = <método> 
k = <método>: <clave de cifrado> 
a = <atributo > 
a = < atributo>: <valor>
m = <media> <puerto> <transporte> <lista fmt> 
v = (versión de protocolo) 
o = (propietario / creador e identificador de sesión) 
s = (nombre de sesión) 
i = * (información de sesión) 
u = * (descripción de URI) 
e = * (dirección de correo electrónico) 
p = * (número de teléfono) 
c = * (información de conexión) 
b = * (información de ancho de banda) 
z = * (ajuste de zona horaria) 
k = * (clave de cifrado) 
a = * (0 o más líneas de atributo de sesión) 
descripción del tiempo: 
t = (tiempo de actividad de la sesión) 
r = * (0 o más repeticiones) 
descripción del medio: 
m = (nombre del medio Y la dirección de transferencia) 
i = * (título de medios) 
c = * (información de conexión: este campo es opcional si se incluye en la capa de sesión) 
b = * (información de ancho de banda) 
k = * (clave de cifrado) 
a = * (0 O varias filas de atributos de medios) 


Ejemplo de proceso de mensaje a pedido RTSP

Cliente:
servidor VLC RTSP: servidor de medios LIVE555

1)
OPCIONES C (Cliente) -> M (Servidor multimedia)  rtsp: //192.168.1.109/1.mpg RTSP / 1.0 
CSeq: 1 
usuario-Agente: reproductor multimedia VLC (LIVE555 Streaming Media v2007.02.20) 

1) M -> C 
RTSP / 1.0 200 OK 
CSeq: 1 
Fecha: mié, 20 de febrero de 2008 07:13:24 GMT 
Público: OPCIONES, DESCRIBIR, CONFIGURAR, DESACTIVAR, JUGAR, PAUSAR 
2) C -> M 
DESCRIBE rtsp: / /192.168.1.109/1.mpg RTSP / 1.0 
CSeq: 2 
Aceptar: application / sdp 
User-Agent: VLC media player (LIVE555 Streaming Media v2007.02.20) 

2) M -> C 
RTSP / 1.0 200 OK 
CSeq: 2 
Fecha: mié, 20 de febrero de 2008 07:13:25 GMT 
Content-Base: rtsp: //192.168.1.109/1.mpg/ 
Content-type: application / sdp 
Longitud del contenido: 447 
v = 0 
o = - 2284269756 1 IN IP4 192.168.1.109 
s = MPEG-1 o 2 Stream de programa, transmitido por el servidor de medios LIVE555 
i = 1.mpg 
t = 0 0 
a = herramienta: LIVE555 Streaming Media v2008.02.08 
a = type: broadcast 
a = control: * 
a = range: npt = 0-66.181 
a = x-qt-text-nam: MPEG-1 o Program Stream, transmitido por el servidor de medios LIVE555 
a = x-qt -text-inf: 1.mpg 
m = video 0 RTP / AVP 32 
c = IN IP4 0.0.0.0 
a = control: track1 
m = audio 0 RTP / AVP 14 
c = IN IP4 0.0.0.0 
a = control: track2 
3) C -> M 
SETUP rtsp: //192.168.1.109/1.mpg/track1 RTSP / 1.0 
CSeq: 3 
Transporte: RTP / AVP; unicast; client_port = 1112-1113 
User-Agent: VLC media player (LIVE555 Streaming Media v2007.02.20) 

3) M -> C 
RTSP / 1.0 200 OK 
CSeq: 3 
Fecha: mié, 20 de febrero de 2008 07:13:25 GMT 
Transporte: RTP / AVP; unicast; destino = 192.168.1.222; fuente = 192.168.1.109; puerto_cliente = 1112 -1113; server_port = 6970-6971 
Sesión: 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 
Sesión: 3 
User-Agent: VLC media player (LIVE555 Streaming Media v2007.02.20) 

4) M -> C 
RTSP / 1.0 200 OK 
CSeq: 4 
Fecha: mié, 20 de febrero de 2008 07:13:25 GMT 
Transporte: RTP / AVP; unicast; destino = 192.168.1.222; fuente = 192.168.1.109; puerto_cliente = 1114 -1115; server_port = 6972-6973 
Sesión: 3 
5) C -> M 
PLAY rtsp: //192.168.1.109/1.mpg/ RTSP / 1.0 
CSeq: 5 
Sesión: 3 
Rango: npt = 0.000- 
User-Agent: VLC reproductor multimedia (LIVE555 Streaming Media v2007.02.20) 

5) M-> C 
RTSP / 1.0 200 OK 
CSeq: 5 
Rango: npt = 0.000- 
Sesión: 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 transmisión de medios ...)
————————————————

115 artículos originales publicados · Me gusta 29 · Visitantes 50,000+

Supongo que te gusta

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