Hallo,
hier mein selbst geschriebenes Programm „cam2fullscreen“, dass mittels VLC-Player das USB-Kamerabild im Fullscreen anzeigt. Bei mehreren Kameras zeigt ein Neustart des Programms die nächste Kamera an.
Vielleicht hilft’s Euch.
Gruß
Stefan
#!/bin/bash
# Kameras als Vollbild anzeigen mit VLC-Player
# Neustart des Programms zeigt nächstes Kamerabild im Fullscreen
#
# Sen 2018-11-27
# Linux Mint 18.2 Xfce 64bit
#
# GPL v3
# Bezeichnung der temporaeren Dateien
scriptname=cam2fullscreen
# Anzahl der angeschlossenen Geraete ermitteln
devcon=`ls -ltrh /dev/video* | wc -l`
# Alte Instanz schließen
pkill vlc
case $devcon in
0*) # Kein Geraet angeschlossen
# Info fuer Benutzer
notify-send -t 10000 "Keine Kamera gefunden" && exit
;;
*) # Geraete angeschlossen
# Info fuer Benutzer
if [ $devcon = 1 ]
then notify-send -t 10000 "1 Kamera gefunden"
else notify-send -t 10000 "$devcon Kameras gefunden"
notify-send -t 20000 "Fuer Anzeige der naechsten Kamera das Programm erneut starten"
fi
notify-send -t 100000 "Strg + Q druecken zum Beenden der Anzeige"
# Eigenschaftswerte der Geraete ermitteln und in Datei schreiben
ls -ltrh /dev/video* | awk -F'/dev/video' '{print $2}' > /tmp/$scriptname.log
# Zaehler auslesen
numb=$(head -n 1 /tmp/$scriptname.cnt)
# Zaehler ueberpruefen und gegebenenfalls zuruecksetzen
[[ ! $numb = [1-$devcon] ]] && numb=1
# Eigenschaftswert aus Datei auslesen
devread=`cat /tmp/$scriptname.log | head -n$numb | tail -n1`
# Prozesse ausschalten, welche die Kamera verwenden
busyproc=`lsof /dev/video$devread | tail -n1 | cut -d" " -f1`
while [ -n "$busyproc" ]; do pkill $busyproc; busyproc=`lsof /dev/video$devread | tail -n1 | cut -d" " -f1`; done
# Kamerabild darstellen
cvlc v4l2:///dev/video$devread --fullscreen --no-video-title
# Zaehler erhoehen
numb=$((numb + 1))
# Zaehler in Datei schreiben
echo $numb > /tmp/$scriptname.cnt
;;
esac
exit