USB Video Grabber für Hyperion vorbereiten

Erste Schritte zur Vorbereitung eines USB Video Grabbers zur Nutzung mit Hyperion. Im folgenden auch eine kleine Erklärung zu möglicherweise auftretenden Fehlern sowie Hinweise zur Behebung.

Der Status Quo

In anderen Artikel heißt es, dass Grabber mit einem 1160-Chipsatz sofort ohne weiteres mit Hyperion funktionieren würden, weshalb diese in der Regel auch empfohlen werden, um keinen weiteres Gefummel mit eventuell nicht vorhandenen Treibern zu haben.

Ich plane momentan die Erweiterung meiner Hyperion Konfiguration um einen 1×2 HDMI Splitter sowie einen HDMI2AV Konverter plus eventuell einen HDMI Hub mit Fernsteuerung, um auch alle Geräte angenehm mit Ambilight verwenden zu können.

Zufälligerweise habe ich noch einen alten USB Video Grabber der Marke EasyCap bei mir herumliegen, weshalb ich diesen nun schon mal für alles weitere vorbereiten wollte. In meinen Fall wurde der Treiber jedoch nicht sofort erkannt, das Gerät selbst jedoch schon.

USB Videograbber Chipsatz Modell Kompatibilität prüfen

Über den folgenden Befehl kann man in der Konsole oder wie beschrieben über einen SSH-Client wie PuTTy die angeschlossenen Geräte überprüfen:

lsusb

Man erhält dann eine Liste der Geräte. Unter diesen sollte sich ein Video Grabber befinden, bestenfalls eben einer mit der Kennzeichnung „STK1160“.

Wenn wir Glück haben, sollte das schon alles sein. In dem Fall, dass der benötigte Treiber schon vorhanden ist, sollte nun nämlich alles weitere funktionieren. Dies können wir durch folgendes Kommando überprüfen (Hyperion sollte selbstverständlich bereits installiert sein):

sudo hyperion-v4l2 --width 320 --height 180 --screenshot

Mit diesem geben wir dem Grabber den Befehl, einen Screenshot anzufertigen. Dieser wird im Home-Verzeichnis des Raspberry Pi abgespeichert (/home/pi).

Wenn dem so ist, und du ein Bild bekommst, kannst du den nächsten Abschnitt überspringen. Die Qualität des Bildes oder etwaige grüne oder schwarze Ränder sind erstmal egal. Darum kümmern wir uns später.

Ich erhalte keinen Screenshot, sondern eine Fehlermeldung „missing dev/video0

Dies war bei mir zunächst auch der Fall. Mein Grabber offenbarte sich als „Bus 001 Device 004: ID 05e1:0408 Syntek Semiconductor Co., Ltd STK1160 Video Capture Device“.

Trotz des richtigen Chipsatzes und funktionierender Erkennung durch lsusb schien der Treiber schlichtweg nicht vorhanden zu sein.

Ich habe jedoch einen Kernel „Raspbmc kernel + usbtv support“ gefunden und diesen nach einer Einleitung installiert. Nun funktioniert auch alles, ich erhalte über das obige Kommando einen Screenshot.

Auf der verlinkten Seite ist zwar von einem anderen EasyCap Grabber die Rede (ID 1b71:3002 bei lsusb), wie man sieht funktioniert es mit meinem aber trotzdem. Versuch es in diesem Fall also doch einfach mal.

Die Hyperion Erweiterung

Wir müssen unserer hyperion config noch folgenden Bereich hinzufügen, um den Video Grabber in Hyperion zu integrieren.

Nach einem Reboot sollte das ganze dann auch schon funktionieren. Ich habe zum Test einfach mal meine DSLR über ein Micro-USB zu Cinch-Kabel an den Videograbber am Raspberry Pi angeschlossen und mich durch ein paar Bilder geklickt. Siehe da: Die LEDs reagieren auf die Bildwechsel!

/// Configuration for the embedded V4L2 grabber
/// * device : V4L2 Device to use [default="/dev/video0"] /// * input : V4L2 input to use [default=0] /// * standard : Video standard (no-change/PAL/NTSC) [default="no-change"] /// * width : V4L2 width to set [default=-1] /// * height : V4L2 height to set [default=-1] /// * frameDecimation : Frame decimation factor [default=2] /// * sizeDecimation : Size decimation factor [default=8] /// * priority : Hyperion priority channel [default=800] /// * mode : 3D mode to use 2D/3DSBS/3DTAB (note: no autodetection) [default="2D"] /// * cropLeft : Cropping from the left [default=0] /// * cropRight : Cropping from the right [default=0] /// * cropTop : Cropping from the top [default=0] /// * cropBottom : Cropping from the bottom [default=0] /// * redSignalThreshold : Signal threshold for the red channel between 0.0 and 1.0 [default=0.0] /// * greenSignalThreshold : Signal threshold for the green channel between 0.0 and 1.0 [default=0.0] /// * blueSignalThreshold : Signal threshold for the blue channel between 0.0 and 1.0 [default=0.0] "grabber-v4l2" :
{
"device" : "/dev/video0",
"input" : 0,
/// "standard" : "PAL",
"width" : 300,
"height" : 200,
"frameDecimation" : 2,
"sizeDecimation" : 8,
"priority" : 1100,
"mode" : "2D",
"cropLeft" : 5,
"cropRight" : 5,
"cropTop" : 5,
"cropBottom" : 5,
"redSignalThreshold" : 0.1,
"greenSignalThreshold" : 0.1,
"blueSignalThreshold" : 0.1
},

Soweit funktioniert also bereits alles. Unser USB Grabber wird erkannt, wir können das Bild dessen auslesen und unsere LEDs reagieren bereits auf diese. Wir müssten dies nun nur noch ein wenig fine tunen, dann passt das auch schon.

Dazu kommen wir dann aber in einem anderen Artikel.

Jens Jakob

Autor, Fotograf, Videoproduzent... und mehr - oder weniger. Ich mache, worauf ich Lust habe. Auf lichtbahn.de schreibe ich über eben solche vielseitige Themen, was mich interessiert, was ich mache und was mich antreibt. Viel Spaß beim Lesen!

Kommentar verfassen - Was meinst du dazu?