Howto: streamstreik

Aus Fridays for Future Wiki

Dieser Artikel soll eine kurze Einführung in das Veranstalten eines "Streamstreiks" sein, also einen Livestream anstelle eines normalen Streiks. Dabei werden alle Menschen, die sonst einen Redebeitrag über einen Lauti/PA-Anlage gehalten hätten in den Livestream zugeschaltet; zusätzlich können Zuschauer*innen im Chat Fragen an die Redner*innen stellen. Die Idee dazu ist in der OG München während der Coronakrise entstanden; dieses Howto stützt sich vor allem auf die dabei gemachten Erfahrungen. Als Beispiel hier der erste Streamstreik der OG München: invidio.us.

Dieser Artikel konzentriert sich vor allem auf die technische Seite des Livestreams, da Dinge wie Werbung auf Social Media, Redner*innen anfragen etc. weitestgehend zu normalen Streiks identisch sind. Achtet allerdings beim Programm darauf, dass sich ein Livestream anders anfühlt als eine Demo — i.e. eure Speaker werden wahrscheinlich weniger klassische Reden halten als das ihr sie interviewt; außerdem tendieren Speaker in Streamstreiks dazu, deutlich länger und freier zu reden als vor einer Menschenmenge.

Vorüberlegungen

Das hier vorgestellte Setup wurde so erstellt, dass:

  • Alle Menschen, die an der Orga beteiligt sind oder einen Redebeitrag haben, Zuhause bleiben können
  • Soweit wie möglich funktioniert alles mit Technik, die sowieso die meisten Menschen daheim rumliegen haben

Daraus ergeben sich als Korollare:

  • Audio- und Videoqualität sind nicht unbedingt besonders gut
  • Normale räumliche Beschränkungen (Anreise, etc.) für Redner*innen sind aufgehoben — achtet aber bei internationalen Gästen auf die Zeitverschiebung!

Grundlegendes (Münchner) Setup

(im folgenden ist wir=Münchner Livestream-team)

Rollenverteilung

Aufgeteilt sind die Rollen bei uns wie folgt:

  • Moderation, Speaker, etc., die bei einem normalen Streik z.B. auf dem Lauti stehen und reden würden
  • Stream Angel: ein Mensch, über dessen Rechner der Livestream läuft
  • (optional) Restream Angel: ein Mensch, der für das restreaming auf mehrere Plattformen zuständig ist
  • Signal Angel: Menschen, auf die einzelnen Plattformen aufpassen, während dem Livestream den Chat mitlesen und dort moderieren sowie Fragen der Zuschauer*innen bei Bedarf an die Moderation weiterleiten (z.B. über Telegram)
  • Zuschauer*innen!

Software

jitsi

Damit Moderation und Speaker miteinander Reden können, benutzen wir jitsi meet. Eine Liste öffentlicher Server findet sich z.B. hier; fff Deutschland betreibt ebenfalls eine Instanz, siehe hier. Evtl. betreibt auch euer lokaler Chaostreff, ccc-Erfa oder Freifunk eine Instanz, oder ihr setzt euch selbst eine auf. Achtet bitte auf die Nutzungsbedingungen eurer gewählten Instanz, und schaut nach ob es evtl. eine Liste mit scheduled downtime gibt. Da es zurzeit (Anfang April 2020) sehr viel mehr Menschen Videokonferenzen benutzen als sonst üblich kann es gut sein, dass einige Server überlastet sind — checkt also am besten auch da im Vorraus, ob der Server richtig funktioniert.

Zusätzlich zum Webinterface von jitsi (das leider nur mit Chromium oder Chrome wirklich stabil funktioniert) gibt es noch Apps für iOS und Android sowie eine Desktop-App, die ebenfalls hergenommen werden können.

obs studio

Für den Livestream an sich benutzen wir obs studio. Der Stream Angel ist dann zusammen mit Moderation und Speakern in der jitsi-Konferenz, filmt mittels obs das Browserfenster ab und streamt das Ergebnis live. Falls ihr nur auf einer Plattform (z.B. nur YouTube) gleichzeitig streamen wollt reicht das bereits; gebt einfach in obs Plattform und streamkey an.

Beachtet bitte, dass ein Livestream durchaus einiges an Rechenleistung fressen kann, besonders wenn keine Hardwarebeschleunigung verfügbar ist

restreamen mit nginx rtmp (optional)

Leider kann obs nur eine Plattform gleichzeitig bedienen. Um trotzdem gleichzeitig z.B. auf YouTube und Twitter zu streamen benutzen wir den Webserver nginx zusammen mit dem nginx-rtmp-module; dafür streamt obs dann einen rtmp-Stream (in obs "Custom Stream") an den nginx-Server, den dieser wiederum an mehrere Plattformen restreamen kann.

Countdown

Hier ein grober Plan, was wann ungefähr gemacht wird (da oft auch mal was schiefgeht hilft es aber, wenn sich alle zumindest etwas auskennen — und die angegeben Zeiten verdoppeln ist auch keine besonders schlechte Idee …):

  • Ein paar Tage bis eine Woche vorher:
    • Zeitpunkt festlegen, Stream ankündigen
    • Setup testen
  • ein Tag vorher:
    • Vorbesprechung mit Technik und Moderation
    • offene Fragen klären, insbesondere falls irgendwer (oder ihr alle) das Ganze zum ersten Mal macht)
  • etwa ein Stunde vorher: "Aufbau"
    • der Stream Angel erstellt die jitsi-Konferenz; der Name sollte nicht zu leicht zu erraten sein (am besten hängen ein paar Zufallszahlen hinten dran) und der Raum passwortgeschützt. Da jitsi Räume löscht, wenn niemand mehr drin ist, kann dies nicht im Vorraus erledigt werden!
    • der Stream Angel schickt Link und Passwort des jitsi-Raums an die Moderation, die diesen an die Speaker weiterleitet
    • Stream Angel macht obs auf, fügt eine Quelle zum abfilmen des Browserfensters (und gegebenenfalls weitere für Graphiken oder zum Abdecken von Bedienelementen) hinzu, und achtet darauf, das als Audioquelle nur Desktop-Audio und nicht etwas sein/ihr Mikrophon an ist. Zusätzlich eine zweite Szene ohne Audioinput und z.B. nur eurem Logo im Bild als "Platzhalter", z.B. vor oder nach dem Stream
    • die Signal Angel erstellen jeweils einen Livestream auf ihrer Plattform und leiten den Streamkey an den Restream Angel weiter, der sie in nginx einträgt (alternativ: nur ein streamkey, der direkt an den Stream Angel geleitet wird)
    • der Restream Angel sagt dem Stream Angel, wohin der Stream geschickt werden soll
    • der Stream Angel macht die Webentwicklerkonsole auf der jitsi-Konferenz auf und macht bei Bedarf etwaige Bedienelemente unsichtbar, damit diese nicht im Stream sichtbar sind. Während dem Stream sind diese eigentlich unnötig, da jitsi automatisch die Speaker Priority setzt, je nachdem wer gerade redet, und damit auch das Bild umschaltet
  • etwa eine halbe Stunde vorher
    • alle Speaker sind inzwischen auch in der videoTK anwesend; jetzt ist noch Zeit um den Kamerawinkel anzupassen oder auf Audiorückkopplungen zu testen
    • Moderation erklärt den Ablauf
    • Stream Angel startet stream an nginx
    • Irgendwas ist vorher vermutlich schiefgegangen, jetzt noch Zeit um nicht in Panik zu verfallen und alles zu fixen!
  • Ein paar Minuten vor dem angekündigtem Startpunkt des Streams
    • Restream und Signal Angel starten die Livestreams auf die einzelnen Plattformen
    • Noch ein letztes Mal in Telegram/Whatsapp-Gruppen an den Livestream erinnern, Link mitschicken
    • Menschen fangen an den Stream einzuschalten
    • Stream Angel schaltet zum angekündigtem Zeitpunkt die Szene um, damit ist die Konferenz live und die Moderation kann die Zuschauer*innen begrüßen
  • Während des Streams
    • Signal Angel lesen Chats mit, moderieren dort, leiten Fragen an Moderation weiter, die sie dann im Stream dem/der Speaker*in stellen können
    • Stream Angel passt auf, das der Stream noch läuft und startet diesen zur Not neu
    • Der Stream Angel ist außerdem als Einzige*r dazu in der Lage, in Echtzeit den Stream zu sehen (alle anderen haben ein paar Sekunden bis Minuten Verzögerung), und kann gleichzeitig in der jitsi-Konferenz reden, ohne das er/sie im Stream zu hören ist — ganz nützlich, falls mal jemensch ne Kamera falschrum hält oder so …
  • Nach dem Stream
    • Reflexion: was hat gut funktioniert, was nicht? Wie könnten Dinge noch verbessert werden?
    • Auf YouTube Überhang an Anfang und Ende wegschneiden
    • Evtl. ein Highlight-Video zusammenschneiden (z.B. für Insta, das leider keine Streams annehmen will, die nicht aus der Insta-App heraus gemacht werden)