Implementación de RTSP

 
La idea del proyecto era mostrar una aplicación que utilizara RTSP para el streaming de audio y/o video, entender su funcionamiento y explicarlo al curso.
En este caso se desarrollaron 2 aplicaciones Java: un Cliente y un Servidor.
 
 
Breve explicación del código
 
La aplicación RTSPClient es un cliente RTSP que se conecta con el servidor especificándole su dirección y puerto. Además debe ingresarse por la línea de comandos el nombre del archivo de audio y/o video que se requiere reproducir.
La aplicación RTSPServer es un servidor RTSP que acepta 1 sólo cliente. Si inicia en estado INIT, en donde espera por una solicitud SETUP, por parte de algún cliente. Después va cambiando según las solicitudes que le envía el cliente.
Ambas aplicaciones crean sockets TCP y UDP para enviar y recibir mensajes de control y datos de audio/video, respectivamente.
 
Más información técnica de compilación y ejecución se encuentra en el archivo readme.txt incluído junto con el código (sección Descarga).
 
La siguiente figura muestra el diagrama de estados del cliente.
 
states
 
 
Un detalle interesante es que ambas clases Java utilizan otra llamada RTPpacket, que se encarga de la creación y manejo de los datagramas RTP en los cuales se encapsula el flujo RTSP (posteriormente se reencapsula en datagramas UDP).
 
rtp_header
Encabezado RTP
 
A continuación se muestran algunos ejemplos de las interfaces gráficas de RTSPClient y RTSPServer.
 
clientGUI
RTSPClient GUI
 
 
clientsm
RTSPClient: Ejemplo de salida por consola
 
 
server
RTSPServer: Ejemplo de salida por consola