Distribuição de Mídia Contínua Conceitos Básicos Jussara M. Almeida Março 2004
Organização Mídia Contínua (MC) Características Principais de MC Arquiteturas para Distribuição de MC Redes de Distribuição de Conteúdo (CDN) Arquiteturas Par a Par (P2P) Questões Centrais para Distribuição de MC
Mídia Contínua Objetos transmitidos à taxa de visualização Vídeo e áudio, principalmente Fluxo contínuo (streaming) = sobreposição da reprodução dos dados no receptor com a transmissão do emissor Fluxo de áudio e vídeo = sequência de sons ou imagens estendida por um período de tempo
Hierarquia do Conteúdo de Mídia Contínua Pixels: elemento de figura Quadro: grade bidimensional de pixels Uma amostra da imagem/som em movimento capturada em um instante específico Tamanho do arquivo = # pixels em cada dimensão Fluxo de vídeo e áudio : sequência de quadros com o passar do tempo Sessão: múltiplos fluxos sincronizados (vídeo e áudio) Apresentação: conjunto de sessões de multimídia
Estágios de um Fluxo de Mídia Contínua Captura Codificação Armazenamento (sob demanda) Remessa Decodificação (cliente) Compactação: explorar redundância entre sequência de amostras ou quadros Redução do tamanho por um fator de 25 ou 100 Vídeo: Real Video, AVI, QuickTime, MPEG Áudio: RealAudio, WAV, MP3
Qualidade de Mídia Contínua Compromissos quanto a qualidade Menor taxa de quadro 24 ou 30 quadros/seg distraem olho humano Pequena dimensão Arquivos com poucas polegadas de altura e/ou largura Resolução inferior Representação dos pixels ou compactação Ser humano mais sensível à qualidade do vídeo Áudio exige menos largura de banda
Características de Mídia Contínua Grandes arquivos (10MB – 1GB) Demanda por largura de banda alta e sustentada Áudio : 64 kbps Vídeo: variado Alta qualidade: 1-4 Mbps (150 MB para vídeo de 5 min) Restrições de tempo real para a transmissão Atrasos e perdas (a seguir) Acesso parcial ou interativo (operações de VCR) pausa, avanço (rápido), retrocesso (rápido)
Características de Mídia Contínua Atrasos (jitter) Buffers nos clientes Cliente armazena dados recebidos Tempo Usuário visualiza primeiro bloco de dados
Características de Mídia Contínua Perda de dados Uso do protocolo UDP (diferente de HTTP) Remessa confiável via protocolo TCP pode introduzir atrasos ainda maiores Recuperação: Partes de quadro com base nos outros pixels do quadro Error concealment Pacotes: remessa de dados redundantes Forward Error Correction (FEC)
Variable Bitrate vs. Constant Bitrate Quadros consumidos à taxa constante Variable bitrate (VBR) Para manter tráfego CBR: buffer no cliente Para evitar interrupção e compensar variações na taxa de chegada de quadros Técnicas para suavização (smoothing) Escalonamento da transmissão dos pacotes Aplicadas no servidor origem ou em nó intermediário Uso de buffers nos clientes
Recuperação de Mídia Contínua Via HTTP (protocolo tradicional da Web) Vantagem: Tratamento semelhante a conteúdo Web tradicional Desvantagens: Atraso na partida do player de mídia Cópia de dados entre o browser e o player Intercalação de fluxos de áudio e vídeo Overhead do TCP Dificuldade de funções de interatividade (pulos)
Recuperação de Mídia Contínua Contato direto com servidor multimídia Cliente contacta servidor usando HTTP Servidor retorna URL: mms://media.foo.com/clip Browser chama cliente player Player contacta diretamente servidor usando protocolo de streaming específico RTSP, RTP, RTCP
Protocolos para Streaming Transporte de dados para um ou mais receptores, tipicamente via UDP Real Time Transport Protocol (RTP): Pacotes com marca de hora, # de sequência e info sobre emissor Real Time Transport Control Protocol (RTCP) Feedback do receptor, sincronismo
Protocolos para Streaming Estabelecimento de Sessão Real Time Streaming Protocol (RTSP) Requisição sob demanda a um servidor multimídia Equivalente a HTTP Abstração de um controle remoto Seleciona mecanismo e protocolo de transporte, e # porta Protocolo com estado (operações VCR) Session Initiation Protocol (SIP) Telefonia sobre IP Session Announcement Protocol (SAP) Aplicações de difusão (rádio online)
Distribuição de Mídia Contínua Internet Servidor Origem Aplicações: Educação à distância, treinamento em empresas Rádios virtuais, publicidade e notícias TV Digital, tele-conferencia Jogos distribuidos e realidade virtual
Arquiteturas para Distribuição de Mídia Contínua Redes de Distribuição de Conteúdo (CDNs) Arquitetura hierárquica Replicação de conteúdo em servidores intermediários (proxy) próximo aos clientes Sistemas Par a Par (P2P) Arquitetura descentralizada Clientes atuam como servidor repassando conteúdo previamente recebido para outros clientes Distribuição: Sob demanda vs. ao vivo
Redes de Distribuição de Conteúdo (CDNs) Servidor Proxy Rede “Local” Servidor Origem Servidor Proxy Rede “Local” Rede Remota Servidor Proxy Rede “Local”
Sistemas Par a Par Gnutella, KaZaa, eDonkey
Distribuição de Mídia Contínua ao Vivo em Sistemas Par a Par Servidor Origem
Questões Centrais para Distribuição de Mídia Contínua Qual protocolo deve ser utilizado para transmissão do conteúdo para os clientes? Transmissão independente de fluxos (Unicast) Compartilhamento de fluxos (Multicast) Qual conteúdo deve ser replicado em cada servidor proxy (ou nos clientes de rede P2P)? Políticas de replicação ou caching Como o conteúdo deve ser armazenado nos discos? Métodos para armazenamento em disco
Questões Centrais para Distribuição de Mídia Contínua (cont.) Quantos servidores proxy devem ser instalados e onde eles devem ser instalados? Localização dos servidores Para qual servidor as requisições de cada cliente devem ser enviadas? Seleção dos servidores Qual rota deve ser tomada pela resposta (vídeo/áudio) do servidor ao cliente? Roteamento das respostas
Transmissão de Mídia Contínua Transmissão de Fluxos Independente Unicast Crescimento linear na demanda por largura de banda do servidor e da rede Baixa escalabilidade Ex: 1 arquivo MPEG de 1 hora: 1.5 Mbps 1500 fluxos simultâneos : 2.25 Gbps
Transmissão de Mídia Contínua Transmissão com Compartilhamento de Fluxos Multicast Um único fluxo enviado para múltiplos clientes IP ou a nível de aplicação Redução significativa na demanda por largura de banda Melhora QoS (qualidade observada pelos clientes) Duas Classes Técnicas baseadas em difusão Técnicas orientadas às requisições dos clientes Distribuição sob demanda
Compartilhamento de Fluxos: Técnicas Baseadas em Difusão Periodic Broadcast Princípio Básico Cada fluxo é dividido em segmentos que podem ser simultaneamente transmitidos periodicamente em um conjunto de k canais diferentes Largura de banda fixa, independente da taxa de chegada de requisições Eficiente para carga alta Diversas variações do protocolo
Compartilhamento de Fluxos: Técnicas Orientadas às Requisições dos Clientes Batching Cliente recebe apenas um fluxo Introdução de atrasos adicionais para os usuários Nao provê distribuição sob demanda verdadeira Janela batching Fluxo multicast com objeto requisitado por r0-r3 r0 r1 r2 r3 Dados recebidos pelos clientes Tempo
Compartilhamento de Fluxos: Técnicas Orientadas às Requisições dos Clientes Piggybacking Mudança dinâmica da taxa de transmissão e exibição para permitir que um fluxo possa alcançar e se juntar a outro fluxo Baseado em stream merge
Piggybacking Dados recebidos pelos clientes Tempo Servidor retarda s0 Stream merge r1 s1 Dados recebidos pelos clientes r0 s0 Servidor acelera s1 Tempo
Compartilhamento de Fluxos: Técnicas Orientadas às Requisições dos Clientes Piggybacking Provê vídeo sob demanda verdadeiro Cliente escuta/recebe apenas um fluxo Nao introduz atrasos adicionais Requer hardware especialiado para suportar mudanças dinâmicas na velocidade do canal Eficiência limitada pela mudança máxima tolerada por um usuário (± 5%)
Compartilhamento de Fluxos: Técnicas Orientadas às Requisições dos Clientes Patching e Hierarchical Stream Merging Princípio comum: Cliente escuta a mais de um fluxo simultaneamente Dados recebidos em um fluxo são visualizados imediatamente Dados recebidos no outro fluxo são armazenados para visualização futura Requer buffer no cliente