Verwendung einer Digitalkamera (Canon) als Webcam

22

Ich kann meine Digitalkamera (Canon ixus 160) nicht als Webcam verwenden. Gibt es dafür eine Anwendung? oder nur in den Einstellungen?

Fahed Ghodhbene
quelle
Weitere Informationen hinzufügen. Sie müssen einen Fehler oder etwas bekommen.
Rahul
Gibt es im Handbuch Hinweise darauf, dass dies möglich ist? Eine ähnliche Frage wurde vor askubuntu.com/questions/53889/… gestellt, aber sie wurde geschlossen (ohne guten Grund imho). Auch so etwas wird in diesem Tutorial zu moreno.marzolla.name/software/linux-webcam-server gemacht .
Bruni

Antworten:

19

Hier ist eine andere Lösung.

Liste der von gphoto2 unterstützten Kameras: http://gphoto.org/proj/libgphoto2/support.php

Sie müssen gphoto , v4l2loopback-utils und ffmpeg installieren .

Dann

sudo modprobe v4l2loopback

und

gphoto2 --stdout --capture-movie | ffmpeg -i - -vcodec rawvideo -pix_fmt yuv420p -threads 0 -f v4l2 /dev/video1

Jetzt haben Sie eine Webkamera von Ihrer Digitalkamera.

akadem87
quelle
3
Ich erhalte diesen Fehler (oben geschnitten): Eingabe # 0, mjpeg, von 'pipe:': Dauer: N / A, Bitrate: N / A Stream # 0: 0: Video: mjpeg, yuvj422p (pc, bt470bg / unknown / unbekannt), 1056x704, 25 tbr, 1200k tbn, 25 tbc Stream-Zuordnung: Stream # 0: 0 -> # 0: 0 (mjpeg (native) -> rawvideo (native)) [swscaler @ 0x559c14f77de0] veraltetes Pixelformat verwendet, Stellen Sie sicher, dass Sie den Bereich korrekt eingestellt haben. [v4l2 @ 0x559c14f42fc0] ioctl (VIDIOC_G_FMT): Ungültiges Argument Header für Ausgabedatei # 0 konnte nicht geschrieben werden (falsche Codec-Parameter?): Ungültiges Argument Fehler beim Initialisieren des Ausgabestreams 0: 0 - Konvertierung fehlgeschlagen! ➜ ~
Noreabu
@noreabu Wenn Sie andere Webcams haben, ist dies /dev/video1möglicherweise nicht das Loopback-Gerät. Sie können den Gerätetyp mitv4l2-ctl --list-devices
Hubert Kario
Es hat bei mir funktioniert ... aber die Auflösung beträgt 1056x704. Ist es möglich, eine Auflösung von 16: 9 wie 720p zu ändern? Ich verwende eine Cannon T3i und diese Option ist bei Entangle verfügbar. Ich weiß jedoch nicht, wie ich Ihren Befehl ändern soll, um zu einem anderen Seitenverhältnis zu wechseln
Rafael,
14

Dies ist möglich, erfordert jedoch eine Reihe von Schritten. Zuerst müssen Sie gphotound installieren v4l2loopback-utils.

sudo apt-get install gphoto2 v4l2loopback-utils

Schließen Sie Ihre Kamera über USB an (wenn die Kamera automatisch montiert wird, entfernen Sie sie). Führen Sie dann aus, gphoto2 --abilitiesum festzustellen, ob Ihre Kamera dazu in der Lage ist. Hier ist die Ausgabe beim Anschließen einer Canon EOS 1200D

Geben Sie hier die Bildbeschreibung ein

Führen Sie dann aus sudo modprobe v4l2loopback, um das Kernelmodul zu aktivieren, das zum Erstellen eines Videogeräts von Ihrer Kamera erforderlich ist.

Ich habe ältere Tutorials zu dieser Aufgabe gesehen, die gst-launch-0.10 verwenden, um den nächsten Schritt dieser Aufgabe zu erreichen (z . B. diesen ). Ich benutze Ubuntu 17.04, das gst-launch-1.0 verwendet. Unten finden Sie den aktualisierten Befehl zum Erstellen eines Videogeräts aus Ihrer Digitalkamera:

gphoto2 --stdout --capture-movie | gst-launch-1.0 fdsrc ! decodebin3 name=dec ! queue ! videoconvert ! v4l2sink device=/dev/video1

Dadurch wird ein Videogerät erstellt /dev/video1, das Sie jetzt in Programmen wie VLC verwenden können.

Wenn Sie Fehler bezüglich des verwendeten Geräts sehen, müssen Sie den gvfs-gphoto2-volume-monitorProzess durch Ausführen beenden killall gvfs-gphoto2-volume-monitor.

Hellocatfood
quelle
5
Ich bekomme das:➜ ~ gphoto2 --stdout --capture-movie | gst-launch-1.0 fdsrc ! decodebin3 name=dec ! queue ! videoconvert ! v4l2sink device=/dev/video1 Setting pipeline to PAUSED ... Nehme Vorschaubilder als Film in 'stdout' auf. Drücke Ctrl-C zum abbrechen. ERROR: Pipeline doesn't want to pause. ERROR: from element /GstPipeline:pipeline0/GstV4l2Sink:v4l2sink0: »/dev/video1« ist kein Wiedergabegerät. Additional debug info: v4l2_calls.c(642): gst_v4l2_open (): /GstPipeline:pipeline0/GstV4l2Sink:v4l2sink0: Capabilities: 0x5200001 Setting pipeline to NULL ... Freeing pipeline ...
Noreabu
@noreabu klingt wie ein Fehler, den Sie melden sollten
hellocatfood
Versuchen Sie / dev / video2
Gefahr89
Dies funktionierte über die obige ffmpeg-Antwort. Ich musste verwenden guvcview, um die Ausgabe zu sehen
Jonathan
Ich bekommemodprobe: FATAL: Module v4l2loopback not found in directory /lib/modules/4.15.0-36-generic
virtualxtc
6

Ich konnte Video- und Bildaufnahmen mit einer Canon DSLR 600D machen

sudo apt get install guvcview ffmpeg gphoto2 v4l2loopback-dkms v4l2loopback-utils ffmpeg

Stecken Sie die Kamera ein, jeder Modus schien zu funktionieren, testen Sie mit den Grundlagen:

Prep

sudo modprobe v4l2loopback
killall gvfs-gphoto2-volume-monitor

Prüfung

lsusb
gphoto2 --auto-detect
LANG=C gphoto2 --summary
LANG=C gphoto2 --list-all-config

Versuchen

gphoto2 --capture-image
gphoto2 --stdout --capture-movie | ffmpeg -i - -vcodec rawvideo -pix_fmt yuv420p -threads 0 -f v4l2 /dev/video1

Visualisieren (in einem anderen Terminal)

guvcview

oder

guvcview-brlin.guvcview

Sie können verschiedene /dev/video1Befehle ausprobieren

Es gibt auch EOS Movie Recorder

Entpacken Sie dies: https://sourceforge.net/projects/eos-movrec/files/eos-movrec/0.3.3_beta/eos-movrec-0.3.3_beta.zip/download

cd eos-movrec-0.3.2_beta
sudo apt install libgphoto2-dev                                     
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make
Jonathan
quelle
2
Vielen Dank. Ich benutze dies und nehme dann das Fenster in OBS "gphoto2 --stdout --capture-movie | ffplay -"
RY