You are on page 1of 25

Transmissão de Vídeo com Software Livre

Lucas Alberto S. Santos lucasa@gmail.com SERPRO – RS TV Software Livre

Roteiro
      

Por dentro de um vídeo Codecs Proprietários x Livres Ogg O que é Streaming? Servidores de Vídeo Livres Softwares para Streaming Landell

VHS Digital: DVD. BlueRay Algoritmo: Codec Com perdas x Sem perdas VHS – 480x320 DV – Standart Definition (SD) 720x480 HD – High Definition 1280x720 Full HD .1920x1080  Codificação ~= Compactação    Resolução:     .● Por dentro de um vídeo? Imagens em sequência    Analógico: TV.

264. MKV Theora. MP3. Vorbis.264 ou VP6 . FLV.● Por dentro de um vídeo digital Qualidade da Imagem x Tamanho do arquivo Taxa de Quadros por Segundo Vídeo Digital = Encapsular Vídeo + Áudio Arquivo de vídeo contém um ou mais fluxos de vídeo e áudio Codecs Proprietários x Livres          MPEG2. Dirac. Flac. DivX. MPEG4. Ogg. WebM DVD usa MPEG2 Youtube usa FLV com h. AVI. VP8. H.

● Ogg Criado pela Fundação Xiph.música (16 – 256kbps) Flac .oga] .codec experimental de áudio PCM não comprimido . sem perdas OggPCM . vídeo e outros dados Audio         Speex .voz (8 – 32kbps) Vorbis [.áudio de alta qualidade.Org Iniciou como um codec de áudio na decada de 90 Encapsula áudio.

anotação e indexação de mídia contínua. feito para competir com o MPEG4. OGM .para legenda. OggKate . OggUVS .codec livre desenvolvido pela BBC. Writ .     Texto    . desenvolvido para karaoque.baseado em XML.ogv] .codec para vídeo não comprimido (draft). Dirac . Annodex .baseado no VP3.codec para texto sobre vídeo.● Ogg   Vídeo Theora [.vídeo DIVX + áudio Vorbis (em desuso).

2 em 2003 fonte de mídia → processador1 → processador2 → saída  Processamento multimídia em pipeline:   O fluxo de dados de segue sempre do elemento de entrada até a saída. O pipeline é formado por elementos ligados através de Pads. Cada elemento possui propriedades (read/write).   .Gstreamer  Histórico   Criado em 1999 no Oregon Graduate Insitute Integrado ao Gnome 2.

Pads são de entrada (sink) ou saída (src). pouco testados Ugly – licenças não GPL . Um pipeline pode ter múltiplos ramos. Cada elemento possui no mínimo 1 Pad. Os elementos são distribuídos em plugins:         Good – elementos com algoritmos estáveis e confiáveis Bad – podem ocorrer problemas. Um Bin é um elemento composto por uma cadeia de outros elementos.Arquitetura de um Pipeline  Um pipeline deve sempre ter no mínimo um elemento de entrada e um de saída.

10 elemento_src "propriedade = valor" ! .10 videotestsrc ! ximagesink     gst-launch-0.10    .10 xvimagesink Executa um pipeline Sintaxe: gst-launch-0. Sintaxe: gst-inspect-0. etc.Linha de comando Gstreamer  gst-inspect-0. métodos. tipos de dados suportados.10 "nome do elemento"  Lista informações sobre o elemento ou plugin: propriedades...10 videotestsrc Exemplo: gst-inspect-0.10 "nome do elemento" Exemplo: gst-inspect-0. ! elemento_sink "propriedade = valor" Exemplo: gst-launch-0.

Usar audiotestsrc e tocar na placa de som com autoaudiosink. Usar elemento de echo do plugin audiofx e aplicar na voz capturada. Capturar voz do microfone (autoaudiosrc) e tocar na placa de som.Exercícios: primeiros pipelines  Usar o videotestsrc e mostrar na tela com outros padrões (pattern) de imagem. Carregar video da webcam (v4l2src) e mostrar na tela. testar diferentes tipos de onda gerada.     .

abrir arquivo filesink .captura vídeo de webcam fakesink .aceleração gráfica para saída de vídeo efeitos de vídeo .detecta e usa o driver de saída de áudio xvimagesink .abssorve qualquer tipo de fluxo autoaudiosrc .salvar arquivo timeoverlay – coloca um contador de tempo sobre o vídeo textoverlay – coloca um texto sobre o vídeo .detecta e usa o driver de captura de áudio autoaudiosink .Alguns elementos básicos v4l2src .elementos do plugin effectv monoscope – visualiza gráfico do áudio filesrc .

theoradec – codifica/decodifica vídeo em Theora vorbisenc.modifica a taxa de quadros por segundo videoscale .cria uma thread theoraenc. vorbisdec . videorate . oggdemux – extrai áudio e vídeo de conteúdo Ogg .Alguns elementos básicos decodebin .codifica/decodifica vídeo em Vorbis oggmux.modifica a taxa de frequência do áudio audioconvert .modifica a resolução de bits do áudio ffmpegcolorspace – converte espaços de cor diferentes queue .Bin que toca um arquivo.Bin que detecta o tipo de arquivo e decodifica playbin .modifica a resolução do vídeo audiorate .

net Lista de discussão .Possíveis problemas  Pipeline não conecta:   Elementos conflitantes: áudio x vídeo Espaços de cor diferentes: RGB x YUV (usar ffmpegcolorspace)  Na dúvida consulte a página de plugins do Gstreamer:   www.gstreamer.

mpeg2. propriedade do encoder: bitrate    . divx + avi.264 + FLV. desta vez aplicando um dos efeitos do plugin effectv. Escolher um codec de vídeo e um contêiner e criar um arquivo de vídeo capturado da webcam. h. por exemplo: vorbis + ogg. Gravar um outro vídeo da webcam.Exercícios  Criar um arquivo de vídeo Ogg com o Gstreamer. Modificar a qualidade do vídeo.

Alguns elementos fazem a conversão do tipo de fluxo processado.: Para modificar a resolução e framerate. são as capabilities. Para forçar um tipo de fluxo inclua esta informação no pipeline:     Ex. gst-launch v4l2src ! timeoverlay ! videorate ! videoscale ! video/x-raw-yuv.framerate=5/1 ! xvimagesink .width=320.height=240.Negociação de tipo do fluxo  Cada elemento tem um determinado tipo de fluxo que podem processar.

width=320.ogg Captura vídeo da webcam e áudio da placa de som através de driver Alsa.Pipeline com múltiplas ramificações gst-launch v4l2src ! queue ! ffmpegcolorspace ! videoscale ! video/x-raw-yuv.ogg” no disco. mux. height=240 ! theoraenc quality=16 ! queue ! oggmux name=mux alsasrc ! queue ! audioconvert ! vorbisenc ! queue ! mux. . salva um arquivo ”saida. ! queue ! filesink location=saida.

 streaming real – pacotes perdidos não podem ser re-enviados. Existem três tipos de streaming: download and play – necessário baixar todo o arquivo. Conteúdo transmitido:     streaming de arquivos streaming ao vivo .  progressive download – partes do arquivo são requisitados ao servidor.O que é streaming?   Entrega em tempo real de áudio ou vídeo via rede.

otimizado para tráfego multimídia. RTSP) – Realtime Transport Protocol. HTTP – envio de áudio e vídeo em conexões da web (TCP). Pode ser usado com UDP. Tipo de transporte de pacotes: Unicast x Multicast (mostrar imagens)      .Protocolos Populares  RTP (RTCP. RTMP – protocolo da Adobe utilizado em servidores de vídeo Flash FLV.

modificação do vídeo com javascript. tocar partes de um vídeo.5). HTML5 suporta legenda. Opera e Chrome.Streaming Player   HTML5 <video> Theora antes do HTML5: Dependência de plugins no navegador ou solução com decoder Java Cortado Depois do HTML5:    Independência de plugins nos navegadores Firefox (depois do 3.  . dentre outras novidades.

mas tem administração um pouco complexa quando usado em escala maior.    .Servidores Livres Populares  VLC – de fácil uso. Desenvolvido com Gstreamer. Protocolo RTMP. Protocolo HTTP. incluindo RTP. Icecast2 – robusto. Red5 – Flash vídeo. Protocolo HTTP. mas só suporta Ogg Vorbis/Theora. pode não suportar grande escala. Suporta diferentes protolocos. Flumotion – serve MP3 e Ogg.

 Utilizar o wizard para servir um arquivo de vídeo.xml Criar ponto de montagem Colocar senha .Exercícios: Servidor  Configurar um servidor VLC.  Configurar um servidor Icecast2:    Editar arquivo /etc/icecast2/icecast.

Básico.com interface mas bastante simples. Landell – solução completa com funções não existentes no flumotion. VLC – simples de usar. Flumotion – solução completa para streaming Ogg.     . Desenvolvido para transmissão do FISL.Softwares para Streaming  Theora Streaming Studio . Linha de comando Gstreamer – confiável mas complexo.04. Problema no Ubuntu 10.

Usar:      VLC ffmpeg + ffmpeg2theora + oggfw Linha de comando Gstreamer (elemento shout2send) Flumotion Landell .Exercício: Streaming   Transmistir webcam para o Icecast local.

ajustes de Imagem.softwarelivre. texto sobre o vídeo. .Landell         Histórico Instalação .org/TV Informações do projeto: wiki e lista. Grafo do pipeline do Landell Streaming p/ Icecast2 Switch com webcam e outras fontes de vídeo Saída para arquivo Efeitos. marca d'agua.http://wiki.

estudiolivre.org/TV .org wiki.FIM Mais informações: www.softwarelivre.