Digitalkamera als Webcam nutzen

Hinweis: In dem Thema Digitalkamera als Webcam nutzen gibt es 9 Antworten. Der letzte Beitrag () befindet sich ganz unten auf dieser Seite.
  • Hallo allerseits.


    Ich versuche gerade meine Digitalkamera (Canon PowerShot G7X) als Webcam einzurichten, und diese für Live-Streams zu nutzen (bin quasi Lehrer und muss Hybridlehre vorbereiten). Unter Linux gibt es dafür anscheinend eine Lösung, und zwar über einen Loopback. Hier wäre die Anleitung, die ich gerade ausprobiere: https://www.crackedthecode.co/…slr-as-a-webcam-in-linux/ . Leider ist die Beschreibung nur für Debian, Ubuntu, Fedora und Arch, aber anscheinend haben Leute das schon unter openSuse zum Laufen gebracht: modprobe v4l2loopback ... - keine Änderung .


    Mein Problem ist bereits Schritt 1. Ich soll das Kernel-Modul v4l2loopback via

    Code
    sudo modprobe v4l2loopback

    laden, dieses wird mir aber nicht angeboten. Installiert sollte alles sein:

    Der Aufruf von "sudo modprobe v4l2[TAB][TAB]" sagt mir

    Code
    BLABLA@linux-ogpy:~> sudo modprobe v4l2[TAB][TAB]
    v4l2-dv-timings       v4l2-flash-led-class  v4l2-fwnode

    Mein Kernel sieht wie folgt aus:

    Code
    BLABLA@linux-ogpy:~> uname -a
    Linux linux-ogpy 5.12.9-1.gf17eb01-default #1 SMP Thu Jun 3 07:44:58 UTC 2021 (f17eb01) x86_64 x86_64 x86_64 GNU/Linux

    Vielleicht sind noch genauere Informationen zu den relevanten Paketen wichtig:

    Theoretisch müsste mir eines der installierten Pakete aber v4l2loopback anbieten. Leider kenne ich mich mit solchen Kernel-Geschichten nicht so aus und hoffe hier Hilfe zu finden.


    Danke schonmal und viele Grüße

    Für den Inhalt des Beitrages 293671 haftet ausdrücklich der jeweilige Autor: max3000

  • Sind alle Pakete installiert?

    Code
    zypper se -si gphoto2 v4l2loopback-utils v4l2loopback-dkms ffmpeg

    Die Rechtschreibfehler in diesem Beitrag sind nicht urheberrechtlich geschützt. Jeder der einen findet darf ihn behalten und in eigenen Werken weiterverwenden.

    Einmal editiert, zuletzt von Heinz-Peter ()

    Für den Inhalt des Beitrages 293673 haftet ausdrücklich der jeweilige Autor: Heinz-Peter

  • Mit

    Code
    sudo modprobe v4l2loopback

    bekommst du keine Meldung, wenn dieses Modul erfolgreich geladen wurde, da musst du schon

    Code
    sudo modprobe -v v4l2loopback

    verwenden.

    Was mir bei deinen Angaben fehlt, ist die Ausgabe von lsmod nach einem modprobe v4l2loopback.

    Code
    lsmod | grep -Ei v4l2

    Schreibtischrechner: openSUSE Leap 16.0 mit KDE/Plasma unter Wayland

    Klapprechner: openSUSE Tumbleweed mit KDE/Plasma unter Wayland
    Schneidbrettchen: PineTab mit Arch Linux

    Für den Inhalt des Beitrages 293676 haftet ausdrücklich der jeweilige Autor: tomfa

  • Hallo.

    Danke schonmal für die Antworten. Die Pakete sind alle installiert, außer v4l2loopback-dkms, das gibts bei openSuse nicht. dkms ist denke ich was Ubuntu-spezifisches.


    Mir war gar nicht bewusst, dass ich einen alten Kernel habe. Ich hatte mal temporär das Kernel-Repo https://download.opensuse.org/repositories/Kernel:/ drin, weil es da eine neuere Version als in den Standard-Repos gab. Das brauchte ich mal weil die ältere Version meine Soundkarte nicht erkannt hat. Habe das dann irgendwann mal wieder rausgeschmissen. Wie kann ich die aktuellste Kernel-Version installieren? Ich dachte das macht der bei einem zypper (d)up (--allow-vendor-change) immer mit? Vielleicht hilft hier meine Repo-Liste:

    Normalerweise schimpfen hier alle mit mir wenn ich das teile. Seid bitte gnädig :D.


    Zum letzten Hinweis:

    Code
    BLABLA@linux-ogpy:~> sudo modprobe -v v4l2loopback
    [sudo] Passwort für root: 
    modprobe: FATAL: Module v4l2loopback not found in directory /lib/modules/5.12.9-1.gf17eb01-default

    und

    Code
    BLABLA@linux-ogpy:~> lsmod | grep -Ei v4l2
    videobuf2_v4l2         36864  2 rmi_core,uvcvideo
    videobuf2_common       65536  5 videobuf2_vmalloc,rmi_core,videobuf2_v4l2,uvcvideo,videobuf2_memops
    videodev              270336  4 rmi_core,videobuf2_v4l2,uvcvideo,videobuf2_common
    mc                     61440  4 videodev,videobuf2_v4l2,uvcvideo,videobuf2_common

    Viele Grüße

    Einmal editiert, zuletzt von max3000 ()

    Für den Inhalt des Beitrages 293682 haftet ausdrücklich der jeweilige Autor: max3000

  • Zitat

    modprobe: FATAL: Module v4l2loopback not found in directory /lib/modules/5.12.9-1.gf17eb01-default

    Zitat

    Informationen zu Paket v4l2loopback-kmp-default:

    ------------------------------------------------

    Repository : repo-oss-15.3

    Name : v4l2loopback-kmp-default

    Version : 0.12.5_k5.3.18_57-lp153.1.46

    Du siehst den Unterschied?


    Als root:

    Code
    zypper in -f --allow-downgrade --allow-vendor-change kernel-default

    Das sollte den Kernel aus dem Leap 15.3 Repo installieren, in diesem Fall aus dem SLE Update Repo.

    Ob --allow-vendor-change nötig ist, kann ich nicht sagen.

    Für den Inhalt des Beitrages 293684 haftet ausdrücklich der jeweilige Autor: Sauerland

  • Vorher solltest du aber bei allen aktiven Repos auch den refresh einschalten, der ist fast überall ausgeschaltet.


    Und warum da das xorg Repo eingebunden ist, kannst du auch wahrscheinlich nicht sagen.....

    Übrigens sogar 2 mal, man achte auf die URL.....

    Für den Inhalt des Beitrages 293685 haftet ausdrücklich der jeweilige Autor: Sauerland

  • Hallo.

    Danke Sauerland, das hat das erste Problem tatsächlich gelöst. Dass das Xorg-Repo doppelt vorkommt sieht nach einem dummen Copy-und-Paste-Fehler aus. Warum ich das überhaupt drin habe, habe ich vergessen (glaub irgendwelche aktuellen QT-Libraries brauchte ich mal um etwas zu bauen).


    Ich bin jetzt zurück auf den älteren Kernel aus den Standard-Repos. Das zypper in -f --allow-downgrade --allow-vendor-change kernel-default hat leider nicht geklappt, vermutlich weil sowieso mehrere Kernel-Versionen installiert waren. Habs auf die harte Tour gemacht: zypper rm kernel-default
    und zypper in kernel-default. Jetzt bin ich auf Version 5.3.18-59.24-default.


    Das

    Code
    sudo modprobe -v v4l2loopback

    funktioniert jetzt, gibt zumindest nichts, also auch keine Fehlermeldungen, auf der Konsole aus. Ich probiere das mit der Kamera morgen mal aus und schließe dann den Thread wenn alles läuft.


    Jedenfalls, vielen lieben Dank an alle, die hier mitgeholfen haben!

    Für den Inhalt des Beitrages 293688 haftet ausdrücklich der jeweilige Autor: max3000

  • Wichtig ist es erst mal zu wissen, was v4lloopback überhaupt ist und tut :

    Zitat

    v4l2loopback - a kernel module to create V4L2 loopback devices

    This module allows you to create "virtual video devices". Normal (v4l2) applications will read these devices as if they were ordinary video devices, but the video will not be read from e.g. a capture card but instead it is generated by another application. This allows you for instance to apply some nifty video effects on your Skype video... It also allows some more serious things (e.g. I've been using it to add streaming capabilities to an application by the means of hooking GStreamer into the loopback devices).


    Das macht das Ganze nicht gerade trivial. Du braucht scheinbar noch gphoto2, um über dieses dann ein Device bereitzustellen, auf das andere Programme zugreifen können. Dies erzeugt den Stream, den andere Anwendungen dann verwenden können.


    Anzeigen lassen, ob die Kamera das unterstützt, kannst du mit : gphoto2 --abilities


    Ein möglicher Aufruf wäre :

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


    Das sollte dann ein Device /dev/video1 erstellen, auf das andere Programme zugreifen können. Da muss man vielleicht etwas Zeit investieren, bis das läuft. Da ich keine Digitalkamera habe, um das zu testen, kann ich da nicht viel mehr zu sagen.


    Die Lösung von Canon selbst ist ja leider proprietär und nur für Windows und Mac erhältlich.