[Develope]/Multimedia

Gstreamer

하늘을닮은호수M 2008. 8. 8. 15:47
반응형

출처 : http://enc.daum.net/dic100/contents.do?query1=20XX584024

GStreamer

From Wikipedia, the free encyclopedia

Jump to: navigation, search
Gstreamer
Image:Gstreamer-logo.svg
Latest release 0.10.19 / 3 April 2008
Written in C
OS Cross-platform
Genre Multimedia framework
License GNU Lesser General Public License
Website http://gstreamer.freedesktop.org/

The computer software GStreamer consists of a multimedia-framework written in the C programming language with the type-system based on GObject. GStreamer serves a host of multimedia applications, such as video-editors, streaming-media broadcasters, and media-players. Designed to operate cross-platform, it has worked on Linux (x86, PowerPC and ARM), Solaris (x86 and SPARC), Mac OS X, Microsoft Windows and OS/400. GStreamer as free software uses the GNU Lesser General Public License.

The GNOME desktop environment, the primary user of GStreamer technology, has included GStreamer since GNOME version 2.2 and encourages GNOME and GTK+ applications to use it. Other projects also use it, such as Chameleo media platform, Phonon and the Songbird media player.

GStreamer also operates in embedded devices like the Maemo environment from Nokia, which runs on the Nokia 770 Internet Tablet and its successor, the Nokia N800.

[edit] History and development

Erik Walthinsen founded the GStreamer project in 1999. Many of its core design ideas came from a research project at the University of Oregon. Wim Taymans joined the project soon thereafter and greatly expanded on many aspects of the system. Many others around the world have contributed to various degrees since then. Brock A. Frazier designed the GStreamer logo; Frazier worked for an embedded Linux company called RidgeRun, which also became the first corporate sponsor of GStreamer in the form of hiring Erik Walthinsen to develop methods for embedding GStreamer in smaller (cell phone-class) devices.

freedesktop.org hosts the GStreamer project, which accordingly aims to improve interoperability and to share technology between free desktops. Wim Taymans, as of 2007, maintains GStreamer.

[edit] Internals technical overview

A bin or pipeline consists of elements/plugins. This exemplifies a filter graph. Elements contain pads such as "source" and "sink". Data flows through the pipeline in a single direction. Pads have capabilities called "caps".

The diagram to the right could exemplify playing an MP3 file using GStreamer. The file source reads an MP3 file from a computer's hard-drive and sends it to the MP3 decoder. The decoder decodes the file data and converts it into PCM samples which then pass to the ALSA sound-driver. The ALSA sound-driver sends the PCM sound samples to the computer's speakers.

[edit] Plugins

GStreamer uses a plugin architecture which makes the most of GStreamer's functionality implemented as shared libraries. GStreamer's base functionality contains functions for registering and loading plugins and for providing the fundamentals of all classes in the form of base classes. Plugin libraries get dynamically loaded to support a wide spectrum of codecs, container formats, input/output drivers and effects.

GStreamer has bindings for programming-languages like Python, C++, Perl, GNU Guile and Ruby.

Since version 0.10 the plugins come grouped into three sets (named after the film The Good, the Bad and the Ugly),

Plugin set name Description
Good This package contains the GStreamer plugins from the "good" set, a set of good-quality plug-ins under the LGPL license.[1] or according to Gstreamer, "contains a set of well-supported plug-ins under our preferred license"[2]
Bad GStreamer Bad Plug-ins comprises a set of plug-ins not up-to-par compared to the rest. They might closely approach good-quality plugins, but they lack something: perhaps a good code review, some documentation, a set of tests, a real live maintainer, or some actual wide use.[3]
Ugly This packages contains plugins from the "ugly" set, a set of good-quality plug-ins that might pose distribution problems[4]

Individual distributions may further sub-classify these plugins: for example Ubuntu groups the "bad" and "ugly" sets into the "Universe" or the "Multiverse" components.

[edit] Criticism

KDE developers have criticized GStreamer for not offering a stable ABI. This problem eventually led to the development of Phonon, a basic multimedia API which only provides wrappers for various multimedia frameworks, including GStreamer, that is now part of QT4.4.[5]

This also avoids an lock-in similar to what happened in KDE3, where the default multimedia framework chosen (ARts) was discontinued in the middle of KDE3 life-cycle, and they remained stuck with it.

[edit] Common applications using GStreamer

[edit] References

  1. ^ gstreamer0.10-plugins-good package description (Ubuntu 6.10)
  2. ^ GStreamer release notes base plugins 0.10.0
  3. ^ gstreamer0.10-plugins-bad package description (Ubuntu 6.10)
  4. ^ gstreamer0.10-plugins-ugly package description (Ubuntu 6.10)
  5. ^ Scott Wheeler (2006-11-05). Multimedia Frameworks Yesterday, Today, Tomorrow. KDE Developer Journals. Retrieved on 2007-02-25.
  6. ^ Georges Auberger (2008-01-30). GStreamer for all, all for GStreamer.. Songbird Blog. Retrieved on 2008-01-30.

[edit] External links


GStreamer 한 번 설치해 볼 필요가 있을 듯..
반응형

'[Develope] > Multimedia' 카테고리의 다른 글

Wowza + 360 Giroptic Cam 연결  (0) 2017.02.28
ffmpeg 설치  (0) 2012.01.27
Getting Started with Adobe Flash Media Server 3  (0) 2008.06.09
Darwin Streaming Server  (0) 2007.12.20
V4L2  (0) 2007.12.13