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
Download

Conceitos Básicos