[[Vorlage(Getestet, jaunty, hardy)]] {{{#!vorlage Wissen [:Pakete_installieren: Installation von Programmen] [:Terminal: Ein Terminal öffnen] [:Programme_starten: Ein Programm starten] }}} [[Inhaltsverzeichnis(1)]] [[Bild(./gstreamer_logo.png, align=left)]] [http://gstreamer.freedesktop.org GStreamer] {en} ist ein Multimedia-Framework, welches das Abspielen, Kodieren, Dekodieren etc. von Audio- und Videodateien ermöglicht. Anders als der Name vermuten lässt, ist GStreamer Desktop-unabhängig. Zwar ist GStreamer seit [:GNOME:] 2.2 ein fester Bestandteil dieser Desktop-Umgebung, funktioniert aber auch genauso problemlos mit anderen Desktop-Umgebungen wie [:KDE:] oder [:Xfce:]. Viele Audio- und Videoplayer können die Fähigkeiten von Gstreamer nutzen, so z.B. [:Totem:], [:Rhythmbox:] und [:Banshee:], oder setzen dieses statt eigener Wiedergabe-Routinen ein. Seit Ubuntu 6.06 [:Dapper_Drake:] wird unter Ubuntu das GStreamer Framework in der Version 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 Plugins realisiert und sind somit grundsätzlich (beliebig) erweiterbar. Die Blöcke sind über so genannte Weiterleitungen (Pipelines) verbunden. = Installation = GStreamer ist in der Standardinstallation von Ubuntu enthalten, kann ansonsten aber über das Paket {{{#!vorlage Paketinstallation libgstreamer0.10-0 }}} installiert werden [1]. Weiterhin sind noch die Pakete {{{#!vorlage Paketinstallation gstreamer0.10-tools gnome-media, enthält '''`gstreamer-properties`''' }}} sinnvoll. Um Multimedia Dateien abzuspielen bzw. zu kodieren, benötigt man noch ein entsprechendes Plugin, welches den Decoder / Encoder enthält. Die GStreamer Plugins sind im Artikel [:Codecs:] beschrieben. Codecs für GStreamer, die lizenzrechtlich geschützt sind, können im [https://shop.fluendo.com/ Fluendo Webstore] {en} gekauft und heruntergeladen werden. = 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 / Plugins für GStreamer installiert sind, so ruft man im Terminal [2] folgenden Befehl auf: {{{#!vorlage Befehl gst-inspect-0.10 }}} Je nach Anzahl der installierten Plugins kann die Ausgabe unter Umständen sehr lang sein. Daher bietet sich an, die Ausgabe durch [:Shell/grep:grep] filtern zu lassen, z.B.: {{{#!vorlage 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 Weiterleitungen 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]: {{{#!vorlage 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 des 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: {{{#!vorlage 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 im 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 Weiterleitungen können dabei (fast) beliebig komplex sein. Einige Beispiele bietet hier auch die [:man:Manpage] zu gst-launch. Im Vergleich zu "vollwertigen" Audio- / Videoplayern etc. ist GStreamer an sich unkomfortabler, 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. schnellen Abspielen auf der Kommandozeile gedacht denn als "Konkurrenz" zu den "vollwertigen" Playern. Außerdem kann gst-launch gut in (Shell-) Skripten eingesetzt werden. [[Bild(GStreamer/totem_mit_comiz_manipulation.png, 200, align=right)]] = Konfiguration = Wenn man möchte, dass das Video auch dann angezeigt wird, wenn es zum Beispiel von Compiz umgeleitet wird, muss man den '''`gconf-editor`''' starten und den Schlüssel ''"/system/gstreamer/0.10/default/videosink"'' in ''"ximagesink"'' ändern. Dann werden Videos, die von Totem oder anderen Playern, die GStreamer benutzen, umgeleitet, sodass man sie auch sehen kann, wenn das Fenster manipuliert wird. = 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 * [https://shop.fluendo.com/ Fluendo Webstore] {en} - kommerzielle Codecs für GStreamer kaufen * [http://oshelpdesk.org/?p=693 Audiostreams aufnehmen] {de} mit Hilfe von GStreamer und [:PulseAudio:] ---- # tag: Multimedia, Video