Net-CamViele Net-Cams stellen ihren Output in Form RTSP-Streams zur Verfügung. Wer Glück hat, der kann die Bilder auch per MJPEG abrufen. Allerdings haben diese Option die wenigsten Net-Cams an Bord. Das Problem: Lediglich MJPEG lässt sich ohne Sonderbehandlung im Webbrowser darstellen. RTSP-Streams benötigen spezielle Behandlung in Form von Playern oder JavaScript-Bibliotheken. Meistens sind die Player auch noch kostenpflichtig und in der Cloud beheimatet. In diesem Fall heißt es noch zusätzlich, den Stream außerhalb des eigenen Netzwerkes zugänglich zu machen  - für mich kein schöner Gedanke.

Also hieß die Aufgabe kurzerhand den RTSP-Stream in MJPEG umzuwandeln. Die Voraussetzungen waren gegeben: ein Linux-Server, der auch die Website publiziert, ein darauf verfügbares ffmpeg mitsamt Konverterbibliotheken und ffserver, der zum ffmpeg-Paket gehört. Also dann ran ans Werk.

ffmpeg ist ja die Allheil-Waffe unter Linux, wenn es um die Format-Konvertierung geht. Das Tool ffserver macht die ganze Ergebnisse auch per HTTP zugänglich. Beides kombiniert sollte doch den gewünschten Erfolg bringen.

In ffserver werden dafür Datei-Streams angelegt, die dann entsprechend mit ffmpeg zu beschießen sind und das Ergebnis der Wandlung wird dann per HTTP über ffserver bereitgestellt.

Dazu ist unter /etc eine Datei ffserver.conf zu erstellen mit folgendem Inhalt:

HTTPPort 8091 HTTPBindAddress 0.0.0.0 MaxClients 10 MaxBandWidth 500000 CustomLog - File /tmp/garden.ffm FileMaxSize 200M Launch ffmpeg -i "rtsp://" -c copy Feed garden.ffm Format mpjpeg VideoFramerate 5 VideoIntraOnly VideoBitRate 4096 VideoBufferSize 4096 VideoSize 800x600 VideoQMin 5 VideoQMax 51 NoAudio Strict -1 StartSendOnKey

 

Hier wird Port 8091 zum entsprechenden HTTP-Port, wo sich dann ein MJPEG-Stream abrufen lässt. Um die Konvertierung zu bestücken, wird ein Stream garden.ffm erzeugt. Darin wird eine ffmpeg-Instanz gestartet, die den Webcam-Stream abruft und dem garden.ffm zufügt.

Anschießend wird der Output-Stream definiert, dessen Ergebnis dann unter http://localhost:8091/garden.mjpeg abrufbar ist.

ffmpeg und ffserver müssen im gleichen Verzeichnis liegen, denn ffserver startet die ffmpeg-Instanz aus dem selben Verzeichnis. Dazu ist es notwendig, in das Verzeichnis von ffserver zu wechseln und anschließen ffserver zu starten. Wenn alles gut geht, eröffnet dieser den Webserver und fortan kann mit MJPEG-fähigen Browsern der Webcam-Stream als MJPEG-Stream dargestellt werden. Dazu ist in die entsprechende Webseite die Zeile

einzufügen. FireFox und Chrome sollten den Output ohne Probleme verarbeiten können. Das Ganze ist dann nur im lokalen Netz verfügbar. Wer von außerhalb zugreift, kann keine Bilder sehen indipill.com. Wer das braucht, sollte sich einen VPN-Zugang in sein Netz konfigurieren. Dann kann man die Bilder auch von außerhalb sehen und muss die Bilder nicht unbedingt mit der ganzen Welt teilen.

 


Tagesschau

tagesschau.de