Aus Raspberry Pi Geek 09/2025

Webcam-Stream per RasPi ins Netz stellen

© Piotr Adamowicz / 123RF.com

Aus der Ferne

Martin Mohr

Den Stream einer Webcam via RasPi ins Internet stellen? Eine der leichtesten Übungen, könnte man meinen. Weit gefehlt, denn die Hürden sind tückisch.

Es ist kein großes Geheimnis, dass es rund um den Raspberry Pi immer wieder neue, tolle Projekte gibt und dafür andere in der Versenkung verschwinden. So verwundert es nicht, dass auch die Anleitungen im Internet oft veraltet sind. Für ein Azubi-Projekt sollte der Raspberry Pi einen Kamera-Stream an einen zentralen Server senden, von wo aus er sich über einen Webbrowser abrufen lässt.

Das klingt erst einmal recht simpel. Eine Suche im Netz förderte viele Treffer zu diesem Thema zutage. Ohne zu sehr ins Detail zu gehen, kann man sagen, dass sich kaum eine der Anleitungen zum Nachbau eignet. Die Ursache liegt häufig in nicht mehr vorhandenen Bibliotheken oder Programmen. Nicht selten wurden diese schon seit Jahren nicht mehr aktualisiert und funktionieren nicht mehr. Daher hat sich der Autor des Artikels des Themas angenommen und eine brauchbare Anleitung verfasst.

Das Setup

Die Basis für das Projekt bildet ein RasPi 4 unter der 64-Bit-Version des aktuellen Raspberry Pi OS. An den CAMERA-Port des RasPi schließen wir eine preiswerte RasPi-Kamera [1] an. Beim Verbinden des Flachbandkabels mit der Platine ist etwas Fingerspitzengefühl gefragt. Zuerst gilt es, den Kabelverbinder auf dem RasPi zu entriegeln, danach schieben Sie die Leitung ein und schließen die Verriegelung wieder.

Achten Sie bei der Montage darauf, dass sich die Kontakte der Leitung auf der richtigen Seite befinden. Die Verrieglung ist recht filigran, daher sollten Sie hier sehr vorsichtig zu Werke gehen. Ein Blick von oben in den Verbinder verschafft Klarheit, wie herum Sie die Leitung legen müssen. Die Kamera selbst ist über einen Steckverbinder mit der kleinen Platine verbunden (Abbildung 1). Nach der Montage des Moduls booten Sie den RasPi und starten einen ersten Hardwaretest.

Abbildung 1: Die Kamera auf der Trägerplatine. (C) AZ Delivery

Abbildung 1: Die Kamera auf der Trägerplatine. (C) AZ Delivery

Kameratest

Raspberry Pi OS bringt bereits die gesamte nötige Software zum Verwenden der Kamera mit, die Namen aller einschlägigen Programme beginnen mit rpicam-. Um ein Bild aufzunehmen, verwenden Sie das Kommando rpicam-jpeg -o test.jpg. Der Parameter -o gibt dabei an, in welcher Datei Sie das Bild speichern möchten. Das Programm Rpicam-jpeg verfügt über weitere, nützliche Parameter. Eine Übersicht dazu erhalten Sie mit rpicam-jpeg -h. Das Testbild betrachten Sie mit dem Kommando xdg-open test.jpg.

Zur Aufnahme von Videos verwenden Sie das Programm Rpicam-vid. Es hat eine Vielzahl von Einstellungsmöglichkeiten, die Sie sich am besten in der Online-Hilfe (-h) ansehen. In der Grundeinstellung speichert die Software die Videos im Format H.264. Um einen anderen Codec zu verwenden, nutzen Sie die Option --codec. Für einen ersten Test der Videoaufnahme tippen Sie rpicam-vid -t 10s -o test.h264. Damit speichert das Programm ein zehn Sekunden langes Video in der Datei test.h264. Das Abspielen des Clips starten Sie mit dem Aufruf ffplay test.h264. Da Ffplay eigentlich dazu dient, Streams abzuspielen, beendet es sich nicht automatisch; das erledigen Sie mit [Strg]+[C]. Eine vollständige Beschreibung aller Möglichkeiten der Kamera finden Sie in der offiziellen Dokumentation [2].

Mediaserver

Die von Rpicam-vid erzeugten Video-Streams lassen sich nicht direkt auf einer Webseite verwenden und sind zudem sehr unflexibel – oft kommt es zu Timing-Problemen. Für Abhilfe sorgt eine zusätzliche Komponente, die wir zwischen den Stream-Erzeuger und den Konsumenten schalten. Dafür gibt es eine Vielzahl von möglichen Lösungen.

Wir entscheiden uns für den Server MediaMTX [3], der sich auch als Docker-Container verwenden lässt. Er funktioniert ohne viel Bastelei und läuft vollständig unabhängig von anderen Komponenten. Die Installation auf dem Raspberry Pi gestaltet sich denkbar einfach: Laden Sie das Paket in ein beliebiges Verzeichnis herunter, entpacken Sie es und starten Sie die enthaltene Software mit dem Kommando ./mediamtx (Listing 1). Verwenden Sie immer die aktuellste Version von der Webseite des Projekts [4].

Listing 1

MediaMTX starten

$ mkdir mediaMTX
$ cd mediaMTX
$ wget https://github.com/bluenviron/mediamtx/releases/download/v1.12.0/mediamtx_v1.12.0_linux_arm64v8.tar.gz
$ tar -xvzf mediamtx_v1.12.0_linux_arm64v8.tar.gz
$ ./mediamtx

Die Funktionsweise des Mediaservers ist schnell erklärt. Ein Stream-Lieferant publiziert unter einer bestimmten URL auf dem Server einen Stream, der sich von beliebigen Clients unter dieser Adresse abrufen lässt. Zur Datenübertragung dient das Real Time Streaming Protocol RTSP. MediaMTX unterstützt aber auch andere Protokolle.

Projekt

Wie eingangs erwähnt, möchten wir einen Video-Stream auf einer Webseite darstellen. Dazu installieren wir zunächst einen Webserver auf dem Raspberry Pi. Für einen ersten Test eignet sich Apache, den Sie mit dem Kommando sudo apt install apache2 auf dem System einrichten. Um ihn zu testen, geben Sie im Webbrowser die IP-Adresse des RasPi ein. Hat alles geklappt, erscheint die Startseite des Webservers (Abbildung 2).

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 5 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
RASPBERRY PI GEEK KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Raspberry Pi Geek bei Google Play Readly Logo
Nach oben