fbpx
Wikipedia

GStreamer

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

GStreamer
Información general
Tipo de programa Framework
Autor Erik Walthinsen
Desarrollador Desarrolladores de GStreamer
Lanzamiento inicial 11 de enero de 2001[1]
Licencia GNU Lesser General Public License[2]
Información técnica
Programado en C[2]
Versiones
Última versión estable 1.18.4 (info) ( 15 de marzo de 2021 (1 año, 1 mes y 14 días))
Archivos legibles
Enlaces
Sitio web oficial
Repositorio de código
Seguimiento de errores

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.

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

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

Véase también

Referencias

  1. «GStreamer "Slipstream" 0.1.0 released». 11 de enero de 2001. Consultado el 3 de noviembre de 2010. 
  2. «Ohloh Analysis Summary – GStreamer». Ohloh. Consultado el 22 de julio de 2010. 

Enlaces externos

  • GStreamer
  • en el sitio de GNOME.
  • Fluendo, Compañía de software que emplea a algunos de los desarrolladores del núcleo de GStreamer, incluyendo al cofundador del proyecto, Wim Taymans.
  • Una introducción a GStreamer
  •   Datos: Q860213
  •   Multimedia: GStreamer

gstreamer, este, artículo, sección, necesita, referencias, aparezcan, publicación, acreditada, este, aviso, puesto, agosto, 2011, framework, multimedia, libre, multiplataforma, escrito, lenguaje, programación, usando, biblioteca, gobject, información, generalt. Este articulo o seccion necesita referencias que aparezcan en una publicacion acreditada Este aviso fue puesto el 15 de agosto de 2011 GStreamer es un framework multimedia libre multiplataforma escrito en el lenguaje de programacion C usando la biblioteca GObject GStreamerInformacion generalTipo de programaFrameworkAutorErik WalthinsenDesarrolladorDesarrolladores de GStreamerLanzamiento inicial11 de enero de 2001 1 LicenciaGNU Lesser General Public License 2 Informacion tecnicaProgramado enC 2 VersionesUltima version estable1 18 4 info 15 de marzo de 2021 1 ano 1 mes y 14 dias Archivos legiblesAdvanced Streaming FormatAVI3GPPQuickTimeFLVTransport StreamMatroskaWebMMXFOggEnlacesSitio web oficial Repositorio de codigo Seguimiento de errores editar datos en Wikidata GStreamer permite crear aplicaciones audiovisuales como de video sonido codificacion etc Por ejemplo con GStreamer se puede reproducir musica o realizar tareas mas complejas como mezclar audio y video La funcion del nucleo de GStreamer es proveer un framework para complementos flujo de datos y manejo negociacion de distintos tipos de medios Tambien provee una API para escribir aplicaciones Indice 1 Historia y desarrollo 2 Caracteristicas 2 1 Multiplataforma 2 2 Biblioteca de nucleo comprensiva 2 3 Arquitectura inteligente de complementos 2 3 1 Organizacion de complementos 2 4 Herramientas de desarrollo extensivas 3 Funcionamiento 4 Aplicaciones que hacen uso de GStreamer 5 Vease tambien 6 Referencias 7 Enlaces externosHistoria y desarrollo EditarEl proyecto fue fundado el ano 1999 por Erik Walthinsen Algunas de sus ideas fueron tomadas desde un proyecto de investigacion desarrollado en la Universidad de Oregon Gracias a la incorporacion 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 disenado por Brock A Frazier GStreamer recibe hospedaje en freedesktop org lo que de algun modo permite una mayor interoperabilidad entre distintos sistemas libres La primera publicacion importante fue la version 0 1 0 que fue anunciado el 11 de enero de 2001 1 Inicialmente fue adoptado por el proyecto GNOME a partir de su version 2 2 luego siguio su evolucion y cada vez mas aplicaciones lo utilizan Caracteristicas EditarMultiplataforma Editar 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 nucleo comprensiva Editar Basado en GLib 2 0 haciendo uso de su diseno orientado a objetos y herencia Biblioteca de nucleo liviana menos de 150kb cerca de 10k de codigo 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 depuracion Arquitectura inteligente de complementos Editar Carga dinamica de complementos Organizacion de complementos Editar gst plugins base contiene el conjunto basico 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 podrian tener problemas para su libre distribucion 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 Editar Acceso a la API desde muchos lenguajes de programacion como Python Perl Guile Ruby y otros en desarrollo como NET C y Java Funcionamiento EditarGStreamer basa su funcionamiento en complementos los cuales pueden proveer de Codecs o mas funcionalidades Una excelente herramienta para entender como funciona GStreamer es gst launch version por ejemplo gst launch 0 10 Si quisieramos reproducir un archivo mp3 podriamos usar desde una consola gst launch 0 10 filesrc location archivo mp3 decodebin alsasinkEn cierto modo gst launch es a GStreamer como una consola es a UNIX Basicamente el comando anterior consiste en gst launcher 0 10 nombre del programa que usaremos en su version 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 basicos orientados a el Elements es la parte fundamental dentro de la Clase de objetos en GStreamer Nos permite crear una cadena de elementos enlazados entre si y lograr que los datos fluyan por ella Un elemento tiene funciones especificas 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 podriamos realizar tareas especificas como reproduccion o captura multimedia GStreamer provee de una amplia coleccion de elementos Si es necesario tambien puedes agregar otros por medio del desarrollo de complementos Bins son contenedores para una coleccion de elementos Son una subclase de element por tanto puedes manejarlos como tal Su utilidad esta 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 algun archivo de video Capturar en vivo con una camara digital IEEE1394 compatible y guardar o subir un MPEG 2 streamAplicaciones que hacen uso de GStreamer EditarBanshee Pagina oficial BMPx Pagina oficial Buzztard Pagina oficial Clementine Pagina oficial GnomeBaker Pagina oficial Goobox Pagina oficial Jokosher Pagina oficial JuK Pagina oficial Kaffeine Pagina oficial Listen Pagina oficial Miro Pagina oficial Muine Pagina oficial Opera solo en Linux Unix Pitivi Pagina oficial Quod Libet Pagina oficial Rhythmbox Pagina oficial Songbird Pagina oficial Sound Juicer Pagina oficial Thoggen Pagina oficial Totem Pagina oficial Whaaw Media Player Pagina oficialVease tambien EditarGNOME GLib GObject LibASSReferencias Editar a b GStreamer Slipstream 0 1 0 released 11 de enero de 2001 Consultado el 3 de noviembre de 2010 a b Ohloh Analysis Summary GStreamer Ohloh Consultado el 22 de julio de 2010 Enlaces externos EditarGStreamer GStreamer en el sitio de GNOME Fluendo Compania de software que emplea a algunos de los desarrolladores del nucleo de GStreamer incluyendo al cofundador del proyecto Wim Taymans Una introduccion a GStreamer Datos Q860213 Multimedia GStreamer Obtenido de https es wikipedia org w index php title GStreamer amp oldid 134131256, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos