GStreamer
● Framework– Processamento de dados
– “Pipes and filters”
● LGPL● 10 anos
– Stable → 0.10
– 0.11/1.0
GStreamer
● Plugins● Baseado em grafos
Grafos
File Source
Grafos
File Source Matroska Demux
Grafos
File Source Matroska Demux
H264 DecMP3 Dec
Grafos
File Source Matroska Demux
Audio SinkVideo Sink
H264 DecMP3 Dec
Grafos
Camera Source H264 Encoder
File Sink
MP4 Muxer
Plugins
● Pacote de GstElements– Rede
– Codec
– Utils
– Camera
– Arquivos
– Filtros
– Containers
Plugins
● -base● -good● -ugly● -bad● -ffmpeg
Framework
● GStreamer core API– Criar nós
– Ligá-los
– Play!
● Plugins, plugins, plugins● Bindings
GstPad
● Links elements● Negotiate formats
– GstCaps
GstPipeline
● GstElement● Container (GstBin)
GstBus
● Comunicação● Mensagens
Overview
Pipeline Bus
Aplicação
Código
player = gst.Pipeline("player")
source = gst.element_factory_make("filesrc")
decoder = gst.element_factory_make("mad")
conv = gst.element_factory_make("audioconvert")
sink = gst.element_factory_make("alsasink")
player.add(source, decoder, conv, sink)
gst.element_link_many(source, decoder,
conv, sink)
GstBin
● Container de GstElements● Camada de abstração
Decodebin
Decodebin
Audio
Video
Encodebin
Encodebin
Audio
Video
Perfil
Camerabin
Zoom
FormatosResolução
Filtros
Imagem
Video
Snapshot
Tools
Ferramentas
gst-inspect
● Listar elementos● Listar propriedades dos elementos
gst-launch
● Prototipação rápida● Cria pipelines● Console
gst-launch elemento1 propriedade1=valor ! elemento2 ! elemento 3
Gst-SDK
● Linux● Windows● OS/X
Comunidade
● IRC - #gstreamer @ freenode (thiagoss)● ML – commits / devel / bugs● Web - gstreamer.net / gstreamer.com● GStreamer Conference● Planet - gstreamer.freedesktop.org/planet/
Referências
● Grafos: wikipedia● Flickr:
– http://www.flickr.com/photos/nocallerid_man/3638360458
– http://www.flickr.com/photos/evaekeblad/454220744/
– http://www.flickr.com/photos/freefoto/5982549938/– http://www.flickr.com/photos/duckypipeliner/4281438859
– http://www.flickr.com/photos/m4tik/4687192723
– http://www.flickr.com/photos/matthewfch/835831228
– http://www.flickr.com/photos/florianric/7263382550
Obrigado!
● Perguntas?
● thiagoss -> #gstreamer @ freenode● [email protected]● [email protected]