Fluxos Multimédia Armazenados Técnicas de transmissão de fluxos ao nível da camada de aplicação para obter os melhores resultados dos serviços melhor esforço: buffers no lado do cliente uso de UDP versus TCP múltiplas codificações multimédia Media Player remoção de jitter descompressão ocultação de erros interface de utilizador gráfica com controlo de interactividade VoIP 2-246
Multimédia na Internet: aproximação mais simples cliente áudio ou vídeo armazenado em ficheiro ficheiros transferidos como objectos HTTP inteiramente recebidos no cliente depois apresentados não há fluxos de áudio, vídeo: sem pipelining, longos atrasos até à apresentação! VoIP 2-247
Multimédia na Internet: aproximação com fluxos o browser faz GET de um metaficheiro o browser lança o Media Player, passando o metaficheiro o Media Player contacta o servidor o servidor envia o fluxo de áudio/vídeo para o Media Player VoIP 2-248
Recebendo um fluxo de um servidor de fluxos cliente servidores Esta arquitectura permite um protocolo diferente do HTTP entre o servidor e o media player Também pode utilizar UDP em vez de TCP. VoIP 2-249
Fluxos Multimédia: Buffers no Cliente transmissão de vídeo de ritmo constante atraso na rede variável recepção do vídeo no cliente vídeo em buffer apresentação do vídeo a ritmo constante no cliente atraso de apresentação tempo Os buffers no lado do cliente e atrasos na apresentação compensam os atrasos da rede e variação do atraso (jitter) VoIP 2-250
Fluxos Multimédia: Buffers no Cliente da rede ritmo de enchimento variável, x(t) buffer do cliente ritmo de consumo constante para descompressão, apresentação vídeo em buffer Os buffers no lado do cliente e atrasos na apresentação compensam os atrasos da rede e variação do atraso (jitter) VoIP 2-251
Fluxos Multimédia: UDP ou TCP? UDP o servidor envia ao ritmo apropriado para o cliente (esquece a congestão da rede!) frequentemente, ritmo de envio = ritmo de codificação = ritmo constante então, ritmo de enchimento = ritmo constante - perdas de pacotes atraso de apresentação curto (2-5 segundos) para compensar a variação do atraso da rede (jitter) recuperação de erros: se o tempo permitir TCP envia ao ritmo máximo possível por TCP ritmo de enchimento flutua devido ao mecanismo de controlo de congestão de TCP maior atraso de apresentação: suavizar o ritmo de entrega TCP HTTP/TCP passa mais facilmente por firewalls Servidor tem de ter sockets diferentes para cada cliente VoIP 2-252
Fluxos Multimédia: ritmo(s) dos clientes codificação a 1,5 Mbps codificação a 33.6 Kbps Q: como tratar diferentes ritmos de recepção dos clientes? ligação telefónica a 33.6 Kbps Ethernet a 100Mbps R: o servidor armazena, transmite múltiplas cópias do vídeo, codificadas a diferentes ritmos VoIP 2-253
RTSP: Real-Time Streaming Protocol Controlo pelo utilizador dos fluxos multimédia HTTP Não é dirigido a conteúdos multimédia Não tem comandos para avanço rápido, etc. RTSP: RFC 2326 Protocolo cliente/servidor da camada de aplicação. Para o utilizador controlar: rebobinar, avanço rápido, pausa, continuar, reposicionar, etc O que não faz: não define como o áudio/vídeo é encapsulado para ser enviado como um fluxo pela rede não restringe como os fluxos múltimédia são transportados; podem ser transportados por UDP ou TCP não especifica como o Media Player armazena o áudio/vídeo em buffers VoIP 2-254
RTSP: controlo fora de banda O FTP utiliza um canal de controlo fora de banda : Um ficheiro é transferido por uma ligação TCP. A informação de controlo (mudanças de directoria, apagar ficheiros, mudar nomes de ficheiros, etc.) é enviada por uma ligação TCP separada. Os canais fora de banda e dentro de banda utilizam diferentes números de portos. As mensagens RTSP também são enviadas fora de banda: As mensagens de controlo RTSP usam números de portos diferentes do fluxo multimédia: fora de banda. Porto 554 O fluxo multimédia é considerado dentro de banda. VoIP 2-255
Exemplo de RTSP Cenário: metaficheiro enviado ao web browser browser lança Media Player o Media Player estabelece uma ligação RTSP de controlo, uma ligação de dados para o servidor de fluxos multimédia VoIP 2-256
Exemplo de Metaficheiro <title>twister</title> <session> </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" </group> src="rtsp://video.example.com/twister/video"> VoIP 2-257
Funcionamento do RTSP cliente servidor VoIP 2-258
Exemplo de Interacção RTSP C: SETUP rtsp://audio.example.com/twister/audio RTSP/1.0 Cseq: 1 Transport: RTP/AVP/UDP; unicast; client_port=3056-3057; mode=play S: RTSP/1.0 200 OK Cseq: 1 Session: 4231 C: PLAY rtsp://audio.example.com/twister/audio.en/lofi RTSP/1.0 Cseq: 2 Session: 4231 Range: npt=0- C: PAUSE rtsp://audio.example.com/twister/audio.en/lofi RTSP/1.0 Range: npt=37 Cseq: 3 Session: 4231 C: TEARDOWN rtsp://audio.example.com/twister/audio.en/lofi RTSP/1.0 Cseq: 4 Session: 4231 S: RTSP/1.0 200 OK Cseq: 4 Session: 4231 VoIP 2-259