beliebige Kamera mittels FFmpeg einbinden

Der Türsteuerungsbaustein von Loxone setzt den etwas angestaubten MJPEG-Stream voraus. Da ich mich dieser Limitierung nicht unterwerfen wollte, habe ich nach Möglichkeiten gesucht, Kameras mit bspw. h.264 Stream zu transcodieren. Es gibt die Möglichkeit die Software VideoLANClient dafür einzusetzen. Allerdings funktioniert das nicht immer stabil. Zum einen fand ich die Qualität des VLC transcodierten Streams unzureichend und zum anderen hatte ich oft Abbrüche des Streams. Einen schönen und stabilen Stream habe ich nicht hingebracht.

Hier eine Anleitung mit der ich momentan* sehr glücklich bin.  * läuft seit Anfang 100% stabil

 

LoxBerry Plugin

Die hier erläuterte Lösung gibt es mittlerweile als fertiges LoxBerry-Plugin. Das Plugin kann einfach ohne Kommandozeilen-Kenntnisse konfiguriert werden. Weitere Informationen hier: CamStream4Lox



Voraussetzung

FFmpeg muss installiert sein. Da die Installation betriebssystemabhängig (Windows, Debian, Rapsian, Ubuntu, etc.) ist, bitte hierfür Dr. Google zu Rate ziehen. Ich selbst habe FFMPEG auf einer Loxberry VM laufen. 

für Debian 8.0 (Jessie)https://www.assetbank.co.uk/support/documentation/install/ffmpeg-debian-squeeze/ffmpeg-debian-jessie/

für Qnap: 3rd Party Appstore - FFmpeg App - Problem hier: damit der FFServer nach dem Neustart der Qnap wieder funktioniert muss man auf der Console manuell starten. Ein Autostart geht zwar auch, dafür muss man sich aber schon wirklich auskennen mit der Qnap. rc.local geht nämlich aus Sicherheitsgründen bei Qnap nicht mehr.

Platzhalter für weitere bestätigte Betriebssysteme bzw. Quellen

Konfiguration

Folgende Konfiguration funktioniert mit Debian (und vermutlich jeder anderen Linux Distribution)

  1. Einloggen als root

Hinweis: beim Loxberry kann man sich meines Wissens per default nicht als root anmelden. Bei der Installation von Loxberry hat man einen Konsolenuser angegeben. Diesen verwenden und dann auf der Konsole mittels "su -" und dem entsprechenden "root" Passwort anmelden



2. ffserver Konfiguration

(mit dem Editor eures Vertrauens) die /etc/ffserver.conf Datei wie folgt anpassen // die ffserver.conf kann an einem beliebigen Ort liegen, muss dann halt beim Aufruf von ffserver mittels Parameter -f /PFAD/ gestartet werden

Hinweis: ich habe selbst nur die in pink gehaltenen Parameter angepasst

HTTPPort xxxx // beliebiger freier Port auf dem der Stream dann letztendlich abgerufen wird
HTTPBindAddress 0.0.0.0
MaxHTTPConnections 2000
MaxClients 1000
MaxBandwidth 1000000
CustomLog -

<Feed feed1.ffm>
File /tmp/feed1.ffm
FileMaxSize 20M
Launch ffmpeg -i "rtsp://[IP-ADRESSE]:[PORT]/[STREAM]" // Quelle=IP der Kamera, des zu konvertierenden Streams. zB: "rtps://192.168.1.30:554/s2"
</Feed>

<Stream s2.mjpg// Name wie der http Stream dann letztendlich heißt
Feed feed1.ffm
Format mpjpeg
VideoBitRate 10000
VideoFrameRate 15
VideoSize 800x450 // Auflösung des konvertierten Streams
VideoIntraOnly
NoAudio
Strict -1
NoDefaults
</Stream>

 

3. ffserver starten und testen

Nachdem die ffserver Konfiguration nun fertig ist, können wir den Stream testen. Einfach das Kommando "ffserver" aufrufen.



4. beliebigen Internetbrowser starten und die Adresse eingeben

 http://[IP-ADRESSE oder Name des Servers]:[HTTPPort]/[Stream]



5. ffserver automatisch starten beim Systemstart

(mit dem Editor eures Vertrauens) die /etc/rc.local Datei wie folgt anpassen

 

su loxberry -c "ffserver" // loxberry bezieht sich auf meine Konfiguration. Hier einfach den User eures Systems verwenden

(mit dem Editor eures Vertrauens) die /etc/init.d/ffserver Datei wie folgt anpassen

Loxone

Die Anbindung an Loxone hijacke ich einfach, da sie von @Michael Schlenstedt bereits bestens dokumentiert ist:

Kamera ohne MJPEG Stream im Türsteuerungsbaustein verwenden

 

Verwandte Artikel

Kamera ohne MJPEG Stream im Türsteuerungsbaustein verwenden

Webcams / Videokameras