Top Banner
38
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Fisl13 gstreamer
Page 2: Fisl13 gstreamer

Thiago Santos

Page 3: Fisl13 gstreamer
Page 4: Fisl13 gstreamer

Framework

Page 5: Fisl13 gstreamer

GStreamer

● Framework– Processamento de dados

– “Pipes and filters”

● LGPL● 10 anos

– Stable → 0.10

– 0.11/1.0

Page 6: Fisl13 gstreamer

GStreamer

● Plugins● Baseado em grafos

Page 7: Fisl13 gstreamer

Grafos

Page 8: Fisl13 gstreamer

Grafos

Page 9: Fisl13 gstreamer

Grafos

Page 10: Fisl13 gstreamer

Grafos

File Source

Page 11: Fisl13 gstreamer

Grafos

File Source Matroska Demux

Page 12: Fisl13 gstreamer

Grafos

File Source Matroska Demux

H264 DecMP3 Dec

Page 13: Fisl13 gstreamer

Grafos

File Source Matroska Demux

Audio SinkVideo Sink

H264 DecMP3 Dec

Page 14: Fisl13 gstreamer

Grafos

Camera Source H264 Encoder

File Sink

MP4 Muxer

Page 15: Fisl13 gstreamer

Plugins

Page 16: Fisl13 gstreamer

Plugins

● Pacote de GstElements– Rede

– Codec

– Utils

– Camera

– Arquivos

– Filtros

– Containers

Page 17: Fisl13 gstreamer

Plugins

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

Page 18: Fisl13 gstreamer

Plugins

Page 19: Fisl13 gstreamer

Outro Grafo

Page 20: Fisl13 gstreamer

Framework

● GStreamer core API– Criar nós

– Ligá-los

– Play!

● Plugins, plugins, plugins● Bindings

Page 21: Fisl13 gstreamer

GstElement

Page 22: Fisl13 gstreamer

GstPad

● Links elements● Negotiate formats

– GstCaps

Page 23: Fisl13 gstreamer

GstPipeline

● GstElement● Container (GstBin)

Page 24: Fisl13 gstreamer

GstBus

● Comunicação● Mensagens

Page 25: Fisl13 gstreamer

Overview

Pipeline Bus

Aplicação

Page 26: Fisl13 gstreamer

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)

Page 27: Fisl13 gstreamer

GstBin

● Container de GstElements● Camada de abstração

Page 28: Fisl13 gstreamer

Decodebin

Decodebin

Audio

Video

Page 29: Fisl13 gstreamer

Playbin

Playbin

Page 30: Fisl13 gstreamer

Encodebin

Encodebin

Audio

Video

Perfil

Page 31: Fisl13 gstreamer

Camerabin

Zoom

FormatosResolução

Filtros

Imagem

Video

Snapshot

Page 32: Fisl13 gstreamer

Tools

Ferramentas

Page 33: Fisl13 gstreamer

gst-inspect

● Listar elementos● Listar propriedades dos elementos

Page 34: Fisl13 gstreamer

gst-launch

● Prototipação rápida● Cria pipelines● Console

gst-launch elemento1 propriedade1=valor ! elemento2 ! elemento 3

Page 35: Fisl13 gstreamer

Gst-SDK

● Linux● Windows● OS/X

Page 36: Fisl13 gstreamer

Comunidade

● IRC - #gstreamer @ freenode (thiagoss)● ML – commits / devel / bugs● Web - gstreamer.net / gstreamer.com● GStreamer Conference● Planet - gstreamer.freedesktop.org/planet/

Page 37: Fisl13 gstreamer

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

Page 38: Fisl13 gstreamer

Obrigado!

● Perguntas?

● thiagoss -> #gstreamer @ freenode● [email protected][email protected]