Foi implementado um servidor de streaming vídeo e cliente que se comunica usando o protocolo de fluxo contínuo em tempo real (RTSP) e envia dados usando o protocolo de tempo real (RTP).
Este código possui 4 classes, que formam a arquitetura principal do sistema, são elas:
-
Client: Esta classe implementa o cliente e a interface de usuário que é usado para enviar comandos RTSP e que será utilizada para exibir o vídeo. Abaixo vemos como é a interface.
-
Server: Esta classe implementa o servidor que responde às requisições RTSP e encaminha o vídeo de volta. O servidor chama as rotinas na classe RTPpacket para empacotar os dados de vídeo.
-
RTPpacket: Esta classe é usada para manipular os pacotes RTP. Ela possui rotinas separadas para tratar os pacotes recebidos no lado cliente.
-
VideoStream: Esta classe é usada para ler os dados de vídeo do arquivo em disco.
É necessário compilar todos os arquivos .java, para isso iremos utilizar o comando abaixo:
$ make
Em seguida, é necessário executar o servidor e o cliente.
$ ./run_server # executar o servidor
$ ./run_client # executar o cliente
É possível enviar comandos RTSP para o servidor pressionando os botões. Uma interação normal RTSP acontece assim:
- O cliente envia SETUP. Esse comando é usado para ajustar os parâmetros de sessão e de transporte.
- O cliente envia PLAY. Isso inicia a reprodução.
- O cliente envia PAUSE se ele quiser pausar durante a reprodução.
- O cliente envia CLOSE. Fecha a conexão.
- O cliente envia SESSION. Isso termina a sessão.