Sei sulla pagina 1di 3

GStreamer

Ir a la navegaciónIr a la búsqueda

Este artículo o sección necesita referencias que aparezcan en una publicación


acreditada.
Este aviso fue puesto el 15 de agosto de 2011.
GStreamer
gstreamer.freedesktop.org
Gstreamer-logo.svg
GStreamer example pipeline.svg
Tipo de programa Framework multimedia
software libre
biblioteca de software
Desarrollador Desarrolladores de GStreamer
Autor Erik Walthinsen
Lanzamiento junio de 1999
Última versión estable 1.16.2 (info)
3 de diciembre de 2019 (6 meses y 13 días)
Género Framework
Programado en C2
Sistema operativo Multiplataforma
Licencia GNU Lesser General Public License2
En español Sí
[editar datos en Wikidata]
GStreamer es un framework multimedia libre multiplataforma escrito en el lenguaje
de programación C, usando la biblioteca GObject.

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.

Índice
1 Historia y desarrollo
2 Características
2.1 Multiplataforma
2.2 Biblioteca de núcleo comprensiva
2.3 Arquitectura inteligente de complementos
2.3.1 Organización de complementos
2.4 Herramientas de desarrollo extensivas
3 Funcionamiento
4 Aplicaciones que hacen uso de GStreamer
5 Véase también
6 Referencias
7 Enlaces externos
Historia y desarrollo
El proyecto fue fundado el año 1999 por Erik Walthinsen. Algunas de sus ideas
fueron tomadas desde un proyecto de investigación desarrollado en la Universidad de
Oregon. Gracias a la incorporación de Wim Taymans al proyecto, muchos aspectos del
sistema fueron expandidos. Por supuesto, muchos otros desarrolladores a lo largo y
ancho del planeta han contribuido para el buen camino de este proyecto. El logo fue
diseñado por Brock A. Frazier. GStreamer recibe hospedaje en freedesktop.org, lo
que de algún modo permite una mayor interoperabilidad entre distintos sistemas
libres. La primera publicación importante fue la versión 0.1.0, que fue anunciado
el 11 de enero de 2001.1
Inicialmente fue adoptado por el proyecto GNOME, a partir de su versión 2.2, luego
siguió su evolución y cada vez más aplicaciones lo utilizan.

Características
Multiplataforma
GStreamer, ha sido portado a variados sistemas operativos (Linux, MacOS, Windows,
Solaris), procesadores (x86, SPARC, PPC, ARM) y compiladores (GCC, MS Visual
Developer). Prueba de ello son otros dispositivos como el Nokia 770 y Nokia N800
(basados en la plataforma de desarrollo Maemo), los que hacen uso de GStreamer.

Biblioteca de núcleo comprensiva


Basado en GLib 2.0. haciendo uso de su diseño orientado a objetos y herencia.
Biblioteca de núcleo liviana, menos de 150kb, cerca de 10k de código.
Multi–hilos y pipelines triviales, transparentes al desarrollar.
API limpia y simple, para desarrolladores de aplicaciones y complementos.
Traspaso de datos extremadamente liviano significan baja latencia y alto
rendimiento.
Completo sistema de depuración.
Arquitectura inteligente de complementos
Carga dinámica de complementos.
Organización de complementos
gst-plugins-base contiene el conjunto básico de complementos bien soportados
gst-plugins-good contiene el conjunto de complementos bien soportados que usan
licencias preferidas (libres) por los desarrolladores de GStreamer.
gst-plugins-ugly contiene el conjunto de complementos bien soportados, pero, que
podrían tener problemas para su libre distribución.
gst-plugins-bad contiene el conjunto de aquellos complementos menos desarrollados
que no han pasado las rigurosas pruebas de calidad de los desarrolladores.
Herramientas de desarrollo extensivas
Acceso a la API desde muchos lenguajes de programación, como: Python, Perl, Guile,
Ruby y otros en desarrollo como: .NET, C++ y Java.
Funcionamiento
GStreamer basa su funcionamiento en complementos, los cuales pueden proveer de
Códecs o más funcionalidades.

Una excelente herramienta para entender como funciona GStreamer es gst-launch-


version (por ejemplo gst-launch-0.10). Si quisiéramos reproducir un archivo.mp3
podríamos usar desde una consola:

gst-launch-0.10 filesrc location="archivo.mp3" ! decodebin ! alsasink

En cierto modo, gst-launch es a GStreamer, como una consola es a UNIX. Básicamente,


el comando anterior, consiste en:

gst-launcher-0.10 nombre del programa que usaremos, en su versión 0.10


filesrc location="archivo.mp3" es la ruta del archivo en el que trabajaremos. Crea
un elemento de la clase filesink.
! indica un enlace a. Es similar al enlace o pipeline | de las consolas UNIX.
decodebin nos permite identificar el tipo de datos o archivo dado.
alsasink en Linux nos permite conectar a nuestro sistema de sonido.
Para poder entender GStreamer debemos conocer los siguientes conceptos básicos
orientados a él:

Elements es la parte fundamental dentro de la Clase de objetos en GStreamer. Nos


permite crear una cadena de elementos enlazados entre sí y lograr que los datos
fluyan por ella. Un elemento tiene funciones específicas, como leer datos de un
archivo, decodificar los datos o enviarlos a una tarjeta de sonido (u otro
dispositivo). Colocando en una cadena distintos elementos, podríamos realizar
tareas específicas, como reproducción o captura multimedia. GStreamer provee de una
amplia colección de elementos. Si es necesario también puedes agregar otros por
medio del desarrollo de complementos.
GStreamer Technical Overview.svg
Bins son contenedores para una colección de elementos. Son una subclase de element,
por tanto puedes manejarlos como tal. Su utilidad está en, por ejemplo, cambiar el
estado de todos los elementos de un bin cambiando solo el estado de aquel bin
contenedor.
Pipelines son bins de mayor nivel (top-level) o subtipos de bin.
Pads son usados para negociar enlaces y flujo de datos entre elementos de
GStreamer. Pueden ser de salida (source) o entrada (sink)
Con todos estos elementos puedes, por ejemplo:

Transcodificar un audio MP3 a audio OGG


Reproducir algún archivo de vídeo.
Capturar en vivo con una cámara digital IEEE1394 compatible y guardar o subir un
MPEG-2 stream
Aplicaciones que hacen uso de GStreamer
Banshee – Página oficial
BMPx – Página oficial
Buzztard – Página oficial
Clementine – Página oficial
GnomeBaker – Página oficial
Goobox – Página oficial
Jokosher – Página oficial
JuK – Página oficial
Kaffeine – Página oficial
Listen – Página oficial
Miro – Página oficial
Muine – Página oficial
Opera (solo en Linux, Unix)
Pitivi – Página oficial
Quod Libet – Página oficial
Rhythmbox – Página oficial
Songbird – Página oficial
Sound Juicer – Página oficial
Thoggen – Página oficial
Tótem – Página oficial
Whaaw! Media Player – Página oficial

Potrebbero piacerti anche