38

Fisl13 gstreamer

Embed Size (px)

Citation preview

Thiago Santos

Framework

GStreamer

● Framework– Processamento de dados

– “Pipes and filters”

● LGPL● 10 anos

– Stable → 0.10

– 0.11/1.0

GStreamer

● Plugins● Baseado em grafos

Grafos

Grafos

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

Plugins

● Pacote de GstElements– Rede

– Codec

– Utils

– Camera

– Arquivos

– Filtros

– Containers

Plugins

● -base● -good● -ugly● -bad● -ffmpeg

Plugins

Outro Grafo

Framework

● GStreamer core API– Criar nós

– Ligá-los

– Play!

● Plugins, plugins, plugins● Bindings

GstElement

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

Playbin

Playbin

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]