Descripción del protocolo RTSP
RTSP es un protocolo de capa de aplicación, no orientado a la conexión. En lugar de esto el servidor RTSP mantiene una sesión asociada a un identificador (Session ID). |
En la mayoría de los casos RTSP usa TCP para el envío de datos de control del reproductor (mensajes "out of band") y UDP para los datos de audio y vídeo (mensajes "in band"), aunque también puede usar TCP en caso de que se necesitara confiabilidad en el envío de paquetes, lo cual no es provisto por UDP. |
El concepto de "in band" y "out of band" se refiere a que el protocolo es capaz de enviar distintos tipos de información por distintos puertos. |
De forma intencionada, el protocolo es similar en sintaxis y operación a HTTP, por lo que los mecanismos de expansión añadidos a HTTP pueden, en muchos casos, añadirse a RTSP. Sin embargo, RTSP difiere de HTTP en un número significativo de aspectos: |
- RTSP introduce nuevos métodos y tiene un identificador de protocolo diferente. |
- Un servidor RTSP necesita mantener el estado de la conexión. |
- Tanto el servidor como el cliente pueden hacer solicitudes. |
- Los datos son transportados por un protocolo diferente. |
El protocolo soporta las siguientes operaciones: |
Recuperar contenidos multimedia del servidor: El cliente puede solicitar la descripción de una presentación por HTTP o cualquier otro método. Si la presentación es multicast, la descripción contiene los puertos y las direcciones que serán usados. Si la presentación es unicast el cliente es el que proporciona el destino, por motivos de seguridad. |
Invitación de un servidor multimedia a una conferencia: Un servidor puede ser invitado a unirse a una conferencia existente en lugar de reproducir la presentación o grabar todo o una parte del contenido. Este modo es útil para aplicaciones de enseñanza distribuida donde diferentes partes de la conferencia van tomando parte en la discusión. |
Adición multimedia a una presentación existente: Particularmente para presentaciones en vivo, útil si el servidor puede avisar al cliente sobre los nuevos contenidos disponibles. |
En la siguiente figura se ilustra el esquema de comunicación entre un cliente (Web Browser) y el servidor RTSP (Web Server).
|
1. Web Browser solicita Presentation Description File a Web Server. |
2. Web Server encapsula Presentation Description File en un mensaje HTTP de respuesta y envía el mensaje al Web Browser. |
3. Cuando el Web browser recibe mensaje HTTP de respuesta, invoca a un Media Player (eg. Quicktime) basándose en el campo Payload Type (PT) del mensaje. |
4. Media Player envía una petición RTSP SETUP y Media Server responde RTSP OK. |
5. Media Player envía una petición RTSP PLAY y Media Server responde RTSP OK. |
6. Media Server inicia el streaming de video hacia Media player. |
7. Si usuario desea pausar la transmisión, envía RTSP PAUSE a Media Server y éste responderá RTSP OK. |
8. Cuando el usuario ha terminado, Media player envía RTSP TEARDOWN, a lo que Media server responde RTSP OK. |
A continuación se muestra un ejemplo de intercambio RTSP, entre un cliente (C) y un servidor (S). |
C:
SETUP movie.Mjpeg RTSP/1.0 C: CSeq: 1 C: Transport: RTP/UDP; client_port= 25000 S: RTSP/1.0 200 OK S: CSeq: 1 S: Session: 123456 C: PLAY movie.Mjpeg RTSP/1.0 C: CSeq: 2 C: Session: 123456 S: RTSP/1.0 200 OK S: CSeq: 2 S: Session: 123456 C: PAUSE movie.Mjpeg RTSP/1.0 C: CSeq: 3 C: Session: 123456 S: RTSP/1.0 200 OK S: CSeq: 3 S: Session: 123456 C: PLAY movie.Mjpeg RTSP/1.0 C: CSeq: 4 C: Session: 123456 S: RTSP/1.0 200 OK S: CSeq: 4 S: Session: 123456 C: TEARDOWN movie.Mjpeg RTSP/1.0 C: CSeq: 5 C: Session: 123456 S: RTSP/1.0 200 OK S: CSeq: 5 S: Session: 123456 |
El parámetro Cseq corresponde al Sequence Number, número que aumenta en una unidad por cada petición enviada por el cliente. Session es un número que está fijo durante toda la sesión, y es usado por el servidor para reconocer al cliente. Esto es útil en caso de servidores con múltiples clientes. CSeq y Session permiten al servidor hacer un seguimiento de estado de sesión. |
El Presentation Description File, que fue mencionado anteriormente, es un archivo que contiene los tipos de compresión y la manera en que se transmite el archivo. En el caso de RTSP, el Presentation Description File contiene la URL que identifica al streaming RTSP, mediante la sintaxis “rtsp://”. |
Un ejemplo de este arhivo se presenta a continuación: |
<title>Twister</title> |
<session> |
<group language=en lipsync> |
<switch> |
<track type=audio e="PCMU/8000/1" src = |
"rtsp://audio.example.com/twister/audio.en/lofi"> |
<track type=audio e="DVI4/16000/2" pt="90 DVI4/8000/1" |
src="rtsp://audio.example.com/twister/audio.en/hifi"> |
</switch> |
<track type="video/jpeg" src="rtsp://video.example.com/twister/video"> |
</group> |
</session> |
En este ejemplo, el usuario puede elegir entre dos calidades de transmisión de audio (lofi: PCMU/8000/1 o hifi: DVI4/16000/2 para estéreo y 90 DVI4/8000/1 para mono. |
Finalmente se hace una breve descripción del significado de las solicitudes RTSP |
|