See also ebooksgratis.com: no banners, no cookies, totally FREE.

CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
Privacy Policy Cookie Policy Terms and Conditions
GStreamer - Wikipedia, la enciclopedia libre

GStreamer

De Wikipedia, la enciclopedia libre

GStreamer  
Desarrollador: Desarrolladores de GStreamer
Última versión: 0.10.19 (3 de abril de 2008)
S.O.: Multiplataforma
Género: Framework
Licencia: Lesser GNU General Public License
En español:
Sitio Web: gstreamer.freedesktop.org

GStreamer es un framework multimedia libre multiplataforma escrito en el Lenguaje de programación C, usando la librería GObject.

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

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

Tabla de contenidos

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

[editar] Características

[editar] 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 800 (basados en la plataforma de desarrollo Maemo), los que hacen uso de GStreamer.

[editar] Biblioteca de núcleo comprensiva

  • Basado en GLib 2.0. haciendo uso de su diseño orientado a objetos y herencia.
  • Librería 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 plugins.
  • Traspaso de datos extremadamente liviano significan baja latencia y alto rendimiento.
  • Completo sistema de depuración.

[editar] Arquitectura inteligente de plugins

[editar] Organización de plugins

  • gst-plugins-base contiene el set básico de plugins bien soportados
  • gst-plugins-good contiene el set de plugins bien soportados que usan licencias preferidas (libres) por los desarrolladores de GStreamer.
  • gst-plugins-ugly contiene el set de plugins bien soportados, pero, que podrían tener problemas para su libre distribución.
  • gst-plugins-bad contiene el set de aquellos plugins menos desarrollados que no han pasado las rigurosas pruebas de calidad de los desarrolladores.

[editar] Herramientas de desarrollo extensivas

[editar] Funcionamiento

GStreamer basa su funcionamiento en Plugins, los cuales puden proveer de Codecs 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 si 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 Plugins.
  • 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 aquél 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.
  • Captuar en vivo con una cámara digital IEEE1394 compatible y guardar o subir un MPEG-2 stream

[editar] Aplicaciones que hacen uso de GStreamer

[editar] Véase también

[editar] Enlaces externos


aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -