A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Streaming com Theora Pablo Lorenzzoni

Apresentações semelhantes


Apresentação em tema: "Streaming com Theora Pablo Lorenzzoni"— Transcrição da apresentação:

1 Streaming com Theora Pablo Lorenzzoni http://tv.softwarelivre.org/

2 Roteiro ● Apresentação e Histórico da TVSL (Intervalo?) Demos e/ou Hands-On ● Flumotion básico ● GStreamer básico ● Flumotion + GStreamer ● Ruby + GStreamer básico ● Ruby + GStreamer app

3 Streaming com Theora - TVSL Pablo Lorenzzoni http://tv.softwarelivre.org/

4 Conteúdo ● Produção – Theora versus os outros – GStreamer – Flumotion ● Transmissão – Shout2 e IceCast2 – Detalhes de rede, latência ● Replicação ● Estatísticas

5 Produção: Theora 1/2 ● Qualidade comparável a MPEG4 (na realidade, feito para competir com ele). ● Especificação: em domínio público. ● Implementação: licença do tipo BSD (permite inclusão em produtos comerciais).

6 Produção: Theora 2/2 ● Patentes: a On2 (empresa criadora das primeiras versões) concedeu licença irrevogável e gratuita sobre as patentes. ● Patentes “submersas”.

7 Produção: Gstreamer 1/2 ● Biblioteca de elementos de multimídia que se comunicam. ● Arquitetura baseada em plugins. ● Permite a construção de um ou mais fluxos de elementos (pipelines). ● Escrita em C (velocidade). ● Licenciada sob a LGPL

8 Produção: Gstreamer 2/2

9 Produção: Flumotion 1/2 ● Solução completa de streaming baseada no GStreamer. ● Escrita em Python. ● Alto nível, com componentes que agregam vários elementos GStreamer. ● GUI intuitiva (mais ou menos). ● Arquitetura descentralizada. ● Custeada pela Fluendo.

10 Produção: Flumotion 2/2

11 Flumotion x Transmissão 1/2 ● A arquitetura do Flumotion (Manager / Worker / Admin) permite a descentralização dos processos. ● No entanto não permite a decentralização do broadcast. ● Bom se você tem muita banda e UM servidor.

12 Flumotion x Transmissão 2/2 ● Ruim se você tem pouca banda em VÁRIOS servidores. ● (nas últimas versões isso não é completamente verdade).

13 Problema da TVSL POUCOS servidores e POUCA banda (exceto na época do FISL)

14 Transmissão: Shout2 ● Biblioteca muito antiga (estável). ● Inicialmente para construção de clientes de fonte (source clients) para um produto proprietário chamado Shoutcast. ● Atualizada para suportar IceCast2 (a resposta Open Source ao Shoutcast). ● Utilizada no elemento shout2send do GStreamer

15 Transmissão: IceCast2 1/2 ● Fácil de utilizar. Na maioria dos casos somente pequenas configurações precisam ser feitas. ● Baseado em um único binário. Pode ser compilado estático e distribuído (diferente do Flumotion). ● Confiável. Existem servidores com uptime de anos.

16 Transmissão: IceCast2 2/2 ● Atualizado para suportar Theora. ● Pode ser facilmente encadeado, cascateado ou replicado.

17 Transmissão: Infra ● Na rede local, não podemos ter latência alguma. ● Na comunicação com o servidor IceCast2, perdas de pacotes altas (~15%) ou alta latência vão causar morte do mount_point.

18 Flumotion e Shout2 ● Bug #239 ● Criado componente para enviar vídeo produzido pelo Flumotion para um servidor IceCast2. ● Agora incorporado ao Flumotion desde a versão 0.5.1

19 Solução TVSL 1/2 ● Servidores doados. ● É bom não abusar da boa vontade (não íamos pedir que alguém configurasse um Flumotion para fazer replicação). ● IceCast2 central com replicadores nos diversos servidores.

20 Solução TVSL 2/2 ● Inicialmente utilizávamos o branch do Karl Heyes pela capacidade de distribuição (302). ● Hoje ainda mais simples: IceRedir

21 TVSL IceCast2 Central LAMP + IceRedir Replicador 1 Replicador 2 Replicador 3 Replicador N Clientes Produtor 1 Produtor 2 Produtor 3 Produtor 4 Produtor 5 Produtor 6

22 TVSL IceCast2 Central LAMP + IceRedir Replicador 1 Replicador 2 Replicador 3 Replicador N Clientes (1) Quero Stream XXX.ogg Produtor 1 Produtor 2 Produtor 3 Produtor 4 Produtor 5 Produtor 6

23 TVSL IceCast2 Central LAMP + IceRedir Replicador 1 Replicador 2 Replicador 3 Replicador N Clientes (1) Quero Stream XXX.ogg (2) OK. Use o Replicador 2 Produtor 1 Produtor 2 Produtor 3 Produtor 4 Produtor 5 Produtor 6

24 TVSL IceCast2 Central LAMP + IceRedir Replicador 1 Replicador 2 Replicador 3 Replicador N Clientes (1) Quero Stream XXX.ogg (2) OK. Use o Replicador 2 (3) Quero Stream XXX.ogg Produtor 1 Produtor 2 Produtor 3 Produtor 4 Produtor 5 Produtor 6

25 Replicação ● Processo simples de comunicação entre os IceCasts. ● Na realidade, um IceCast2 “slave” monta os mesmos streams do “master”, mas ao invés de recebê-los de um produtor, recebe do “master”. ● Possibilidade de fazer por stream (não precisa replicar todos).

26 Coleta de Estatísticas ● Os logs do IceCast2 têm o mesmo formato do Apache. ● Qualquer ferramenta de análise de logs do Apache pode analisar também logs do IceCast2. ● Usamos AWStats com opção de streaming.

27 Histórico de Estatísticas ● 2008 (fisl9.0): – Visitas a TV Software Livre: 3.175 – Upload / Download:70 Gb / 179 Gb ● 2007 (fisl8.0): – Visitas a TV Software Livre: 1.212 – Upload / Download:26 Gb / 68 Gb ● 2006 (fisl7.0): – Metodologia diferente (utilizávamos números de IPs diferentes). Com o método atual, ± 800.

28 Futuro ● Consolidação das ferramentas. ● Consolidação dos parceiros. ● Estudo de novos codecs: Dirac / Schroedinger. ● RTSP. ● MultiCast / IPv6 ?

29 Obrigado! Pablo Lorenzzoni pablo@propus.com.br http://tv.softwarelivre.org/ http://www.propus.com.br/ +55-51-3024-3568 +55-11-4063-8864

30 Roteiro ● Apresentação e Histórico da TVSL (Intervalo?) Demos e/ou Hands-On ● Flumotion básico ● GStreamer básico ● Flumotion + GStreamer ● Ruby + GStreamer básico ● Ruby + GStreamer app


Carregar ppt "Streaming com Theora Pablo Lorenzzoni"

Apresentações semelhantes


Anúncios Google