Diferencia entre revisiones de «GStreamer»

(Los plugins utilizados en gstreamer se clasifican en: Buenos, malos y feos)
Línea 15: Línea 15:
  
 
El objetivo puede ser tan simple como querer escuchar un archivo de sonido  o ver un vídeo, pero también podemos modificarlos haciéndolos pasar a  través de distintos filtros, o podemos querer convertirlos de un formato  a otro. El proyecto GStreamer hace esto posible a través de un par  de herramientas de línea de comandos que, como veremos, poseen una seria  complicación si queremos realizar cualquier acción medianamente  complicada. Es ahí donde [[Python]] entra en juego, permitiéndonos crear  combinaciones mucho más complejas.
 
El objetivo puede ser tan simple como querer escuchar un archivo de sonido  o ver un vídeo, pero también podemos modificarlos haciéndolos pasar a  través de distintos filtros, o podemos querer convertirlos de un formato  a otro. El proyecto GStreamer hace esto posible a través de un par  de herramientas de línea de comandos que, como veremos, poseen una seria  complicación si queremos realizar cualquier acción medianamente  complicada. Es ahí donde [[Python]] entra en juego, permitiéndonos crear  combinaciones mucho más complejas.
 
==Los plugins utilizados en gstreamer se clasifican en: Buenos, malos y feos==
 
 
*Bueno (Good) son los plugins que han sido revisados, tienen licencia LGPL y se consideran de buena calidad.
 
*Malo (Bad) son aquellos a los que algo les falla, y . . .
 
*Feo  (Ugly) son aquellos que, aunque de buena calidad, imponen restricciones  a su distribución, ya sea por licencia o porque no es fácil portarlos.  GStreamer, como es lógico, recomienda trabajar siempre que sea posible  con plugins «Buenos».
 
'''Listar los plugins instalados:'''
 
 
gst-inspect-0.10
 
 
'''Este sistema permite enlazar un plugin con otro:'''
 
 
fuente de datos ==> plugin ==> resultado ==> plugin, etc . . .
 
 
El  plugin gnomevfs es especial pues nos permite acceder a archivos a  través de la capa de abstracción de gnome, incluso, nos permite acceder a  archivos remotos a través de samba y ssh.
 
 
'''Podemos reproducir un archivo desde la terminal:'''
 
 
gst-launch-0.10 playbin uri=file:///home/flavio/Escritorio/kiko.mp3
 
 
En este ejemplo, el plugin playbin se encarga de la reproducción.
 
 
'''Podemos realizar conversiones entre formatos de archivos, por ejemplo:'''
 
 
gst-launch-0.10 filesrc location="1.mp3" ! mad ! audioconvert ! vorbisenc ! oggmux ! filesink location="1.ogg"
 
 
En  este ejemplo la fuente es un fichero (filesrc), que pasamos a través  del plugin mad que convierte mp3 a raw, (formato sin codificar).
 
Audioconvert realiza conversiones entre codificaciones, oggmux (que codifica OGG)
 
y filesink guarda en un fichero.
 
 
Ejemplo utilizando python ==> Conversor-mp3-ogg.py
 
 
'''La manera más rápida de capturar una imagen fija de la cámara:'''
 
gst-launch-0.10 v4l2src ! ffmpegcolorspace ! pngenc ! filesink location=mifoto.png
 
 
'''Ver video-camara:'''
 
gst-launch-0.10 v4l2src ! ximagesink
 
 
====Circuito cerrado de video (con 2 xo)====
 
 
'''enviar:'''
 
 
gst-launch  v4l2src !  video/x-raw-yuv,width=320,height=240,framerate=\(fraction\)2/1 !  ffmpegcolorspace ! smokeenc keyframe=8 qmax=40 ! udpsink  host=192.168.1.1 port=5000
 
 
'''recibir:'''
 
 
gst-launch udpsrc port=5000 ! smokedec ! autovideosink
 
 
====Circuito cerrado de audio y video(con 2 xo)====
 
 
'''enviar:'''
 
 
gst-launch  v4l2src ! queue !  video/x-raw-yuv,width=320,height=240,framerate=\(fraction\)4/1 !  videorate ! videoscale ! ffmpegcolorspace ! queue ! smokeenc ! queue !  udpsink host=192.168.1.1 port=5000 alsasrc ! queue !  audio/x-raw-int,rate=8000,channels=1,depth=8 ! audioconvert ! speexenc !  queue ! tcpserversink host=192.168.1.1 port=5001
 
 
'''recibir:'''
 
 
gst-launch-0.10  udpsrc port=5000 ! queue ! smokedec ! queue ! autovideosink  tcpclientsrc host=192.168.1.5 port=5001 ! queue ! speexdec ! queue !  alsasink sync=false
 
  
 
==Fuente==
 
==Fuente==

Revisión del 07:45 12 oct 2011

GStreamer
Información sobre la plantilla
GStreamer.jpg

GStreamer. Es un framework multimedia software libre multiplataforma escrito en el lenguaje de programación C, usando la biblioteca GObject.

Funcionalidades

GStreamer permite crear aplicaciones audiovisuales, como de vídeo, sonido, codificación, etc. Por ejemplo, con GStreamer se puede reproducir música o realizar tareas más complejas como mezclar audio y vídeo.

La función del núcleo de GStreamer es proveer un framework para complementos, flujo de datos y manejo/negociación de distintos tipos de medios. También provee una API para escribir aplicaciones.

El proyecto GStreamer comenzó en 1999 como proyecto universitario y empresarial. El fin era crear una librería de procesamiento multimedia que funcionase como un conjunto de plugins que pudiesen ser combinados al antojo del usuario. No sólo eso, debería ser posible portar la librería a cualquier arquitectura informática (Intel, PowerPC, PDAs...), por lo que tendría de ser pequeña y autónoma.

Historia

El proyecto fue adoptado por el escritorio Gnome como sistema de librerías multimedia desde Gnome 2.2. Su mantenedor es Wim Taymans, que ha trabajado en GStreamer desde casi el principio. Curiosamente, y a pesar de que es un proyecto con casi 10 años a sus espaldas, GStreamer se encuentra aún en su versión 0.10. Pero este número de versión no quiere decir nada, pues es un proyecto considerado estable desde hace años. Con GStreamer vamos uniendo distintos plugins uno tras otro hasta obtener el resultado que estabamos buscando.

El objetivo puede ser tan simple como querer escuchar un archivo de sonido o ver un vídeo, pero también podemos modificarlos haciéndolos pasar a través de distintos filtros, o podemos querer convertirlos de un formato a otro. El proyecto GStreamer hace esto posible a través de un par de herramientas de línea de comandos que, como veremos, poseen una seria complicación si queremos realizar cualquier acción medianamente complicada. Es ahí donde Python entra en juego, permitiéndonos crear combinaciones mucho más complejas.

Fuente