GStreamer

GStreamer
Información general
Tipo de programa Framework
Autor Erik Walthinsen
Desarrollador Desarrolladores de GStreamer
Lanzamiento inicial 11 de enero de 2001
Licencia GNU Lesser General Public License
Información técnica
Programado en C
Versiones
Última versión estable 1.28.3 (info) (11 de mayo de 2026 (5 meses y 22 días))
Última versión en pruebas 1.29.229 de junio de 2026
Archivos legibles
Enlaces

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. El diseño de la canalización sirve de base para crear diversos tipos de aplicaciones multimedia, como editores de vídeo, transcodificadores, emisoras de streaming y reproductores multimedia.

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.

Está diseñado para funcionar en una variedad de sistemas operativos, por ejemplo, BSD, OpenSolaris, Linux, Android, macOS, iOS, Windows, OS/400.

GStreamer es un software gratuito y de código abierto sujeto a los términos de la LGPL-2.1 o posterior  y está alojado en freedesktop.org.

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 Oregón. 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.

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.

Distribución y adopción

El entorno de escritorio GNOME, un usuario intensivo de GStreamer, lo incluye desde la versión 2.2 de GNOME y fomenta su uso en aplicaciones GNOME y GTK. Otros proyectos también lo utilizan o lo soportan, como el marco multimedia Phonon y el reproductor multimedia Songbird. También se utiliza en el motor de navegación WebKit.

GStreamer también funciona en dispositivos integrados como el Jolla Phone, el Palm Pre, Tizen y las tabletas de Internet Nokia 770, N800, N810, N900 y N9 que ejecutan el sistema operativo Maemo.

Además de los lanzamientos de código fuente, el proyecto GStreamer proporciona compilaciones binarias para Android, iOS, OSX y Windows.

El Laboratorio LIGO utiliza GStreamer para simular y analizar datos de ondas gravitacionales. La interfaz de GStreamer se denomina GstLAL.

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

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

Funcionamiento

GStreamer basa su funcionamiento en complementos, los cuales pueden proveer de Códecs o más funcionalidades.

Una excelente herramienta para entender cómo 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:

Para poder entender GStreamer debemos conocer los siguientes conceptos básicos orientados a él:

Con todos estos elementos puedes, por ejemplo:

Aplicaciones que hacen uso de GStreamer

Véase también

Referencias

  1. 1 2 «GStreamer "Slipstream" 0.1.0 released». 11 de enero de 2001. Consultado el 3 de noviembre de 2010.
  2. 1 2 «Ohloh Analysis Summary – GStreamer». Ohloh. Archivado desde el original el 9 de febrero de 2009. Consultado el 22 de julio de 2010.
  3. ↑ «Is GStreamer a media player?». Consultado el 09-01-2025.
  4. ↑ «General». gstreamer.freedesktop.org (en inglés). Archivado desde el original el 18 de agosto de 2025. Consultado el 5 de enero de 2026.
  5. ↑ Edge, Jake (26 de octubre de 2010). «GStreamer: Past, present, and future». LWN.net (en inglés estadounidense). Consultado el 5 de enero de 2026.
  6. ↑ Igalia. «Multimedia | Igalia - Open Source Consultancy and Development». Igalia (en inglés). Consultado el 5 de enero de 2026.
  7. ↑ «webOS and GStreamer». www.weboshelp.net. Consultado el 5 de enero de 2026.
  8. ↑ «Download GStreamer». gstreamer.freedesktop.org. Archivado desde el original el 12 de diciembre de 2025. Consultado el 5 de enero de 2026.
  9. ↑ «GstLAL < Computing/DASWG < LIGOWiki». wiki.ligo.org. Consultado el 5 de enero de 2026.

Enlaces externos