Wie man eine Fraktionssitzung streamt

Am 18.9.2011 passierte etwas, das niemand von uns wirklich erwartet hat, die Piraten wurden in das Abgeordnetenhaus von Berlin gewählt und das gleich mit 15 Abgeordneten, also der kompletten Landesliste. Natürlich sollten die ersten Fraktionssitzungen auch gestreamt werden, bei der zu erwarteten Zuhöhrerzahl keine leichte Aufgabe.

Da die erste Fraktionssitzung recht spontan war, blieb leider keine Zeit für eine ordentlich Vorbereitung, der Stream kam erst von @rka’s iPhone auf meinen Icecast, dieser brach dann zusammen, dann probierte ich livestream.com, dass ging, aber leider nur für wenige Zuschauer, also war das Ergebnis eher unbefriedigend.

Für die zweite Fraktionssitzung habe ich dann die Idee gehabt den Stream auf mehrere Relay-Server zu packen, die dann, möglichst intelligent, von den Clients angesprochen werden. Die Lösung sieht wie folgt aus:

  • Ich streame aus dem AGH auf den Master Server der auf einem vServer bei server4you liegt.
  • An diesem Masterserver hängen 13 Relayserver, die alle von Freiwilligen aus den Masse der Piraten betrieben werden.
  • Die Relayserver nehmen alle Streams des Masterservers an und relayen sie, dass heißt sie melden sich am Icecast-Master an und kriegen als Relay priorisiert den Stream
  • Ein Django-Addon läuft auf dem Server der Fraktion, natürlich in einem Django und wird mit allen Servern gefüttert. Bei der Installation ist zu beachten, dass beim aktuellen Download Package eine __init__.py Datei fehlt und zwar in icecast_balancer/management, ich danke @andyen für seine Hilfe.
  • Das Addon fragt jede Minute über einen Cronjob die Icecast Relays ab, auf diesen liegt im Icecast Webroot eine xsl Datei, die anzeigt wie viele freie Slots der Stream noch hat.
  • Der Django Server verteilt dann über ein HTTP 302 (Redirect) die Clients auf die Server die am meisten freie Slots haben und beachtet dabei auch über GeoIP den Standort der Clients und der Server.
  • Auf dem Server der Piratenfraktion liegt eine .m3u Datei, die einfach nur den Link zum Icecast Balancer enthält. Dies ist einfach nur gemacht um einen leicht zu merkenden Link zu haben, der sich nicht ändert.

Damit können wir im Moment, dank der großartigen Hilfe der Relayserver-Betreiber, etwa 2.000 Leute mit einen Audiostream versorgen. Nächster Halt ist dann die Unterstützung von Video.

Update: Da die Frage nach der Audiotechnik kam: Ich kriege den Ton direkt aus einem Mischpult des Videostreams, der Ton wird von der Diskussionsanlage des AGHs abgenommen, dafür gibt es einen Presseausgang. Die Diskussionsanlage besteht aus Richtmikrofonen mit einem Schalter der sie anschaltet, es geht immer nur ein Mikrofon an.

Der Server ist für den Masterserver ein vServer von server4you.de die Relays sind wild gemischt.

Bei Fragen ruhig melden.

One Response to “Wie man eine Fraktionssitzung streamt”

  1. […] Streaming der Fraktionssitzung http://blog.brechler-web.de/?p=309 […]

Was denkst du?