Revision 15 vom 2010-07-05 10:41:28

Nachricht löschen
Locked History Actions

Dokumentation/Flumotion

Flumotion

{i} Diese Seite ist ist Teil der Technischen Dokumentation von Radio Helsinki. Alle weiteren Seiten der Dokumentation:

{i} Das hier beschriebene ist derzeit noch nicht aktiv und wird erst in den nächsten Wochen umgesetzt. Zu diesem Zeitpunkt stellt es also lediglich den geplanten Aufbau dar.

Allgemeines

Flumotion ist eine in Python geschriebene Open Source Streaming Plattform die auf GStreamer aufbaut. Im Wesentlichen bildet Flumotion ein Framework um GStreamer Pipelines zu erstellen die dann die gewünschte Funktion erfüllen. Ausserdem bietet Flumotion eine Möglichkeit die einzelenen Komponenten des Systems über mehrere Server zu verteilen und zu steuern.

Aufbau des Systems

Das Flumotion System bei Radio Helsinki besteht aus 3 Flows. Einer kümmert sich um das Einlesen der Audio Daten und bietet diese per gdp an. Ein weiterer transkodiert und speichert das Audiomaterial für das Archiv. Der dritte Flow generiert einen Live Stream in verschiednen Formaten und Bitraten. Im folgenden werden die Flows und deren Aufteilung in Manager, Worker und Components erläutert.

Diagramm

Manager und Worker

[ANHÄNGEN]

Um dieses Bild zu verändern kann die SVG Version verwendet werden.

rawinput Flow

[ANHÄNGEN]

Um dieses Bild zu verändern kann die SVG Version verwendet werden.

Archiv Flow

[ANHÄNGEN]

Um dieses Bild zu verändern kann die SVG Version verwendet werden.

Stream Flow

stream-flow.png

Um dieses Bild zu verändern kann die SVG Version verwendet werden.

Server

streamer.helsinki.at

Auf diesem Rechner (in den obigen Diagrammen als blau dargestellt) laufen alle Manager der 3 verwendeten Flows. Weiters wird auf diesem Rechner das Audiosignal mittels eines Line-In Eingangs eingelesen. Ausserdem beherbergt dieser Server auch noch das 8 Tage umfassende Flac Archiv und das gesetzlich vorgeschriebene Archiv in Ogg-Vorbis mit 250 kBit. Zu guter letzt wird auf diesem Rechner noch der Ogg Feed für den Live Stream generiert. Sowohl der archiv Flow als auch der stream Flow bekommen die Audiodaten per gdp vom rawinput Flow. Über dieses Interface können künftig auch noch andere Flows auf den Raw Audio Stream zugreifen. Die folgenden XML Dateien bilden die Konfiguration der verschiedenen Manager und Worker auf diesem Server.

stream.helsinki.at

Auf diesem Server (in den obigen Diagrammen als rot dargestellt) bei mur.at wird das in Ogg-Vorbis mit 160 kBit eingespeiste Signal in verschiedene Formate und Bitraten transkodiert und per HTTP angeboten. Die folgenden XML Dateien bilden die Konfiguration der verschiedenen Worker auf diesem Server.

Wartung

Worker und Manager

Für das starten und stoppen der Manager und Worker ist das Initscript /etc/init.d/flumotion zuständig. Wird dieses (z.b. beim boot) mit dem einzigen Parameter start aufgerufen wir zunächst aus der Datei /etc/default/flumotion ausgelesen ob und wenn ja welche Manager und Worker zu starten sind. Sollten die beiden Variablen MANAGER_AUTOSTART und WORKER_AUTOSTART leer sein wird versucht alle Manager und alle Worker zu starten. Eine Liste der konfigurierten Manager und Worker kann mit dem Kommando # sudo /etc/init.d/flumotion list ausgegeben werden. Das Komamndo # sudo /etc/init.d/flumotion status zeigt die laufenden und erkannten aber nicht laufenden Manager und Worker an. Um manuell einen Worker oder Manager zu starten kann das Kommando # sudo /etc/init.d/flumotion start worker <worker-name> bzw. # sudo /etc/init.d/flumotion start manager <manager-name> verwendet werden. Selbige Syntax kann auch in mit dem Parameter stop und restart verwendet werden umd die entsprechenden Operationen auf den Manager oder Worker auszuführen.

Beispiele

  • Alle Manager und Worker die beim Booten gestartet wurden neustarten (eigentlich werden alle laufenden gestoppt und die neu gestartet die auch beim booten gestartet werden:
    • # /etc/init.d/flumotion restart
  • Nur einen bestimmten Manager neu starten:
    • # /etc/init.d/flumotion restart manager archiv
  • Nur einen bestimmten Worker beenden:
    • # /etc/init.d/flumotion stop worker archiv-flac
  • alle Manager und Worker beenden
    • # /etc/init.d/flumotion stop


CategoryDocumentation