Streaming parte 2

Fala pessoal, coloquei em prática as teorias sobre a transmissão de audio/video atravéz da internet.
Como fiz?

A estrutura foi dividida em Encoder e Servidor de entraga do conteúdo. Para o encoder utilizei o Flash Media Encoder,para a parte de entrega de conteúdo foi um serviço contratado da LocaWeb.

A transmissão ocorreu perto das 19:00 horas, com origem em São Paulo capital e com os principais espectadores em Curitiba.

Os principais problemas foram:

  • O não suporte ao H.264 pelo serviço de Flash Server disponibilizado pela Loca Web;
  • O não suporte do Flash Media Encoder ao sistema operacional Mac OS X;
  • Horário da transmissão;

Por não poder utilizar o H.264 tive que efetuar o encoder do vídeo utilizando o VP6, o resultado final foi um maior peso do vídeo e com isso a necessidade de um Link com maior capacidade.
Com relação ao encoder, o problema é a plataforma, tive instabilidades com o Windows, o Flash Media Encoder fechava sem nenhum motivo aparente, ou não fazia o streaming, somente no último minuto antes da transmissão ele estabilizou (foi um sufoco).
Com relação ao horário o impacto é o trafego da Internet no Brasil, aconpanhei através do site da RNP que o horário escolhido pelo pessoal organizador do evento era justamente o horário de pico da Internet do Brasil, não somente por esse problema, mas também por problemas de estreitamento de banda no local do evento, tive problemas com a “up” do conteúdo até a Loca Web.

Mas no final deu tudo certo, a transmissão durante todo o evento não teve problemas de instabilidade, o antes foi muito complicado, o durante e depois fui super tranquilo.

Poderia ter utilizado o Red5, mas o meu principal problema foi conseguir uma documentação explicando como fazer a instação no centOS e a minha falta de tempo. Por esses motivos utilizei o Flash Media da Loca Web, supriu as minhas necessidades.

A aplicação client foi desenvolvida por mim e pela equipe de desenvolvimento web da empresa, utilizando o Adobe Flex 3, a base do código foi o programa postado aqui no blog.

http://fabiotomio.wordpress.com/2008/06/25/adobe-flex-red5-e-streaming/

Qual o meu parecer?

Transmissão utilizando a Internet é extremamente complexa, existem inúmeros fatores que podem afetar a transmissão, não somente sua aplicação ou mesmo o seu serviço de entrega utilizado. A tecnologia em sí e forma de entrega são sim os principais focos na hora de projetar uma transmissão, mas não se pode esquecer os outros fatores que são importantes também, como:

  • A entrega dos sinais será feita como? Há a necessidade de um conversor de mídia?
  • O audio? como será entregue? há um sistema de compressão de audio? Clips (Overload) no audio geram instabilidades.
  • Qual a tecnologia utilizada para acesso a Internet? É estável? ADSL, Fibra, Frame-Relay, Radio? Mais instavel maior a necessidade da largura.
  • Nunca utilizar 100% do Link disponível, se necessário diminua a qualidade do vídeo! Existem muitos picos durante a transmissão, se não existir banda disponível há perda de sincronismo.
  • Qual o seu público? Onde ele está? Quanto mais proximo a origem da transmissão melhor.
  • Qual a distância da origem do sinal e do servidor que irá distribuir o conteúdo? Quanto mais próximo melhor!

Esses são alguns pontos importantes e que devem ser levados em consideração.

As duas últimas questões levam em conta que existam gargalos de comunicação entre uma região e outra. Por exemplo, se o o conteúdo for trafegar na Internet existem diferentes tecnologias de comunicação para entregar a Internet no Brasil, por exemplo, Paraná – São Paulo, o link é DWDM de 2.5 Gps já São Paulo com Manaus são 20 Mbps. Mais informações em RNP. Uma alternativa a esse problema é locar uma rede terceira para trafegar seu conteúdo.

Próxima etapa:

Setembro está chegando e lá vou eu de novo, dessa vez vou mudar muita coisa, ou quase tudo, vou migrar do Flash pro QuickTime, o servidor de streaming do QuickTime tem ume versão Open Source, mais conhecida como Darwin, tem muitos recursos e o melhor, dá suporte ao H.264.

Adicionei mais uma camada para a entrega do conteúdo, é um serviço que faz cache do conteúdo e utiliza rede própria para trafegar o conteúdo, e faz a entrega do conteúdo utilizando várias conexões simultâneas, sabe o superdownload ou getright? é o mesmo conceito, só que em vez de ser na aquisição do conteúdo, é na entrega. Este serviço é utilizado pelos maiores sites e portais do mundo, como Apple, Adobe, CNN, etc. Segue abaixo uma imagem exemplificando o funcionamento. Quem fornece esse serviço no mundo é a Akamai, seu representante no Brasil é a Exceda.

Estou efetuando testes, sem o serviço da Akamai a princípio, procurando o melhor configuração entre qualidade do vídeo e consumo de banda, essa semana ainda começamos os testes com a Akamai distribuindo o conteúdo.

Vamos ver os resultados, para quem quizer fazer testes com o QuikTime/Darwin, os sites são:

Darwin

Instalar Darwin on centOS

Assim que tiver outras novidades posto aqui…

Abraços a todos, e se pintar alguma dúvida, é só enviar um email para fabiotomio@gmail.com

Links:

  • http://www.adobe.com/products/flashmediaserver/flashmediaencoder/
  • http://www.locaweb.com.br/flashcom/default.asp
  • http://www.rnp.br/backbone/index.php
  • http://www.akamai.com
  • http://exceda.com
  • http://developer.apple.com/opensource/server/streaming/index.html
  • http://streaming411.com/wiki/Darwin_Streaming_Server