Prof. Dr. Detlef Stern

Ein Sendemast für die Instant-Online-Lehre

Am 11. März 20 frohlockte ich nach der Meldung, die Vorlesungen würden erst am 20. April beginnen, was ich denn mit den unerwarteten 4 Wochen freier Zeiteinteilung anfangen würde. Am 12. März gab es dann, ebenso unerwartet, seitens meiner Hochschulleitung die Ansage, doch bitte ab dem 16. März auf eine reine Online-Lehre umzusteigen. Nur der Präsenzbetrieb sei ausgesetzt. Also wurde das Semester doch nicht um die 4 Wochen verschoben.

Schon in den Wochen vorher war klar, dass die bisher zu nutzenden Systeme dem Ansturm nicht standhalten würden. Ab der zweiten Semesterwoche, also ab dem 23. März, sollte ein Ersatzsystem hochschulweit verfügbar sein. Deshalb könne der Beginn der eigenen Lehrveranstaltungen auch ein, zwei Wochen später beginnen, hieß es. Man möge die Zeit bis dahin nutzen, die Lehrveranstaltungen ggf. neu zu konzipieren.

Zum Glück sind viele meiner Lehrveranstaltungen sowieso auf eine sehr aktive Teilnahme aller Beteiligten angelehnt. Bei Projektstudien und Seminaren sowieso, auch beim Agilen Studieren. Bei der neuen Lehrveranstaltung im Master hatte ich schon vorher als Prüfungsform das Erstellen eines „Lernportfolios“ geplant. Bleibt eine Veranstaltung übrig, die ich als klassische Vorlesung abhalte.

Aber halt! in der ersten Woche stelle ich in allen Lehrveranstaltungen das Konzept vorlesungsartig vor. Da geht es zwar primär um Transpost von Informationen, aber auch um Interaktivität. Etwa die Gruppeneinteilung beim Agilen Studieren und in Projektstudien. Da hilft mir keine zusätzliche Woche, um die Einführungstermine neu zu konzipieren. Ich brauche eine Art Sendestation und etwas zur Interaktivität.

Ein Chat-System ist verfügbar. Also können mir die Teilnehmer zur Not darüber antworten. Bleibt die Sendestation. Natürlich könnte ich etwas aufzeichnen und irgendwo hochladen, damit sich jede/r das ansehen kann und wir dann ausschließlich per Chat kommunizieren. Wer das mal mit 50 Personen gleichzeitig gemacht hat, der lässt von dieser Idee ganz schnell die Finger.

Wie arbeiten denn (Game-) Streamingplattformen? Dort schauen sich viele gleichzeitig an, was manchmal nur eine einzige Person am/auf dem Bildschirm macht. Wie bei einer Vorlesung. Mich dagegen interessiert besonders die Software, mit der man seine Aktivitäten erfassen und an die Streamingplattform zur Verteilung senden kann.

Die Software Open Broadcaster Software (kurz OBS) ist Open Source und auch für Linux verfügbar. Es gibt auch Versionen für Windows und macOS. Perfekt!

Verschiedene Streamingplattformen sind voreingestellt. Leider kann/darf/möchte ich nur hochschulöffentlich streamen. Auch, um niemanden zu zwingen, personenbezogene Daten an die Streamingplattformen zu geben. Man kann in OBS aber auch einen eigenen Server angeben. Dabei wird das Real-Time Messaging Protocol (RTMP) verwendet, von dem ich vorher noch nie etwas gehört habe. Kein Wunder, es wurde ursprünglich für Flash-Anwendungen entwickelt.

Einen speziellen Server für RTMP scheint es nicht zu geben, nur ein Plugin für nginx. Dafür gibt es einen Client zum Abspielen des Streams: der VLC media player. Diesen gibt es für Linux, Windows, macOS, Android, iOS. Perfekt!

Den Rest des Wochenendes verbrachte ich damit, den RTMP-Service aufzusetzen. Problematisch ist, dass ich keine einfache Möglichkeit fand, mich (und später ggf. Kollegen) zu authentifizieren. Damit hätten auch unerwünschte Personen den Server als Sendestation missbrauchen können. Prototypisch behelfe ich mich mit einem SSH Tunnel und Konfiguration des RTMP-Plugins, dass nur Sender akzeptiert werden, die vom Server direkt senden.

Damit die Identität dieses Servers verschleiert wird und ich bei zu hoher Anzahl der Teilnehmer ggf. weitere Server hinzufügen kann, habe ich den RTMP-Service aufgeteilt. Zum einen der beschriebene Server, der den Stream entgegen nimmt (“Studio&dbquo;). Dieser leitet den Stream an eine oder mehrere Server (“Antenne„) weiter. Mit diesem verbinden sich die Teilnehmer, kennen als den Studio-Server nicht. Beide Server laufen als Docker-Image. Deren Dockerfile ist aktuell gleich:

FROM ubuntu:bionic
RUN apt -y update; \
    apt -y install nginx libnginx-mod-rtmp; \
COPY nginx.conf /etc/nginx/nginx.conf

# forward request and error logs to docker log collector
RUN ln -sf /dev/stdout /var/log/nginx/access.log; \
    ln -sf /dev/stderr /var/log/nginx/error.log
EXPOSE 1935
CMD ["nginx", "-g", "daemon off;"]

Der Studio-Server ist folgendermaßen konfiguriert:

rtmp {
  server {
    listen 1935;
    chunk_size 4096;

    application lecture {
      live on;
      record off;
      allow publish 127.0.0.1;
      allow publish 172.17.0.0/24;
      deny publish all;
      deny play all;
      push rtmp://antenna-1/lecture live=1;
      push rtmp://antenna-2/lecture live=1;
    }
  }
}

Das Erlauben der Adressen 172.17.0.0/24 ist dem Deployment unter Docker geschuldet, "antenna-1" und "antenna-2" stehen für meine beiden Antennen-Server, bei denen sich die Teilnehmer den Stream abholen. Diese sind wie folgt konfiguriert:

rtmp {
  server {
    listen 1935;
    chunk_size 4096;

    application lecture {
      live on;
      record off;

      allow publish studio_ip;
      deny publish all;
    }
  }
}

"studio_ip" ist hierbei die IP-Adresse des Studio-Servers.

Fertig!

Im Ergebnis konnte ich in der ersten Semesterwoche mit meinen Lehrveranstaltungen starten. Das Arbeiten mit OBS ist sehr komfortabel. Neben dem Streaming kann auch alles lokal aufgezeichnet, komprimiert und auf einen Dateiserver geladen werden, damit sich die Teilnehmer die Veranstaltung auch später noch ansehen können. Nicht nur beim Komprimieren hilft das Tool FFmpeg. Mit etwas Geschick lässt sich damit auch ein Testbild realisieren, dass über einen eigenen Stream permanent gesendet wird. So können Teilnehmer schon vorab prüfen, ob bei Ihnen VLC funktioniert.

Natürlich hat es mit der Ersatzlösung dann doch länger gedauert. Aus der geplanten Woche sind dann mehr als zwei Wochen geworden. Der Betreiber hat sein System noch immer nicht richtig im Griff, so dass meine eigene Sendelösung ein Backup bleibt. Man weiß ja nie, was in diesen Zeiten so alles passiert. Den ganzen Features von OBS trauere ich bei Nutzung der Ersatzlösung immer noch etwas nach.

Übrigens, da ich bei der einen Lehrveranstaltung die (interaktive) Vorlesung als Lehrform beibehielt, ergaben sich inzwischen weitere Ideen für Online-Lehrformen, die ich so bisher nicht gefunden habe. Innovation durch Beschränkung. Informationen dazu gibt es, wenn sich die neue Form wirklich bewährt hat.