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
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