Carregar apresentação
A apresentação está carregando. Por favor, espere
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
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.