Baustelle: Projekt Meerkat

From revampedia
Jump to: navigation, search

Motivation

Aus Interesse wieder mal etwas mit dem Raspberry zu realisieren und dem tatsächlichen Nutzen etwas per video zu überwachen habe ich angefangen ein Bash Skript zu schreiben um aus einem Raspberry und n Webcams eine Art "Überwachungsausrüstung" zu bauen. Der Hintergedanke daran ist die Idee unser Rack zu überwachen um im Ernstfall den/die Schuldigen auf "Band" zu haben

Probleme

Durch Hampa wurde ich auf die Unzulänglichkeiten von USB aufmerksam gemacht. So ist es meist nicht direkt möglich gleiche Geräte über USB zu identifizieren. Zum glück melden die beiden Logitech Webcams die ich zum testen nutze jeweils eine andere ID, und diese lassen sich durch udev Regeln dazu nutzen die jeweils die gleichen device files zu erstellen und jeweils immer die richtige Kamera anzusprechen.

Vorgehen

Als erstes wurde die Debian Installation für den Raspberry 1 Modell B bereit gemacht. Aus ersichtlichen Gründen habe ich dazu das minibian image von Luca Soltoggio verwendet. Dieses hat lediglich das nötigste vorinstalliert und ist trotzdem voll zu Raspian (Debian Port, optimiert für die armhf Architektur und speziell für den Raspberry) kompatibel. Aktuell Stabil ist moment lediglich Debian 7 Wheezy (Anmerkung: Seit kurzem ist Debian Jessie als Stabil markiert worden für den RPi).

ffmpeg

Weiterhin habe ich ffmpeg auf dem Raspberry kompiliert (avconv hat zum Teil fehlende Funktionen, wenn es dann überhaupt funktioniert). Kompiliert wurde mit dem offizellen CompileGuide von ffmpeg vorerst nur mit den zusätzlichen Libraries von x264.

udev Regeln

Bezüglich der udev Regeln habe passende Informationen im offiziellen Archlinux Wiki gefunden. Die udev Regeln für die beiden Logitech Quickcams 9000 sehen nun so aus:

/etc/udev/rules.d/99-logitech-cams.rules

KERNEL=="video[0-9]*", SUBSYSTEM=="video4linux", SUBSYSTEMS=="usb", ATTRS{serial}=="5675B1F0", SYMLINK+="cam1", MODE="0660", GROUP="video"
KERNEL=="video[0-9]*", SUBSYSTEM=="video4linux", SUBSYSTEMS=="usb", ATTRS{serial}=="02649FE5", SYMLINK+="cam2", MODE="0660", GROUP="video"

Der Benutzer unter dem das Skript laufen wird muss daher zu der Gruppe "video" gehören.