W-Lan Webcam als lokale Webcam im Browser und darüber hinaus nutzbar machen

Bin seit einigen Monaten im Besitz einer Hikam S6 W-Lan-Überwachungskamera. Für diesen Zweck nutze ich sie jedoch eigentlich gar nicht; sie liegt nur herum. In Zeiten von häuslicher Lernzeit, dem sächsischen Homeschooling, wäre es jedoch ganz praktisch, die relativ gute Qualität der Kamera auch lokal nutzbar zu machen, um beispielsweise an Videokonferenzen teilhaben zu können.

Und das geht unter Linux tatsächlich ziemlich einfach, wenn man weiß wie. Hinweis auf alles gab mir dieser Artikel.

Zunächst installiert man in der einschlägigen Ubuntu-Distribution das Video4Linux2 Loopback Device und lädt den Treiber mittels

sudo apt install v4l2loopback-dkms
sudo modprobe v4l2loopback

Hiernach bedarf es lediglich noch des Wissens um den RTSP-Stream (das Video/Audio-Signal der Webcam). Dafür bedarf es des Wissens um die IP der Kamera (in meinem Falle die 192.168.X.10), die sich beispielsweise über den Router oder das Handbuch der Kamera in der Ausgangskonfiguration finden lässt. Sodann kann ich mit folgendem Befehl das Bild via W-Lan als lokale Webcam meines Rechners streamen und wiederum im Browser, Skype oder beliebiger anderer Software als Dummy auswählen (die passende Adresse noch einsetzen):

ffmpeg -re -i  rtsp://192.168.X.10:554/stream=0 -map 0:v -vf format=yuv420p -f v4l2 /dev/video0

Und weil’s so schön ist, habe ich mir das ganze in Form eines YAD-Skripts automatisiert, sodass ich lediglich einen Knopf drücken, das Nutzerpasswort eingeben und mich zurücklehnen muss. Dieses sieht bei mir wie folgt aus:

#!/bin/bash
#
# starting local webcam dummy via v4l2loopback as an rtsp stream
Encoding=UTF-8
TITLE=Webcam
VERSION=0.02
ICON=/usr/share/icons/Adwaita/64x64/apps/preferences-desktop-accessibility-symbolic.symbolic.png
# run webcamscript
yad --title="Webcamsteuerung" --text="Webcam …?" --button="Einschalten" --button="Ausschalten" --button="Programm Beenden"
#Returnwert speichern
ret=$?
#Auswerten des Returnwertes
if [ $ret = 0 ] #Wenn der Benutzer auf Einschalten drückt,
then            #dann führe folgenden Befehl aus
    eingabe="$(yad --entry --hide-text --button="Passwort" --title="Passwort" --text="Bitte gib dein Passwort ein:")"
    /usr/bin/sudo -u Nutzer -p $eingabe modprobe v4l2loopback | ffmpeg -re -i  rtsp://192.168.X.10:554/stream=0 -map 0:v -vf format=yuv420p -f v4l2 /dev/video0
fi
if [ $ret = 1 ] #Wenn der Benutzer auf Ausschalten drückt,
then
    eingabe="$(yad --entry --hide-text --button="Passwort" --title="Passwort" --text="Bitte gib dein Passwort ein:")"
    /usr/bin/sudo -u Nutzer -p $eingabe killall ffmpeg
else            #Ansonsten führe diesen Befehl aus
 exit 1         #Befehl (hier exit 1 für beenden)
fi

Nicht vergessen, auch den Nutzernamen und die IP in den beiden if-Schleifen anzupassen.

Viel Spaß =)

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert