Auslesen der Bilder
An die Bilder einer Digitalkamera kommt man wohl am einfachsten, indem man die Speicherkarte aus der Kamera herausnimmt und ggf. über einen Adapter in den Computer einführt. Dort taucht die Karte als externes Laufwerk auf und kann entsprechend bearbeitet werden.Die Digitalkameras haben in der Regel einen USB-Anschluss. Damit arbeiten sie als Adapter für ihre Speicherkarten. Die Kamera taucht also auch als externes Laufwerk auf. Allerdings kann der USB-Port bei einigen Kameras noch etwas mehr.
Mit dem Befehl lsusb kann eine Liste aller USB-Geräte angezeigt werden. Taucht die Kamera dort nicht auf, ist Anschluss oder Kabel defekt oder die Kamera schlicht nicht eingeschaltet.
Bus 002 Device 004: ID 08ff:2683 AuthenTec, Inc. Bus 002 Device 006: ID 0b97:7772 O2 Micro, Inc. OZ776 CCID Smartcard Reader Bus 002 Device 003: ID 0b97:7761 O2 Micro, Inc. Oz776 1.1 Hub Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 001 Device 005: ID 056a:0101 Wacom Co., LtdBus und Device geben den USB-Port auf dem Computer an. Die ID ist für ein angeschlossenes Gerät eindeutig. Sollte ein Treiber benötigt werden, dann ist diese Hexnummer eine gute Hilfe für die Suchmaschine.
Ganz rechts taucht der Name des Geräts auf. Dieser Name wird einfach übertragen. Das Auftauchen des Namens bedeutet nicht, dass das Gerät in seiner Funktionalität erkannt wird.
gphoto2
Das Programm gphoto2 wird über den folgenden Befehl als root installiert:apt install gphoto2Der Befehl gphoto2 --abilities ergibt bei der Nikon D3300 folgende Ausgabe:
$ gphoto2 --abilities Fähigkeiten für Kamera : Nikon DSC D3300 Unterstützung für seriellen Port : Nein USB-Unterstützung : Ja Aufnahme machen (Auswahl) : : Bild : Bildvorschau : Trigger Capture Konfigurationsunterstützung : Ja Unterstützung für das Löschen einzelner Bilder: Ja Unterstützung für das Löschen aller Bilder : Nein Unterstützung für Bildvorschau : Ja Unterstützung für Bildhochladen : JaDer Zugriff ist dann nicht möglich, wenn sich bereits ein anderes Programm wie digicam oder der Datei-Manager die Kamera geschnappt hat. Dann muss sie ggf. wieder "ausgeworfen" werden.
Bilder fernauslösen
Mit dem folgenden Befehl lässt sich ein Foto vom Computer aus auslösen:gphoto2 --capture-imageDer folgende Befehl löst aus und lädt das Bild auf den Computer. Dort ist in der Regel mehr Platz, die Übertragung dauert allerdings einen Moment.
gphoto2 --capture-image-and-download
- Mit dem Parameter -F oder --frames kann festgelegt werden, dass mehrere Fotos geschossen werden.
- Der Parameter -I oder --interval bestimmt, welchen Intervall in Sekunden zwischen den Aufnahmen liegt.
gphoto2 -I 10 -F 5 --capture-image-and-downloadoder auch
gphoto2 --interval 10 --frames 5 --capture-image-and-downloadDieser Befehl schießt also fünf Fotos im Abstand von je 10 Sekunden und lädt diese in das aktuelle Verzeichnis.
Die Digitalkamera als Webcam
Eine Webcam mit 640x480 Pixeln hat jeder. Aber eine Digitalkamera-Kamera als Webcam einzusetzen, das hat Stil und gibt ein besseres Bild. Was benötigen wir?
- gphoto2
- Die Kamera muss gphoto2 bzgl. Liveview unterstützen. Liveview ist das bewegte Bild, das auf diesen putzigen Display auf der Kamera-Rückseite dargestellt wird.
Mit gphoto werden wir die Liveview per USB aus der Kamera herausholen und an ein Device /dev/video1 binden, damit es von Skype bis vokoscreen jedes Programm verwenden kann.
Der folgende Befehl leitet den LiveView der Kamera direkt in den VLC:
gphoto2 --capture-movie --stdout | vlc -
v4l2loopback
Das Paket v4l2looback-utils enthält das Modul für v4l2loopback.sudo apt install v4l2loopback-utils v4l2loopback-dkmsDieses kann von Hand eingetragen werden:
sudo modprobe v4l2loopbackNach einem Reboot ist dieses Modul nicht mehr verfügbar und muss für den dauerhaften Genuss in der Datei /etc/modules hinterlegt werden.
v4l2loopback
Umleiten der Digitalkamera auf /dev/video1
Zunächst muss ffmpeg installiert werden. Der folgende Befehl sorgt dafür:
apt install ffmpegDie von gphoto2 gelieferte Lifeview wird mit ffmpeg ausgelesen und per v4l2 auf das Video-Device /dev/video1 umlegt.
gphoto2 --stdout --capture-movie | \ ffmpeg -i - -vcodec rawvideo -pix_fmt yuv420p -threads 0 \ -f v4l2 /dev/video1
Mit einer Nokia 3300 funktioniert dies wunderbar. Der Befehl liefert eine Framerate von 35 bis 50 fps. Mit einer Canon EOS 700D gibt es allerdings nur eine sehr langsame Übertragung von 7,1 fps. Das sieht ein wenig aus wie alte Charlie-Chaplin-Filme, nur in Farbe.
Das Device /dev/video1 kann anschließend von allen üblichen Tools, die eine Webcam unterstützen, auch eingebunden werden.
Links
- Ben Chapman: How to use your DSLR Camera as a Webcam In Linux
- Sami's Blog: Use your DSLR Camera as a Webcam on Ubuntu (2015)
- Use Nikon D5300 as webcam on Linux (2017)
HDMI-Abnahme
Die Kameras Nikon D3300 und Canon EOS 700D haben einen Mini-HDMI-Port. Der Stecker ist ein wenig kleiner als der Standard-HDMI-Stecker, aber größer als der Micro-Stecker. Ein passendes Kabel habe ich auf Amazon gefunden.
Warnung
Damit hat die Kamera einen HDMI-Ausgang, den man natürlich NICHT in den HDMI-Ausgang einer Grafikkarte oder eines Laptops stecken kann, weil auch das ein Ausgang ist.Um diesen HDMI-Ausgang der Kamera in einen Computer zu bekommen, benötigt man eine Video Capture Card. Ein solches Gerät wird vom Computer als Videoeingang erkannt und kann über ein Video-Device (beispielsweise /dev/video3) angesprochen werden.
Anschließend können über die Abspielfunktionen der Kamera die aufgenommenen Fotos und Vidos auf dem Computer abgespielt werden. Dazu öffnet man das Programm VLC und ruft aus dem Menü Media den Punkt Capture Device. Unter Video device name kann man die Liste aller Devices anwählen.
Wird kein Foto oder Video gestartet, zeigt der HDMI-Ausgang typischerweise das, was auf dem LiveView-Bildschirm der Kamera zu sehen ist. Da dort auch die Anzeigen für die Kamerabedienung erscheinen, ist dies nicht einfach so als Webcam zu verwenden.