GStreamer

GStreamer

GStreamer ist eine besonders flexible Sammlung von Plugins, die Audio und Video Daten verarbeitet, oder anders gesagt ein Multimedia Framework. In sogenannten Pipelines können je nach Aufgabenstellung entsprechende Plugins hintereinandergereiht werden. So können beispielsweise Dateien gelesen, transcodiert und über Multicast Sockets gestreamt oder auf lokale Ausgabegeräte geleitet werden.

GStreamer ist eine native Bibliothek, die auf Standard Betriebssystemen wie Linux, OS-X, Windows wie auch auf Mobile OS’ wie Android, iOS oder gar Symbian portiert wird.
Es existieren verschiedene Anbindungen aus verschiedenen Programmiersprachen (C, Python, Java, etc.). Zudem wird es von diversen grafischen  Clientprogrammen verwendet. Praktisch ist auch die Kommandozeilenbedienung (gst-launch), weil sich damit Pipelines auf Kommandozeile ausprobieren lassen. Hilfe zu jedem Plugin ist über den Kommandozeilenbefehlt gst-inspect zu kriegen.

 GStreamer-Java

GStreamer-Java ist ein Projekt, das GStreamer aus Java anbindet. Damit lassen sich Java basierte Anwendungen im Bereich Multimedia realisieren.

Als wir mit dieser Aufgabe konfrontiert waren, haben wir Versuche mit anderen Libraries oder Projekten, darunter auch das Java Media Framework (JMF) gemacht. Gerade JMF ist aber unausgereift, buggy und eigentlich tot! Andere waren zu sehr für eine spezielle Aufgabe ausgerichtet (z.B. Jitsi, für Telefonie).

Mit GStreamer und der Java Anbindung wurden wir glücklich! Wir konnten die erste Aufgabe im Bereich Telefonie, wo diverse Codecs gefragt sind, ebenso realisieren, wie Musik und gar Video (Multimedia) Streaming im Unterhaltungsbereich.