# -*- mode: org; fill-column: 34 -*-
#+TITLE: Medios de (re)producción: GStreamer
#+OPTIONS:   H:4 num:nil toc:nil \n:t @:t ::t |:t ^:t *:t TeX:t LaTeX:t

* Plan

GStreamer: Multimedia para todos

@fluendo.com: Qué es lo que
estamos haciendo

* GStreamer

** ¿Qué es GStreamer?

 * Una librería multimedia y un
   conjunto de plugins

** Breve ejemplo

v4l2src ! ffmpegcolorspace !
  ximagesink

** GStreamer: Historia

0.0.9 Octubre 1999
0.1.0 Enero 2001
0.3.0 Diciembre 2001
0.4.0 Julio 2002
0.6.0 Febrero 2003: API estable
0.8.0 Marzo 2004
0.10.0 Diciembre 2005

** GStreamer: Historia

No nos pueden acusar de aumentar
innecesariamente la versión ;)

Próximo cambio incompatible será
el último: 1.0

** Una visita guiada

GStreamer, visto por sus usuarios

** Reproductores

Históricamente las primeras

Sorprendemente difícil

** Reproductores: soluciones

Interfaz

 * API genérico
 * Procesamiento ocurre en hilos
   de ejecución (threads)
 * Los pipeline (tuberías de
   media) informan a la
   aplicación con mensajes

** Reproductores: soluciones

Sincronización entre audio y
vídeo

 * Usar hilos soluciona este
   problema

** Reproductores

Autoenchufamiento: tú lo pones,
GStreamer lo reproduce

 * Registro de cazatipos
   (typefinders)
 * Registro de capacidades de
   los plugin
 * Elementos que automatizan el
   proceso de autoenchufamiento

** Transcodificación / grabación

E.g. thoggen conversor de DVD,
aplicaciones de producción de
radio, flumotion

** (Trans)codificación: soluciones

La robustez
 * Tuberías de muy larga
   duración
 * Tuberías muy cargadas
 * Gran variedad de códigos

** (Trans)codificación: soluciones

Necesidades
 * "Bindings" para muchos
   lenguajes de programación
 * Muchas fuentes de grabación
   * v4l, firewire, ...
 * Flujo de dados por TCP
 * Sincronización de relojes por
   red

** Aplicaciones empotradas

GStreamer es cada vez más común
en los dispositivos empotrados
("embedded"): Maemo / GMAE / ...

 * Librería de peso ligero
 * Escalar hacia abajo
 * Usar hardware especializado
   para el procesamiento

** Editores no linear

El editor de vídeo PiTiVi, el
editor de audio Jokosher

 * "Búsquedas de segmento":
   configurar el pipeline a
   reproducir entre los segundos
   3 y 10, por ejemplo
 * Librería de edición no
   linear: GNonLin

** En plan teleconferencia

Telepathy, muchas aplicaciones
empotradas

 * Latencia dinámica
 * Sincronización entre relojes
 * Protocolos rtp/rtsp
 * Algoritmos amortiguadores

** Producción de media

La dimensión desconocida:
aplicaciones VJ/DJ,
sintetizadores

 * características compatibles
   con procesar en tiempo real
 * eficiencia

* @fluendo.com: Flumotion

** ¿Qué es Flumotion?

Un servidor de difusión de
media

Una solución integrada:
grabación, efectos,
codificación, difusión

** Demonstración

(difundir de webcam)

** Historia

 * Flumotion difunde GUADEC:
   Junio 2004
 * 0.0.1 Septiembre 2004
 * 0.1.0 Octubre 2004
 * 0.2.0 Marzo 2006
 * 0.4.0 Enero 2007

¿Miedo del 1.0? :)

** Estatus

Difundió el evento GPLv3

El la base de la plataforma de
streaming que tiene Fluendo
 * Difusión en vivo y
   "on-demand" de muchos grupos
   mediáticos españoles

Todavía evolucionando

** @fluendo.com: Otros

Centro de media Elisa

Editor de vídeo PiTiVi

** Conclusión

¿Preguntas?

¡Queremos buena gente!

Andy Wingo, JAH
(Just another hacker)
wingo@fluendo.com

Julien Moutte, CEO
julien@fluendo.com
