3 weeks ago

Open Source Software in einer Freikirche



Wie man als kleine / mittelgroße Gemeinde, mit wenig Platz, Technik einsetzt.

Wenn ich mich so in Gemeinden umsehe, finde ich oft einen großen technischen Aufwand, der zudem einiges an Platz benötigt. Da ist das obligatorische Mischpult und nicht selten mehrere PCs, die getrennt verschiedene Aufgaben (Beamer, Stream, Aufzeichnung, Lichtsteuerung etc.) übernehmen. Als ich Ende 2020 mit der Technik unserer Gemeinde betraut wurde, gab ich sofort als Bedingung an, dass ich Mircro$oft nicht anfassen werde. Ich fing mit einem älteren Quadcore-HP-Laptop mit 8 GB RAM an. Scheinwerfer hatten wir damals noch keine, gestreamt wurde zudem mit Zoom und ich hatte erst mal keine Ahnung und musste mich reinfuchsen. Heute haben wir tatsächlich nur einen (starken) PC, mit einem Arbeitsbildschirm, der 2. Bildschirm ist der „Beamer“, was bei uns jedoch 3 Fernseher (HDMI über einen HDMI-Verteiler) sind. Aufgaben wie Schweinwerfersteuerung, Liedtexte etc. werden komplett remote von weiteren Android-Geräten bzw. einer ESP8266-Bastelei erledigt.

Das Konzept

Bei uns läuft im Grunde alles mit Debian/GNU Linux (stable). Wir benutzen für den Gottesdienst einen leistungsstarken (Tuxedo [„stressfreie“ Hardware für Linux] Intel i9 CPU, 16 GB RAM) PC. Als Desktop habe ich XFCE4 installiert, das man für OpenLP speziell konfigurieren muss.

Der PC ist für:

1) „Beamer“ (bei uns per HDMI -> LAN an drei Monitore, davon wird das Signal für die beiden Monitore vorn per LAN übertragen) für Liedtexte, Filme und Präsentationen.

2) Kamera-Input

3) Bildmischer

4) Ton In- und Output

5) Streamen (ggf. inkl. Zoom)

6) Archivierung / Predigt auf der Homepage

7) Scheinwerfersteuerung

Da nur eine Person am PC sitzen und den steuern kann, benötigt man weitere Geräte zum Steuern. Diese Geräte sind (alte) Handys und Tablets, die meist per App bzw. Webinterface steuern.

1) „Beamer“software

Wir benutzen OpenLP als Software für unsere Monitore. Der PC hat einen Display-Port (DP)- und einen HDMI-Ausgang. Der Monitor am Technik-Tisch ist per DP verbunden, der HDMI-Ausgang geht in eine „Splitter-Box“, die das Signal auf LAN überträgt, was direkt vor den Monitoren wieder in HDMI umgewandelt wird. Zudem geht von dieser Splitter-Box noch ein weiteres HDMI-Kabel zu einem Monitor, den man von der Bühne aus sehen kann. OpenLP benutzt den HDMI-Port als Präsentationsbildschirm. Dank LibreOffice (backports) können wir nahezu alle PowerPoint-Präsentationen öffnen und übertragen. Gelingt das nicht, können wir immer noch einen Windows-Laptop per HDMI anschließen, dessen Signal wir allerdings am OpenLP vorbei auf die Monitore leiten müssen. Dazu später unter 3). OpenLP kann sich (inzwischen wieder) mit CCLI verbinden, allerdings keine Lieder „melden“, die man genutzt hat. Man kann jedoch Liedtexte importieren. Im Grunde nutzen wir OpenLP für (Lied)Texte und zum Aufrufen von Präsentationen. Dabei ist OpenLP eng mit LibreOffice verbandelt. Außerdem spielt OpenLP noch Videos und Töne mittels VLC ab. Die Steuerung von OpenLP übernimmt weitgehend ein Samsung Galaxy Note, auf dem die passende OpenLP-App läuft. Außerdem muss Web-Remote im OpenLP aktiviert sein. Dieses Handy muss im selben LAN sein wie der Linux-PC, der App muss man die IP-Adresse des PCs verraten und so verbindet sie sich. Seit Neuestem haben wir sogar einen eigenen Technik-WLAN-Accesspoint (AP), weil es bei zu vielen Handys während des Gottesdienstes am normalen AP zu Störungen kommen kann (Der Technik-AP läuft mit LibreCMC, die restlichen APs sind bei Freifunk mit angeschlossen, ermöglichen aber auch zusätzlich den Zugang ins Gemeinde-LAN – natürlich passwortgeschützt). OpenLP kann direkt vom PC, aber auch per App (OpenLP, findet man im F-Droid-Archiv, Google Play und auch im Apfelladen) bedient werden. Falls in der Technik Not am Mann ist, kann man ein altes Handy mit App herausgeben. Zusätzlich gibt es noch eine Fernsteuerung. Die Fernsteuerung schaltet nur innerhalb eines Liedes bzw. einer Präsentation hin und her und ist für einen Prediger gedacht, der eben etwas präsentiert. Sie hat einen Akku, der auf 1,5h Betrieb getestet und danach binnen 30min per USB-C-Buchse aufgeladen wurde. Die aktuelle Akkuspannung kann man auch abrufen, wenn die Fernsteuerung eingeschaltet ist. Es ist ein LiPo-Akku, dessen Spannung typischerweise bei 3,25V-3,27V liegt. Zum Laden muss das Gerät jedoch eingeschaltet sein! Wenn der Akku voll ist, liegen 4,14V an.

2) Kamera-Input

Nach längeren Problemen, diversen Experimenten und Schwierigkeiten benutzen wir nun ein Samsung Galaxy S8+, das an einem einfachen, fernsteuerbaren Schwenkarm befestigt ist. Die Originalschrottware auf dem Handy wurde durch ein /e/-OS ersetzt. Das Handy selbst ist per USB3 mit dem PC verbunden und man kann es mittels scrcpy auch fernsteuern. Auf dem Handy läuft OBSDroid, das sich mit OBS verbindet. Außerdem wird per (W)LAN die App ferngesteuert: Heranzoomen, Schärfe, Bildausleuchtung etc. Eine Aufgabe an der Technik ist, das zu managen, aber im Grunde schwenkt man nur die Kamera und optimiert den Zoom etwas nach. Ab und zu wird es unscharf und man muss mit der App etwas „spielen“.

3) Bildmischer

Zum Zusammenmischen des Bildes benutzen wir OBS. Dabei werden die Eingänge von Kamera, den Monitoren, bei Bedarf ein HDMI-In (per USB3) von einem Windows-PC, aber auch der Ton (→ Punkt 4) verarbeitet. Im OBS befindet sich außerdem noch eine „virtuelle Kamera“, die genau das Bild in eine für das Linux-System erkennbare Kamera steckt. So kann etwa Zoom diese virtuelle Kamera benutzen. Will man PowerPoint von einem Windows-PC aus übertragen (kam in den letzten 4 Jahren 1x vor, weil es nicht anders ging), kann man das per HDMI-In über OBS in die virtuelle Kamera „packen“ und diese dann am OpenLP vorbei z. B. per VLC darstellen. Auf diese Weise kann man alles noch aufzeichnen bzw. streamen. OBS wird nicht ferngesteuert, das heißt, an der Stelle ist der PC belegt.

4) Ton In- und Output

Auch hier hatten wir lange Zeit vieles ausprobiert und es gab ständig ein Pfeifen im Ton. Nun haben wir den „alten“ USB-Audio-Adapter wieder ausgegraben, der vor 4 Jahren unter Linux nicht richtig funktionierte. Nun tut er. Und mit ihm verschwand auch das Pfeifen. Gemanagt wird das erst mal mit PulseAudio (Debian-Standard), in dem es einen recht mächtigen Tonmischer gibt, mit dem man z. B. Geräte abstellen kann. Man sieht schon optisch sehr gut, ob man übersteuert oder nicht, und kann auch ohne Kopfhörer recht gut vom Mischpult aus nachregeln. Die Ein- und Ausgänge sind alle analog und nicht digital (per USB) mit dem PC verbunden. Im OBS kann man dann noch eine kleine Verzögerung einbauen, weil die Kamera ein bisschen hinterherhinkt.

5) Streamen

Anfangs haben wir rein über Zoom gestreamt. Dabei griff Zoom das Bild von OBS ab (virtuelle Kamera), und verwendete den PulseAudio-Ton. Das funktioniert theoretisch immer noch, wird aber nicht mehr genutzt.

Später wurde auf einen RaspberryPi4 (4GB) mit einem nginx+rtmp-plugin gestreamt. Hierbei wird der Stream noch zusätzlich in eine HLS-Struktur verpackt. Der Pi4 ist lokal im Haus und im selben LAN, aber ist eben auch von außen (früher dyndns) erreichbar (gewesen). Von diesem Pi4 aus wird der Gottesdienst zum „Krabbelraum“ (Libreelec auf einem Pi3 mit Analog-Hifiberry-Hat) für Eltern mit Kleinkindern und Babys übertragen. Außerdem startet automatisch jeden Sonntag um 10:28 Uhr eine Übertragung mittels ffmpeg vom Pi4 zu unserer Peertube-Instanz, die auf einem angemieteten Hetzner–vserver (arm64, Debian/Gnu Linux) läuft, allerdings muss dazu das Streamen von OBS aus zum Pi4 schon gestartet sein.

6) Archivierung und Predigtupload

Am PC wird die Predigt erst mal per OBS aufgezeichnet. Das ist im Grunde eine Kopie des Streams auf der Festplatte. Nach der Predigt kann man ein Pythonscript im Terminal starten, das die neueste Aufzeichnung findet, den Namen des Predigers und das Thema abfragt. Daraus wird dann eine neue Datei gebastelt und nachdem die als richtig befunden wurde, wird daraus ein MP3 erstellt, das dann mittels pyocclient auf die Nextcloud auf den in 5) schon genannten Hetzner-Server hochlädt. Außerdem wird von dem Pythonscript ein Python-CGI-Script auf dem Server ausgeführt, das eine neue Predigtliste erstellt und außerdem noch eine Podcast-XML-Datei erstellt bzw. diese aktualisiert. Diese Datei greift das WordPress-Podcast-Plug-in auf und generiert so eine Predigtliste. Als letzten Punkt wandelt das Script den Film noch in h.265 um und schiebt es auf die große Festplatte des Pi4 – zusammen mit dem MP3. Dort liegt das Archiv, das man ebenfalls per Nextcloud (aber auf dem Pi4) erreichen kann. Da der letzte Punkt sehr lange braucht, wird der PC automatisch danach heruntergefahren.

7) Scheinwerfersteuerung

Wir haben eine DMX-Leitung zu sieben Scheinwerfern, die die Bühne mit je sechs Kanälen beleuchten. Diese Scheinwerfer sind auch baugleich, was es relativ einfach macht. Die Ansteuerung erfolgt über ein USB->DMX-Gerät, das linuxtauglich ist. Als Steuersoftware benutzen wir OLA (Debian Paket). Da läuft ein olad im Hintergrund, den man ansteuern kann und über den so die Scheinwerfer angesteuert werden. Dazu wurden ein paar Pythonscripte gebastelt, die im Grunde letztlich den String zum olad generieren und abschicken. Mittels des GUI kann man jeden Scheinwerfer einzeln einstellen und diese Einstellungen abspeichern. Dabei muss man im Scheinwerfer-Konfigurations-Verzeichnis erst mal Textdateien anlegen und beschreiben, welcher Scheinwerfer welchen Kanal belegt und wie die Grundeinstellungen für die einzelnen Kanäle (rot, grün, blau, weiß, bernstein, uv) innerhalb des Scheinwerfers sind. Mit dem CGI-Script kann man die Scheinwerfer mit einem alten Tablet oder Handy ansteuern, auch gruppiert, z. B. für „Band“ oder „Pult“. Allerdings gibt es beim Ansteuern immer wieder Störungen (auch unter Windows), so dass das CGI-Script den String mehrmals abschicken muss, um das störungsfrei zu übertragen. Ab und an hakt auch der olad, den man ggf. Neustarten muss, das ist aber eher selten.

Quellen:
Ich habe mal https://efg-ober-ramstadt.de/mastodon/technikkram/ versuchsweise gemarkdownt und ein klein wenig ergänzt.


GNU/Linux.ch ist ein Community-Projekt. Bei uns kannst du nicht nur mitlesen, sondern auch selbst aktiv werden. Wir freuen uns, wenn du mit uns über die Artikel in unseren Chat-Gruppen oder im Fediverse diskutierst. Auch du selbst kannst Autor werden. Reiche uns deinen Artikelvorschlag über das Formular auf unserer Webseite ein.
Gesamten Artikel lesen

© Varient 2024. All rights are reserved