[[InArbeit(16.09.2007,noisefloor)]] [[Getestet(feisty)]] {{{#!Wissen * [1]: [:Pakete installieren: Installation von Programmen] ## * [2]: [:Paketquellen freischalten: Bearbeiten von Paketquellen] * [2]: [:Terminal: Ein Terminal öffnen] ## * [4]: [:Editor: Einen Editor öffnen] ## * [5]: [:Packprogramme: Archive entpacken] * [3]: [:Programme starten: Ein Programm starten] ## * [7]: [:Programme kompilieren: Pakete aus dem Quellcode erstellen] ## * [8]: [:Paketinstallation_DEB: Ein einzelnes Paket installieren] ## * [9]: [:Rechte: Rechte für Dateien und Ordner ändern] ## * [10]: [:Alternativen-System: Dem System Programm-Alternativen bereitstellen] ## * [11]: [:Autostart: Automatischer Start von Programmen] ## * [12]: [:Metapakete#Architektur: Restricted-Modules, Linux-Headers: welche Version?] ## * [13]: [:Konfigurationseditor: Konfigurationseditor starten] ## * [14]: [:Menüeditor: Programme zum Menü hinzufügen] ## * [15]: [:Kernelmodule: Umgang mit Kernelmodulen (Treibern)] }}} [[TableOfContents(1)]] [http://gstreamer.freedesktop.org GStreamer] {en} ist ein Multimediaframework, dass das Abspielen, Codieren, Decodieren etc. von Audio- und Videodateien ermöglicht. Anders als der Name vermuten lässt ist ist GStreamer Desktop-unabhängig. Zwar ist GStreamer seit Gnome 2.2 ein fester Bestandteil der Desktopumgebung, funktioniert aber auch genauso problemlos mit anderen Desktopumgebungen wie z.B. [:KDE:] oder auch [:Xfce:]. Viele Audio- und Videoplayer können die Fähigkeiten von Gstreamer nutzen, so z.B. [:Totem:], [:Rhythmbox:], '''Banshee''' und '''Juk'''. [:Amarok:] unterstützt in der Version 1.4 GStreamer leider nicht mehr. Seit Ubuntu 6.06 wird unter Ubuntu das aktuelle GStreamer Framework 0.10.x eingesetzt. = Konzept von GStreamer = GStreamer ist prinzipiell modular aufgebaut und arbeitet dreistufig. Es gibt die Eingabe, welche GStreamer "Source" nennt, den Filter / Transformer (z.B. den Ogg Vorbis Decoder zum Abspielen von .ogg Audio Dateien) und die Ausgabe, welche GStreamer "Sink" nennt. Alle drei Stufen werden über Plug-Ins realisiert und sind somit grundsätzlich (beliebig) erweiterbar. Die Blöcke sind über so genannte Pipelines verbunden. = Installation = GStreamer ist in der Standardinstallation von Ubuntu enthalten, kann ansonsten aber über das Paket * '''libgstreamer0.10.0''' installiert werden [1]. Weiterhin ist noch das Paket * '''gstreamer-0.10-tools''' sinnvoll. Um Multimedia Dateien abzuspielen bzw. kodieren benötigt man noch ein entsprechendes Plug-in, welches den Decoder / Encoder enthält. Die GStreamer Plug-ins sind im Artikel [:Codecs#gst-plugin:Codecs] beschrieben. = Nutzung = Nutzt man ein Audio- oder Videoprogramm, welches GStreamer im Backend einsetzt, so verwendet man GStreamer, ohne direkt auf GStreamer zuzugreifen. Durch den Aufruf des Hilfsprogramms '''gstreamer-properties''' [3] kann man jedoch die Vorgabe für die Eingabe (Source) und Ausgabe (Sink) getrennt für Audio und Video mittels eine graphischen Benutzeroberfläche auswählen. Möchte man Wissen, welche Module / Plug-ins für GStreamer installiert sind, so ruft man im Terminal [2] folgenden Befehl auf: {{{#!Befehl gst-inspect-0.10 }}} Je nach Anzahl der installierten Plug-Ins kann die Ausgabe unter Umständen sehr lang sein. Daher bietet sich an, die Ausgabe durch [:Shell/grep:grep] filtern zu lassen, z.B.: {{{#!Befehl gst-inspect-0.10 | grep src # gibt alle installierten Sources aus gst-inspect-0.10 | grep sink # gibt alle installierten Sinks aus gst-inspect-0.10 | grep encode # gibt alle installierten Encoder aus gst-inspect-0.10 | grep decode # gibt alle installierten Decoder aus gst-inspect-0.10 | grep play # gibt alle installierten GStreamer-eigenen Player aus }}} Man kann GStreamer auch ohne graphische Benutzeroberflächen nutzen, also ohne die oben genannten Audio- /Videoplayer. Dazu dient der Befehl '''gst-launch-0.10''' mit welchem sich (fast) beliebige Pipelines bauen lassen. Hier ein einfaches Beispiel: Es soll die Datei '''musik.ogg'''wiedergegeben werden, welche im [:Homeverzeichnis:] liegt. Diese lässt sich mit folgendem Befehl realisieren [2]: {{{#!Befehl gst-launch-0.10 filesrc location=~/musik.ogg ! vorbisdec ! alsasink }}} `filesrc location=` gibt dabei den Pfad inkl. Dateiname an, `vorbisdec` den zu benutzenden Decoder, `alsasink` die Ausgabe. Das Ausrufezeichen ! signalisiert GStreamer, das als nächstes ein neues Element der Pipeline definiert wird. Kennt man den Codec der abzuspielenden Datei nicht (z.B. bei Videos), so kann man als Dekoder auch `decodebin` einsetzen. dann versucht GStreamer, anhand der Dateiheaders den Codec zu "erraten" und benutzt - sofern installiert - den passenden Decoder. Geht es um das reine Abspielen von Audio- bzw. Videodateien, so kann man auch folgenden Befehl nutzen: {{{#!Befehl gst-launch-0.10 playbin uri=file:///pfad/zur/datei/music.ogg }}} Wichtig ist dabei, dass immer der volle Pfad angegeben wird (auch, wenn man sich im Verzeichnis der Datei befinden sollte und die Einleitung mit `uri=file://` Die oben gegebenen Beispiele funktionieren von Prinzip genau so mit Videodateien. Darüber hinaus lassen sich mit dem Befehl `gst-launch-0.10 ...` noch viele andere Dinge realisieren wie z.B. Videos eincodieren, Muxen / Demuxen, CDs rippen etc. Die Pipelines können dabei (fast) beliebig komplex sein. Einige Beispiele bietet hier auch die [:Shell/man:Manpage:] zu gst-launch. Im Vergleich zu "vollwertigen" Audio- / Videoplayern etc. ist GStreamer an sich natürlich unkomfortabeler, da gst-launch z.B. keine Parameter / Optionen für die Decoder / Encoder kennt. Allerdings sind die bei GStreamer mitgelieferten Werkzeuge auch eher zum Testen bzw. schneller Abspielen auf der Kommandozeile gedacht denn als "Konkurrenz" zu den "vollwertigen" Playern. = Links = * [http://gstreamer.freedesktop.org/documentation/ Dokumentation] - {en} die offizielle GStreamer Dokumentation * [http://gstreamer.freedesktop.org/apps/ Anwendungsliste] - {en} welche Anwendungen GStreamer nutzen * [http://linux.die.net/man/1/gst-launch-0.10 Manpage] - {en} die Manpage zu gst-launch online und mit farbigen Hervorhebungen [[Diskussion(113056,GStreamer)]] ---- * [:Kategorie/Multimedia:]