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