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 1. Captura 2. Codificação 3. Armazenamento (sob demanda) 4. Remessa 5. 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) Tempo – Buffers nos clientes Cliente armazena dados recebidos 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) Rede “Local” Rede “Local” Servidor Proxy Rede “Local” Servidor Proxy Servidor Proxy Servidor Origem Rede Remota 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 Dados recebidos pelos clientes • Batching Fluxo multicast com objeto requisitado por r0-r3 r0 r1 r2 r3 Janela batching Tempo • Cliente recebe apenas um fluxo • Introdução de atrasos adicionais para os usuários • Nao provê distribuição sob demanda verdadeira 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 Servidor retarda s0 Stream merge s0 s1 Servidor acelera s1 Tempo r0 r1 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