Frage zu Installation von droidcam bzw. Verwendung von Smartphonekamera als Webcam unter FreeBSD

Wie schließt Du das "Device" überhaupt an? Per WLAN oder USB? Hast Du mal beides probiert?
Ich habe beides probiert.

Wenn Du es per USB anschließt, taucht denn dazu was in /var/log/messages auf (mit tail -f /var/log/messages kannst Du die Datei "live" beobachten und siehst dann auch Einträge auftauchen, wenn Du ein USB-Gerät anschließt)?
Code:
Dec 12 19:42:53 amd64 kernel: usbd_setup_device_desc: getting device descriptor at addr 2 failed, USB_ERR_STALLED
Dec 12 19:42:54 amd64 kernel: ugen7.2: <TCL Alcatel 1> at usbus7
Dec 12 19:42:54 amd64 webcamd[3527]: webcamd: Cannot find USB device
Dec 12 19:43:48 amd64 kernel: ugen7.2: <TCL Alcatel 1> at usbus7 (disconnected)
Dec 12 19:43:49 amd64 kernel: ugen7.2: <TCL Alcatel 1> at usbus7
Dec 12 19:43:49 amd64 webcamd[3541]: webcamd: Cannot find USB device
Dec 12 19:44:00 amd64 kernel: ugen7.2: <TCL Alcatel 1> at usbus7 (disconnected)
Dec 12 19:44:01 amd64 kernel: ugen7.2: <TCL Alcatel 1> at usbus7
Dec 12 19:44:01 amd64 webcamd[3576]: webcamd: Cannot find USB device

Hier scheint das Problem zu liegen: webcamd kann das USB Device nicht finden. Wenn ich das Gerät per Kabel anschließe, kommt diese Meldung direkt, wie man oben sieht. Wenn ich Optionen "File transfer" oder "PTP" als Modi auswähle, genau das Gleiche.

Hier die Ausgabe im Terminal beim Starten von droidcam:

Code:
$ droidcam
Audio loopback device not found.
Is snd_aloop loaded?
Video:
Audio:
* daemon not running; starting now at tcp:5037
* daemon started successfully
4747
connecting to 127.0.0.1:4747
connecting to 127.0.0.1:4747

Parallel erscheint natürlich im Fenster die entsprechende vorher schon erwähnte Fehlermeldung (Siehe Screenshot).
Hier die Terminalausgabe, wenn ich droidcam nochmal starte und die Option "WiFi / LAN" auswähle:

Code:
$ droidcam
Audio loopback device not found.
Is snd_aloop loaded?
Video:
Audio:
4747
connecting to 127.0.0.1:4747
connecting to 127.0.0.1:4747
connecting to 127.0.0.1:4747
connecting to 192.168.1.94:4747
connecting to 192.168.1.94:4747
connecting to 192.168.1.94:4747
connecting to 192.168.1.94:4747
connecting to 192.168.1.94:4747

Doch hier eine interessante Entdeckung: In der Droidcam App vom Handy wird für Video eine URL angegeben. Wenn ich diese URL in dem Browser eingebe, bekomme ich ein Bild:

1670872938972.png


Das Problem scheint also zu sein, dass kein "droidcam" Video Device vorhanden ist, weder für das Programm droidcam selbst, noch für andere Programme, wie cheese.

Eine Firewall habe ich nicht. Stellt sich dann noch die Frage, ob die entsprechenden Ports 4747, 4848, 5050 und 5151 freigegeben sind? 4747 scheint ja zu funktionieren.
 
Zuletzt bearbeitet:
Bist du sicher das webcamd <-> droidcam der richtige weg ist?

Was passiert denn wenn du die zielanwendung einfach mal ausprobierst?
 
Also ich kenne das Programm droidcam nicht. Daher muss ich ein wenig raten.

Aber so wie ich es verstanden hab, dient es ja dazu ein Smartphone quasi als Webcam (inkl. Audio) verfügbar zu machen. Das tut es dadurch, in dem es über USB oder WLAN eine Verbindung zum Smartphone aufbaut und seinerseits wiederum aber entsprechende Video- und Audio-Devices im System zur Verfügung stellt, die dann wiederum andere Programme (Skype, Cheese oder wer auch immer) nutzen können:
Code:
           +----------+
       ,---|  Skype   |---+
       |   +----------+   |
       |                  |
 +-----|------------------|------+
 |     V                  V      |
 | +-----------+   +-----------+ |
 | |virtuelles |   |virtuelles | |
 | |Audiodevice|   |Videodevice| |
 | +-----------+   +-----------+ |
 |                               |
 |           droidcam            |
 +--------------|----------------+
                |
            USB or WLAN
                |
                V
         +------------+
         | Smartphone |
         +------------+

Oder hab ich das jetzt völlig missverstanden?

Wäre schön, wenn Du bei solchen Angaben auch gleich dazu schreibst, wem die IP-Adresse gehört. Ist das das Smartphone oder Dein Computer oder wem?

Die Log-Ausgaben wenn Du das Smartphone via USB anschließt, sieht auch nicht sehr gesund aus. Hast Du mal die angesprochenen Tipps mit dem Kabel etc. aufgegriffen?

Muss eigentlich auf dem Smartphone auch irgendwie ne App laufen? Es wäre ja ne riesige Sicherheitslücke, wenn man von außen (sogar über WLAN) einfach so auf die Handy-Kamera zugreifen könnte. Bei USB könnte ich mir das schon eher vorstellen. Zumindest im Android-Debug-Mode.
Auf der anderen Seite zeigt Dein Screenshot ja, das da offenbar es funktioniert. Aber wie gesagt. Mir ist die ganze Funktionsweise des Programms noch nicht klar. Ich bin hier eigentlich auch nur reingeschlittert, weil ich zum dem program-find-library-Thema was zu sagen hatte. :-)
 
Zuletzt bearbeitet:
Oder hab ich das jetzt völlig missverstanden?
Du hast völlig richtig verstanden.

Wäre schön, wenn Du bei solchen Angaben auch gleich dazu schreibst, wem die IP-Adresse gehört. Ist das das Smartphone oder Dein Computer oder wem?
Sorry, ich dachte, es sei aus dem Zusammenhang klar, dass es sich dabei um die IP des Smartphones handelt, weil:

Muss eigentlich auf dem Smartphone auch irgendwie ne App laufen?
Ja, man muss "droidcam" aus dem Google Playstore installieren und starten. Und da hatte ich gesagt, dass dort die IP-Adresse erscheint (also des Smartphones im Heimnetzwerk), auf die ich dann über den Browser auf dem PC zugreifen konnte.

Die Log-Ausgaben wenn Du das Smartphone via USB anschließt, sieht auch nicht sehr gesund aus. Hast Du mal die angesprochenen Tipps mit dem Kabel etc. aufgegriffen?
Was sieht denn da nicht gesund aus? Das Kabel ist relativ dick, und das Mounten des internen Speichers auf dem PC klappt gut mit dsbmc und ich kann problemlos mit caja Dateien austauschen. Warum sollte dann die Videogeschichte nicht funktionieren? Ein anderes Kabel habe ich nicht, höchstens noch ein dünneres.

Bist du sicher das webcamd <-> droidcam der richtige weg ist?
Nun, es scheint der einzig mögliche Weg zu sein. Andere hier haben auch gesagt, dass sie bei der Suche auch nur auf Droidcam gestoßen sind.

Was passiert denn wenn du die zielanwendung einfach mal ausprobierst?
Was meinst Du mit Zielanwendung? Z.B. cheese oder obs-studio? Es passiert gar nichts, denn das Video-Device kann man nicht auswählen, weil es nicht existiert.
Das tut es dadurch, in dem es über USB oder WLAN eine Verbindung zum Smartphone aufbaut und seinerseits wiederum aber entsprechende Video- und Audio-Devices im System zur Verfügung stellt, die dann wiederum andere Programme (Skype, Cheese oder wer auch immer) nutzen können:
Das ist genau das, was nicht funktioniert, nämlich das Zurverfügungstellen von Video- und Audio-Devices, die wiederum andere Programme nutzen können. Da diese Devices auch nicht erscheinen, wenn ich es über WiFi versuche, glaube ich nicht, dass es Sinn macht, über das Kabel zu spekulieren.
Weitere neuere Smartphones habe ich nicht, um diese auszuprobieren. Ich wollte droidcam auf meinem alten Sony D2203 (Android 4.4) ausprobieren, aber im Playstore erscheint die App erst gar nicht.
Vielleicht könnt Ihr es mal mit Euren Mobiltelefonen versuchen und Eure Ergebnisse mitteilen, bzw. dem Fehler auf den Grund gehen.
 
Ja, man muss "droidcam" aus dem Google Playstore installieren und starten. Und da hatte ich gesagt, dass dort die IP-Adresse erscheint (also des Smartphones im Heimnetzwerk), auf die ich dann über den Browser auf dem PC zugreifen konnte.
Ok. Das sind aber alles Informationen die ich bis dato nicht hier wahrgenommen hab.

Was sieht denn da nicht gesund aus?
Das es immer wieder ein Disconnect gibt. Gut. Wenn Du das Kabel zwischendurch raus ziehst, dann wäre das nachvollziehbar. Aber das hattest Du ja nicht gesagt also gehe ich jetzt mal davon aus, das Du es die ganze Zeit eingesteckt hattest.
Möglicherweise funkt hier aber auch webcamd dazwischen.

Das Kabel ist relativ dick, und das Mounten des internen Speichers auf dem PC klappt gut mit dsbmc und ich kann problemlos mit caja Dateien austauschen.
Das wäre natürlich erst mal ein Anzeichen dafür, das das Kabel funktioniert. Da hast Du völlig recht.
Und wie Du schon sagtest: Wenn die Verbindung via WLAN prinzipiell funktioniert, ist das mit dem USB eigentlich gegenstandslos.

Das ist genau das, was nicht funktioniert, nämlich das Zurverfügungstellen von Video- und Audio-Devices
Ja. WLAN/IP sollte eigentlich gehen da es via Browser ja auch funktioniert. Ich würde daher zunächst den WLAN-Weg weiter gehen.
Das die "Devices" nicht erzeugt werden, da scheint tatsächlich ein Problem vorzuliegen. Unglücklicherweise bin ich in der Video-Webcam-Thematik nicht so drin. Deshalb tappe ich hier auch so ein bisschen im dunkeln herum. :-)

Was ich noch so spärlich im Hinterkopf habe, ist das diese Geschichten bei FreeBSD typischerweise über webcamd abgewickelt werden, weshalb Du es ja vermutlich aktiviert hast. Das stellt dann auch diese Video4Linux-API zur Verfügung das ja offenbar auch von droidcam benutzt wird.

droidcam will via dem sogenannten V4L2-Loopback (welches dann irgendwie was mit /dev/videoX heißen soll) dann die Kamera zur Verfügung stellen. Darum dreht sich ja auch der Abschnitt in der Anleitung. Der sich offenbar aber auf Linux bezieht.
Auf FreeBSD funktioniert das etwas anders.

Die Manpage von webcamd erwähnt ja auch so was. Nämlich mit dem Parameter -c
Was ich jetzt erst mal probieren würde ist mit diesem webcamd herum zu experimentieren. Ich würde das auch gar nicht via /etc/rc.conf starten, sondern erst mal direkt von der Kommandozeile.
Und dann erst mal das Loopback-Device erzeugen:
webcamd -c v4l2loopback
(muss natürlich als root ausgeführt werden)
(webcamd braucht laut Manpage cuse ; Du solltest gucken, das das geladen ist und ansonsten zuerst ein kldload cuse ausführen)

Ich weiß gar nicht wie das ist, aber das droidcam wirst Du vermutlich unter Deinem User ausführen. Und dann ist die Frage, ob Du auf das dadurch erzeugte /dev/video0 überhaupt zugreifen darfst. Evtl. macht es noch Sinn den -U Parameter mit anzugeben:
webcamd -c v4l2loopback -U cabriofahrer
(wobei Du da natürlich Dein richtigen Usernamen eintragen musst :))

Wenn das ordentlich startet, dürftest Du auch was mit ls -l /dev/video* sehen. Und falls ja, kannst Du dann auch mal droidcam testen.

Also noch mal zusammengefasst:

webcamd aus der /etc/rc.conf rauswerfen

Terminal öffnen und als root:
kldload cuse
und
webcamd -c v4l2loopback
ausführen. webcamd wird durchlaufen, da nicht im Deamon-Mode. Die Kommandozeile ist im Terminal also blockiert und lässt sich, bis zum beenden via Strg-C, nicht für weitere Eingaben benutzen.

Mit ls -l /dev/video* nachgucken, ob ein Loopback-Device auftaucht und ob die Rechte passen.

droidcam mit WiFi/LAN -Verbindung testen


Wie gesagt. Das ist hier alles ein ziemliches Stochern im Nebel. Aber vielleicht kommt ja zufällig was bei rum.
 
Zuletzt bearbeitet:
Wie gesagt. Das ist hier alles ein ziemliches Stochern im Nebel. Aber vielleicht kommt ja zufällig was bei rum.
Absolut nicht, Du hast da eher ziemlich den Nagel auf den Kopf getroffen und wir kommen der Sache schon näher.

Mal kurz vorweg:
  • cuse war bei mir schon geladen
  • webcamd aus der /etc/rc.conf zu entfernen bringt nichts, das bewirkt nur, dass das das Video-Device zu 0 wird und nicht zu 2, dazu gleich mehr.

Wenn ich also als root "webcamd -c v4l2loopback -U webcamd" ausführe, bekomme ich tatsächlich ein neues Video Device (2):

Code:
$ ls -l /dev/video*
crw-rw-rw-  1 webcamd  webcamd  0x9b Dec 13 13:40 /dev/video0
crw-rw-rw-  1 webcamd  webcamd  0x9c Dec 13 13:40 /dev/video1
crw-rw-rw-  1 webcamd  webcamd  0xc3 Dec 13 13:56 /dev/video2
$

Die Devices 0 und 1 sind meine USB Cam, warum die 2x erscheint, weiß ich aber nicht.
Wenn droidcam mit der Option WiFi gestartet wird, erkennt es das neue Video Device. Ich bekomme dann mit "pwcview -d /dev/video2" tatsächlich ein Bild. Auch in OBS kann ich das Device anstatt von der USB Cam auswählen. Eigenartigerweise klappt das mit cheese nicht, es erscheint lediglich die vorgegebene Option der USB Cam. Genau das Gleiche, wenn ich mit Chrome eine Google Meeting starte, da steht mir auch nur die USB Cam zur Verfügung. Das ist dann schon eigenartig: Warum steht das Device (/dev/video2) in OBS zur Auswahl und kann in pwcview mit dem Parameter -d angesteuert werden?

Nun eine weitere Vermutung zur Verbindung über USB: Da webcamd bei mir automatisch über die /etc/rc.conf geladen wird, bekomme ich als root bezüglich webcamd folgende Ausgabe für "ps -x":

Code:
517  -  I<s    0:00.72 /usr/local/sbin/webcamd -i 0 -d ugen3.2 -B -U webcamd -G webcamd

Hier fällt auf, dass "ugen3.2" auftaucht, was natürlich die USB Cam ist. Wie wir oben bereits gesehen haben, meldet sich das Smartphone in "tail -f /var/log/messages" als "ugen7.2".

Könnte es sein, dass der Befehl "webcamd -c v4l2loopback -U webcamd" irgendwie angepasst werden müsste, damit das die Kamera des Smartphones über USB erkannt werden kann?
 
Die Devices 0 und 1 sind meine USB Cam, warum die 2x erscheint, weiß ich aber nicht.
Evtl. bietet die USB-Cam ja zwei verschiedene Setups an die dann halt durch zwei verschiedene /dev/video - Devices repräsentiert wird.

Eigenartigerweise klappt das mit cheese nicht, es erscheint lediglich die vorgegebene Option der USB Cam.
Evtl. unterscheidet irgendwas ein Loopback-Device von einem physischen Video-Device.
Möglicherweise spielt auch eine Rolle, ob er zur Webcam ein Mikrophon zuordnen kann.
Oder was die Webcam an Auflösung und Pixelformat beherrscht (diesbzüglich lässt sich droidcam möglicherweise sogar konfigurieren).
Aber da kommen wir auch in einen Bereich, in dem meine oberflächlichen Kenntnisse auf deutliche Grenzen stoßen.

Möglicherweise kriegt man ja noch weitere Hinweise, wenn man die problematischen Programme von der Kommandozeile startet um zu gucken, ob die da noch was ausgeben. Evtl. gibts ja noch ein "verbose"- oder gar "debug"-Parameter, den man mitgeben kann um möglichst viele Details rauszukitzeln.

Könnte es sein, dass der Befehl "webcamd -c v4l2loopback -U webcamd" irgendwie angepasst werden müsste, damit das die Kamera des Smartphones über USB erkannt werden kann?
Das wird wohl so nicht gehen. droidcam und webcamd setzen ja auch gar nicht auf der Ebene USB an, sondern quasi eine Ebene drüber. Klar. Theoretisch könnte man den Weg gehen, das sich entweder das Smartphone direkt oder über den Umweg droidcam als USB-Video-Device präsentiert, was dann sich gegenüber webcamd wie eine normale USB-Webcam verhält. Nur dann wäre ja gar nicht die Notwendigkeit "umständlich" über ein Loopback-Device zu gehen.

Macht droidcam jetzt wo das Loopback-Device da ist noch irgendwelche (zusätzlichen) Ausgaben auf der Kommandozeile? Falls ja, welche?
 
Zuletzt bearbeitet:
Macht droidcam jetzt wo das Loopback-Device da ist noch irgendwelche (zusätzlichen) Ausgaben auf der Kommandozeile? Falls ja, welche?
Nein, leider nicht.

Theoretisch könnte man den Weg gehen, das sich entweder das Smartphone direkt oder über den Umweg droidcam als USB-Video-Device präsentiert, was dann sich gegenüber webcamd wie eine normale USB-Webcam verhält.
Wäre das denn möglich? Das wäre doch viel besser!

Nur dann wäre ja gar nicht die Notwendigkeit "umständlich" über ein Loopback-Device zu gehen.
Darauf könnte ich gerne verzichten, wenn es möglich wäre, dass sich das Smartphone direkt als USB-Video-Device präsentiert.
 
Wäre das denn möglich?
Naja. Das ist halt eher eine theoretische Überlegung. Ich weiß gar nicht, obs dafür überhaupt passende Programme und Handy-Apps gibt. Ich wäre da erst mal skeptisch, aber müsste man mal gucken bzw. vielleicht hat ja jemand einen Tipp dazu.

Die realistische Möglichkeit ist, das man das doch noch irgendwie via Loopback und droidcam hinbekommt. In die Richtung würde ich schauen. Kriegt man noch raus, was Programme wie cheese und Co darüber stolpern lässt das virtuelle Video-Capture-Device zu akzeptieren.
Du hast ja glücklicherweise auch eine physische Webcam die akzeptiert wird. Das erleichtert es ja vielleicht ein bisschen dem Problem auf die Spur zu kommen.

Ich würde ja mir mal die Cams via v4l2-ctl angucken (v4l2-ctl ist Teil des Ports/Packages multimedia/v4l-utils ).
Also würde ich mal alles so starten das man auch das Loopback-Device mit gestarteten droidcam hat und dann mal die dazugehörigen Device-Infos abfragen:
v4l2-ctl -d /dev/video0 -D
Und das halt für alle von /dev/video0 bis /dev/video2
Und dann sieht man ja vielleicht irgendwie etwas, was man als Ansatzpunkt nehmen kann.
 
Zuletzt bearbeitet:
Hier die zwei Ausgaben:

Code:
$ v4l2-ctl -d /dev/video0 -D
Driver Info:
    Driver name      : uvcvideo
    Card type        : USB2.0_Camera: USB2.0_Camera
    Bus info         : usb-/dev/usb-/dev/usb
    Driver version   : 5.17.0
    Capabilities     : 0x84a00001
        Video Capture
        Metadata Capture
        Streaming
        Extended Pix Format
        Device Capabilities
    Device Caps      : 0x04200001
        Video Capture
        Streaming
        Extended Pix Format
$ v4l2-ctl -d /dev/video2 -D
Driver Info:
    Driver name      : v4l2 loopback
    Card type        : Dummy video device (0x0000)
    Bus info         : platform:v4l2loopback-000
    Driver version   : 5.17.0
    Capabilities     : 0x85208003
        Video Capture
        Video Output
        Video Memory-to-Memory
        Read/Write
        Streaming
        Extended Pix Format
        Device Capabilities
    Device Caps      : 0x05208003
        Video Capture
        Video Output
        Video Memory-to-Memory
        Read/Write
        Streaming
        Extended Pix Format
$

Was sagt uns das jetzt?
 
Weiß noch nicht. Mach das Ganze noch mal mit
v4l2-ctl -d /dev/videoX --list-formats
bzw.
v4l2-ctl -d /dev/videoX --list-formats-ext
 
Code:
$ v4l2-ctl -d /dev/video0 --list-formats
ioctl: VIDIOC_ENUM_FMT
    Type: Video Capture

    [0]: 'YUYV' (YUYV 4:2:2)

$ v4l2-ctl -d /dev/video2 --list-formats
ioctl: VIDIOC_ENUM_FMT
    Type: Video Capture

    [0]: 'YU12' (Planar YUV 4:2:0)
 
Sorry, die zweite Zeile war mir entgangen:

Code:
$ v4l2-ctl -d /dev/video0 --list-formats-ext
ioctl: VIDIOC_ENUM_FMT
    Type: Video Capture

    [0]: 'YUYV' (YUYV 4:2:2)
        Size: Discrete 640x480
            Interval: Discrete 0.033s (30.000 fps)
            Interval: Discrete 0.050s (20.000 fps)
            Interval: Discrete 0.067s (15.000 fps)
            Interval: Discrete 0.100s (10.000 fps)
            Interval: Discrete 0.200s (5.000 fps)
            Interval: Discrete 1.000s (1.000 fps)
        Size: Discrete 320x240
            Interval: Discrete 0.033s (30.000 fps)
            Interval: Discrete 0.050s (20.000 fps)
            Interval: Discrete 0.067s (15.000 fps)
            Interval: Discrete 0.100s (10.000 fps)
            Interval: Discrete 0.102s (9.833 fps)
            Interval: Discrete 1.000s (1.000 fps)
        Size: Discrete 160x120
            Interval: Discrete 0.033s (30.000 fps)
            Interval: Discrete 0.050s (20.000 fps)
            Interval: Discrete 0.067s (15.000 fps)
            Interval: Discrete 0.100s (10.000 fps)
            Interval: Discrete 0.102s (9.833 fps)
            Interval: Discrete 1.000s (1.000 fps)
        Size: Discrete 176x144
            Interval: Discrete 0.033s (30.000 fps)
            Interval: Discrete 0.050s (20.000 fps)
            Interval: Discrete 0.067s (15.000 fps)
            Interval: Discrete 0.100s (10.000 fps)
            Interval: Discrete 0.102s (9.833 fps)
            Interval: Discrete 1.000s (1.000 fps)
        Size: Discrete 352x288
            Interval: Discrete 0.033s (30.000 fps)
            Interval: Discrete 0.050s (20.000 fps)
            Interval: Discrete 0.067s (15.000 fps)
            Interval: Discrete 0.100s (10.000 fps)
            Interval: Discrete 0.102s (9.833 fps)
            Interval: Discrete 1.000s (1.000 fps)
$ v4l2-ctl -d /dev/video2 --list-formats-ext
ioctl: VIDIOC_ENUM_FMT
    Type: Video Capture

    [0]: 'YU12' (Planar YUV 4:2:0)
        Size: Discrete 640x480
            Interval: Discrete 0.033s (30.000 fps)
$
 
Nein, leider nicht.
Du kannst übrigens droidcam deutlich "geschwätziger" machen, in dem Du in der Datei src/common.h die Zeile 37 änderst zu:
#define dbgprint errprint
(natürlich musst Du dann auch neu kompileren usw.)

...
v4l2-ctl -d /dev/video0 --list-formats-ext
...
Das Grundproblem ist ja, das man nicht genau weiß, woran cheese und Co scheitern bzw. warum sie das Video-Device nicht mit zur Auswahl stellen. Da müsste man einfach mal reingucken, woran das konkret liegt. Vermutlich wirds aber gar nicht so trivial. Da cheese bestimmte Dinge gar nicht selbst machen wird, sondern dazu irgendwie auf sowas wie gstreamer zurückgreift usw.
Aber selbst wenn man das Problem findet, heißt das noch lange nicht, das es sich leicht beheben lässt.
Kurzum: Die Ursachensuche ist mit etwas Aufwand verbunden.

Wenn man den Aufwand nicht treiben will/kann, muss man halt rumprobieren mit Try&Error und dann hoffen, das sich irgendwas ergibt und dann noch zusätzlich hoffen, das die Lösung einigermaßen leicht umsetzbar ist.

Jedenfalls treten bei den Ausgaben schon mal Unterschiede zutage, die möglicherweise (möglicherweise!) etwas mit dem Problem zu tun haben. Das es was mit der Auflösung zu tun hat, würde ich jetzt mal verneinen. Die Auflösung die das Loopback-Video-Device anbietet scheint ja offenbar was Gängiges zu sein.
Möglicherweise kommen Cheese und Co. nicht mit dem Pixelformat (YUYV 4:2:2 vs. Planar YUV 4:2:0) zurecht.
Falls ja, ist aber auch das nicht so einfach zu lösen.
Jedenfalls nicht mit dem bescheidenden Know-How, mit dem ich zu der Thematik aufwarten kann.

Evtl. hat hier ja sonst noch jemand mit Hilfe all der bisher angehäuften Informationen eine Erkenntnis.
Ich würd' das wenigstens noch das o.g. mit dem "dbgprint" machen und hier posten. Evtl. kann ja dann noch jemand was dazu sagen.
 
Apropos gstreamer:
Was ist eigentlich die Ausgabe (also mit droidcam usw. gestartet) von:
gst-device-monitor-1.0
?

(das Programm ist Teil des Port/Packages gstreamer1-plugins, welches aber wahrscheinlich sogar schon bei Dir installiert ist)
 
Jedenfalls nicht mit dem bescheidenden Know-How, mit dem ich zu der Thematik aufwarten kann.
Bescheiden würde ich das gar nicht nennen. Viel Arbeit für ne eigentlich Schnapsidee :D

Das Pixelformat sowie die Auflösungen sehen alle default und gängig aus. Aus alten Webcams kommt das auch so.

Was sagt vlc, akzeptiert das /dev/video0? vlc auf der Konsole sollte auch geschwätziger als cheese sein. Ist es eventuell ein Berechtigungsproblem? Ist der user in der Gruppe webcamd?
 
Bescheiden würde ich das gar nicht nennen.
Naja. Ich denk mal, wer so ein bisschen in der Materie video4linux drin ist der kann da sicherlich hilfreichere Aussagen machen als mein Nebelgestochere :-)

Viel Arbeit für ne eigentlich Schnapsidee
Die Idee als solches ist eigentlich gar nicht so verkehrt.
Weil der Webcam-Support unter FreeBSD ist .... ausbaufähig, ums mal vorsichtig zu formulieren.
Dann einfach sein Smartphone (was ja ohnehin fast jeder hat) zu einer Webcam zu machen, dürfte für viele FreeBSD-Desktop-User da ne interessante Idee sein.

Ist es eventuell ein Berechtigungsproblem? Ist der user in der Gruppe webcamd?
Ein Berechtigungsproblem scheidet eigentlich schon fast aus. Weil das Device hat die Rechte rw-rw-rw- und von daher darf sowieso jeder drauf zugreifen. Und mit pwcview kommt ja wohl auch ein Bild.
Also wenns ein Rechteproblem ist, kanns ja höchstens dadurch entstehen das das betreffende Programm einfach nur guckt, ob der Owner/Group mit dem effektiven User/Group übereinstimmt.
Aber ja. Man weiß natürlich nie. Man kann einfach mal mit webcamd -c v4l2loopback -U <myuser> entsprechend den Owner fürs Device setzen.

Was sagt vlc, akzeptiert das /dev/video0? vlc auf der Konsole sollte auch geschwätziger als cheese sein.
Und zwar mit voll aufgedrehten "Verbose-Level".
vlc --verbose 3 /dev/video....
Wobei dann immer noch die Frage ist, ob es was hilft. Das Fernziel ist ja irgendwie, das es im Browser funktioniert damit man irgendwie so ein ominöses Webconferencing machen kann.
Mein Gedankengang war ja so ungefähr:
cheese nimmt gstreamer. chromium meines Wissens nach auch. Wenn man es also in cheese zum laufen kriegt, dann läufts auch mit dem Browser.
btw. fällt mir da noch ein: man könnte man natürlich noch mal beim Browser nachgucken, ob der auf der Konsole oder sonstwo irgendwelche Meldungen ausgibt.

Letztlich ist das aber alles nur Herumgerate. Man müsste mal konkret in der Anwendung gucken, warum er das Loopback-Video-Device nicht akzeptiert. Idealerweise auch durch jemanden, der sich mit der Materie auskennt.

Man könnte auch mal gucken, obs ne Möglichkeit gibt da irgendwie was zu "overrulen". Sozusagen zu erzwingen, das er ein bestimmtes Video-Device nimmt.
 
Zuletzt bearbeitet:
Ich kann da auch nur wenig rumraten. VLC ist da immer so mein Ersttest als Etappenziel (dvb-Gedöhnse) und wenn das Fehler rauspupst, dann brauch ich vorerst keine weitere Software austesten.

man könnte man natürlich noch mal beim Browser nachgucken, ob der auf der Konsole oder sonstwo irgendwelche Meldungen ausgibt.
Jep, Firefox hat da auch nochmal Häkchen, was erlaubt ist und was nicht Mikro/Cam etc.
Könnte sein, dass wenn dieser Firefox nicht mehr jungfräulich im Sinne /dev/video0 ist, dass der das Smartfon jetzt durch eine irgendwann mal angeschlossene webcam blockt.
 
Was sagt vlc, akzeptiert das /dev/video0? vlc auf der Konsole sollte auch geschwätziger als cheese sein.
Du meinst wahrscheinlich /dev/video2. Ja, vlc akzeptiert das droidcam device problemlos. Die geschwätzige Aussage füge ich unten an. Ich möchte aber vorher noch ein paar Worte sagen. Cheese interessiert micht eigentlich nicht, aber die Möglichkeit, Videokonferenzen über den Browser abhalten zu können ist von äußerster Wichtigkeit. Warum sollte man sonst überhaupt eine Webcam haben oder verwenden wollen?
Jetzt habe ich zufälligerweise gestern ein Windows Laptop in die Hände bekommen und habe es natürlich sofort unter Windows ausprobiert. Also zunächst den Droidcam client für Windows heruntergeladen, installiert und gestartet:

  • Kein Meckern bei der Auswahl der Option "Audio" (soweit waren wir bei FreeBSD ja noch lange nicht)
  • Im Chrome Browser war in einem Google Meet sogar das Droidcam Device als Video Device schon ausgewählt und funktionierte direkt. Es konnte natürlich auch die Laptopkamera ausgewählt werden.
  • Das Audio Device von Droidcam stand auch zur Wahl

Fazit: Mit Windows keine Probleme, in FreeBSD sieht es im Moment schlecht aus, wegen dem Problem mit dem Browser und der mangelnden Audiounterstützung. Letztere kann man natürlich umgehen, indem man ein Mikro anschließt und dieses im Browser auswählt.

Die Idee als solches ist eigentlich gar nicht so verkehrt.
Weil der Webcam-Support unter FreeBSD ist .... ausbaufähig, ums mal vorsichtig zu formulieren.
Dann einfach sein Smartphone (was ja ohnehin fast jeder hat) zu einer Webcam zu machen, dürfte für viele FreeBSD-Desktop-User da ne interessante Idee sein.
Das genau ist es: Da man meistens ein Smartphone hat, kann man dieses anschließen anstatt sich extra eine Webcam zuzulegen. Tatsache ist, dass die integrierten Smartphonekameras teilweise eine deutlich bessere Qualität haben, als so manche Webcam, bzw. gute Webcams auch sehr teuer sein können.
Doch auch hier schon wieder eine Ernüchterung: Wenn man glaubt, man könnte seine alten Smartphones noch nutzen, weit gefehlt, denn droidcam erscheint erst gar nicht im Playstore von meinem Android 4.4 Teil.

Was mir noch aufgefallen ist: Die Droidcam App hat ständig lästige Werbung, einige Funktionen sind in der freien Funktion nicht verfügbar.
Auf dem Droidcam Client für Windows sind einige wichtige Funktionen wie Zoomen, Vertical und Horizontal Switch ausgegraut.
Auf dem hier unter FreeBSD verwendeten Linux Client sind die Funktionen jedoch verfügbar und funktionieren auch.

Ich bedanke mich für die ausführlichen Antworten, ich habe wieder ein wenig dazugelernt. Ein droidcam port für FreeBSD wäre durchaus interessant, aber ich kann jetzt leider nicht mehr zu dieser Angelegenheit beitragen.
Vielleicht werde ich mir eine bessere Webcam zulegen, doch dann würde ich zu dem Thema einen gesonderten Thread eröffnen.

Zum Abschluss noch die Ausgabe von vlc:

Code:
$ vlc --verbose 3 &
$ VLC media player 3.0.18 Vetinari (revision 3.0.13-8-g41878ff4f2)
[0000000800c5c060] main libvlc debug: VLC media player - 3.0.18 Vetinari
[0000000800c5c060] main libvlc debug: Copyright © 1996-2022 the VideoLAN team
[0000000800c5c060] main libvlc debug: revision 3.0.13-8-g41878ff4f2
[0000000800c5c060] main libvlc debug: configured with ./configure  '--enable-avcodec' '--enable-avformat' '--enable-dvbpsi' '--enable-fontconfig' '--enable-freetype' '--enable-libgcrypt' '--enable-libxml2' '--enable-oss' '--enable-postproc' '--enable-swscale' '--enable-vlc' '--disable-alsa' '--disable-archive' '--disable-chromaprint' '--disable-crystalhd' '--disable-dc1394' '--disable-decklink' '--disable-dsm' '--disable-dv1394' '--disable-fdkaac' '--disable-gst-decode' '--disable-gles2' '--disable-kai' '--disable-kva' '--disable-mpg123' '--disable-vnc' '--disable-opencv' '--disable-projectm' '--disable-schroedinger' '--disable-secret' '--disable-soxr' '--disable-telx' '--disable-tiger' '--disable-tremor' '--disable-udev' '--disable-update-check' '--disable-vsxu' '--disable-wasapi' '--disable-x26410b' '--with-kde-solid=/usr/local/share/solid/actions' 'ac_cv_search_pthread_rwlock_init=-pthread' 'BUILDCC=cc' '--disable-a52' '--disable-aa' '--disable-aom' '--enable-libass' '--enable-avahi' '--disable-caca' '--disable-chromecast' '--enable-dav1d' '--enable-dbus' '--disable-dca' '--enable-dvdnav' '--enable-dvdread' '--disable-faad' '--disable-flac' '--disable-fluidsynth' '--disable-freerdp' '--disable-fribidi' '--disable-gme' '--enable-gnutls' '--disable-goom' '--enable-harfbuzz' '--disable-jack' '--enable-jpeg' '--disable-kate' '--disable-bluray' '--disable-libplacebo' '--disable-svg' '--disable-sftp' '--disable-lirc' '--enable-live555' '--enable-lua' 'LUAC=luac52' 'LUA_CFLAGS=-I/usr/local/include/lua52' 'LUA_LIBS=-L/usr/local/lib -llua-5.2' '--disable-mad' '--disable-mfx' '--disable-mod' '--disable-libmpeg2' '--disable-mtp' '--disable-mpc' '--disable-ncurses' '--disable-nfs' '--enable-nls' '--disable-notify' '--enable-ogg' '--disable-oggspots' '--enable-optimizations' '--enable-opus' '--enable-png' '--disable-pulse' '--enable-qt' '--disable-realrtsp' '--disable-run-as-root' '--enable-samplerate' '--disable-sdl-image' '--disable-shout' '--disable-sid' '--disable-skins2' '--disable-libtar' '--disable-smbclient' '--disable-sndio' '--enable-speex' '--enable-sout' '--enable-taglib' '--enable-theora' '--enable-twolame' '--enable-upnp' '--enable-v4l2' '--enable-libva' '--enable-vcd' '--enable-libcddb' '--enable-vdpau' '--enable-vorbis' '--disable-vpx' '--enable-wayland' '--enable-xcb' '--enable-xvideo' '--with-x' '--disable-x264' '--disable-x265' '--disable-zvbi' '--x-libraries=/usr/local/lib' '--x-includes=/usr/local/include' '--prefix=/usr/local' '--localstatedir=/var' '--mandir=/usr/local/man' '--disable-silent-rules' '--infodir=/usr/local/share/info/' '--build=amd64-portbld-freebsd13.1' 'build_alias=amd64-portbld-freebsd13.1' 'CC=cc' 'CFLAGS=-O2 -pipe  -fstack-protector-strong -isystem /usr/local/include -fno-strict-aliasing ' 'LDFLAGS=  -fstack-protector-strong ' 'LIBS=-L/usr/local/lib' 'CPPFLAGS=-isystem /usr/local/include' 'CXX=c++' 'CXXFLAGS=-O2 -pipe -fstack-protector-strong -isystem /usr/local/include -fno-strict-aliasing  -isystem /usr/local/include ' 'CPP=cpp' 'PKG_CONFIG=pkgconf' 'PKG_CONFIG_LIBDIR=/wrkdirs/usr/ports/multimedia/vlc/work/.pkgconfig:/usr/local/libdata/pkgconfig:/usr/local/share/pkgconfig:/usr/libdata/pkgconfig' 'LIVE555_CFLAGS=-I/usr/local/include/liveMedia  -I/usr/local/include/UsageEnvironment  -I/usr/local/include/groupsock  -I/usr/local/include/BasicUsageEnvironment' 'LIVE555_LIBS=-L/usr/local/lib -lliveMedia  -lgroupsock -lBasicUsageEnvironment  -lUsageEnvironment  -L/usr/lib -lssl -lcrypto'
[0000000800c5c060] main libvlc debug: searching plug-in modules
[0000000800c5c060] main libvlc debug: loading plugins cache file /usr/local/lib/vlc/plugins/plugins.dat
[0000000800c5c060] main libvlc debug: recursively browsing `/usr/local/lib/vlc/plugins'
[0000000800c5c060] main libvlc debug: plug-ins loaded: 446 modules
[0000000800c5c060] main libvlc debug: opening config file (/home/werner/.config/vlc/vlcrc)
[0000000800c68060] main logger debug: looking for logger module matching "any": 3 candidates
[0000000800c68060] main logger debug: using logger module "console"
[0000000800c5c060] main libvlc debug: translation test: code is "C"
[0000000800c682a0] main keystore debug: looking for keystore module matching "memory": 3 candidates
[0000000800c682a0] main keystore debug: using keystore module "memory"
[0000000800c5c060] main libvlc debug: CPU has capabilities MMX MMXEXT SSE SSE2 SSE3 SSSE3 SSE4.1 FPU
[0000000800d71a60] main input debug: Creating an input for 'Media Library'
[0000000800d71a60] main input debug: Input is a meta file: disabling unneeded options
[0000000800d71a60] main input debug: using timeshift granularity of 50 MiB
[0000000800d71a60] main input debug: using default timeshift path
[0000000800d71a60] main input debug: `file/directory:///home/werner/.local/share/vlc/ml.xspf' gives access `file' demux `directory' path `/home/werner/.local/share/vlc/ml.xspf'
[0000000800c62260] main input source debug: creating demux: access='file' demux='directory' location='/home/werner/.local/share/vlc/ml.xspf' file='/home/werner/.local/share/vlc/ml.xspf'
[0000000800d9e160] main demux debug: looking for access_demux module matching "file": 13 candidates
[0000000800d9e160] main demux debug: no access_demux modules matched
[0000000800d9f1a0] main stream debug: creating access: file:///home/werner/.local/share/vlc/ml.xspf
[0000000800d9f1a0] main stream debug:  (path: /home/werner/.local/share/vlc/ml.xspf)
[0000000800d9f1a0] main stream debug: looking for access module matching "file": 23 candidates
[0000000800d9f1a0] main stream debug: using access module "filesystem"
[0000000800d9f2e0] main stream debug: looking for stream_filter module matching "prefetch,cache_read": 26 candidates
[0000000800d9f2e0] cache_read stream debug: Using stream method for AStream*
[0000000800d9f2e0] cache_read stream debug: starting pre-buffering
[0000000800d9f2e0] cache_read stream debug: received first data after 0 ms
[0000000800d9f2e0] cache_read stream debug: pre-buffering done 296 bytes in 0s - 3441 KiB/s
[0000000800d9f2e0] main stream debug: using stream_filter module "cache_read"
[0000000800d9f420] main stream debug: looking for stream_filter module matching "any": 26 candidates
[0000000800d9f420] playlist stream debug: using XSPF playlist reader
[0000000800d9f420] main stream debug: using stream_filter module "playlist"
[0000000800d9f420] main stream debug: stream filter added to 0x800d9f2e0
[0000000800d9f560] main stream debug: looking for stream_filter module matching "any": 26 candidates
[0000000800d9f560] main stream debug: no stream_filter modules matched
[0000000800d9e160] main stream_directory debug: looking for stream_directory module matching "any": 0 candidates
[0000000800d9e160] main stream_directory debug: no stream_directory modules
[0000000800c62260] main input source debug: attachment of directory-extractor failed for file:///home/werner/.local/share/vlc/ml.xspf
[0000000800d9f560] main stream debug: looking for stream_filter module matching "record": 26 candidates
[0000000800d9f560] main stream debug: using stream_filter module "record"
[0000000800c62260] main input source debug: creating demux: access='file' demux='directory' location='/home/werner/.local/share/vlc/ml.xspf' file='/home/werner/.local/share/vlc/ml.xspf'
[0000000800d9e160] main demux debug: looking for demux module matching "directory": 50 candidates
[0000000800d9e160] main demux debug: using demux module "directory"
[0000000800c68360] main demux meta debug: looking for meta reader module matching "any": 2 candidates
[0000000800c68360] lua demux meta debug: Trying Lua scripts in /home/werner/.local/share/vlc/lua/meta/reader
[0000000800c68360] lua demux meta debug: Trying Lua scripts in /usr/local/lib/vlc/lua/meta/reader
[0000000800c68360] lua demux meta debug: Trying Lua playlist script /usr/local/lib/vlc/lua/meta/reader/filename.luac
[0000000800c68360] lua demux meta debug: Trying Lua scripts in /usr/local/share/vlc/lua/meta/reader
[0000000800c68360] main demux meta debug: no meta reader modules matched
[0000000800d71a60] main input debug: `file/directory:///home/werner/.local/share/vlc/ml.xspf' successfully opened
[0000000800c68360] main xml reader debug: looking for xml reader module matching "any": 1 candidates
[0000000800c68360] main xml reader debug: using xml reader module "xml"
[0000000800d71a60] main input debug: EOF reached
[0000000800d9e160] main demux debug: removing module "directory"
[0000000800d9f560] main stream debug: removing module "record"
[0000000800d9f420] main stream debug: removing module "playlist"
[0000000800d9f2e0] main stream debug: removing module "cache_read"
[0000000800d9f1a0] main stream debug: removing module "filesystem"
[0000000800c51be0] main playlist debug: creating audio output
[0000000800c2fb60] main audio output debug: looking for audio output module matching "any": 4 candidates
[0000000800c2fb60] oss audio output debug: using FreeBSD native OSS ABI version 1301000 (0x040000) under BSD
[0000000800c2fb60] main audio output debug: using audio output module "oss"
[0000000800c51be0] main playlist debug: keeping audio output
[0000000800c68360] main interface debug: looking for interface module matching "dbus,none": 15 candidates
[0000000800c68360] dbus interface debug: listening on dbus as: org.mpris.MediaPlayer2.vlc
[0000000800c68360] main interface debug: using interface module "dbus"
[0000000800c68a20] main interface debug: looking for interface module matching "hotkeys,none": 15 candidates
[0000000800c68a20] main interface debug: using interface module "hotkeys"
[0000000800c68ae0] main interface debug: looking for interface module matching "globalhotkeys,none": 15 candidates
[0000000800c68ae0] main interface debug: using interface module "xcb_hotkeys"
[0000000800c5c060] main libvlc: Running vlc with the default interface. Use 'cvlc' to use vlc without interface.
[0000000800c68ba0] main interface debug: looking for interface module matching "any": 15 candidates
[0000000811e45f60] main generic debug: looking for extension module matching "any": 1 candidates
[0000000811e45f60] lua generic debug: Opening Lua Extension module
[0000000811e45f60] lua generic debug: Trying Lua scripts in /home/werner/.local/share/vlc/lua/extensions
[0000000811e45f60] lua generic debug: Trying Lua scripts in /usr/local/lib/vlc/lua/extensions
[0000000811e45f60] lua generic debug: Trying Lua playlist script /usr/local/lib/vlc/lua/extensions/VLSub.luac
[0000000811e45f60] lua generic debug: Scanning Lua script /usr/local/lib/vlc/lua/extensions/VLSub.luac
[0000000811e45f60] lua generic debug: Script /usr/local/lib/vlc/lua/extensions/VLSub.luac has the following capability flags: 0x5
[0000000811e45f60] lua generic debug: Trying Lua scripts in /usr/local/share/vlc/lua/extensions
[0000000811e45f60] main generic debug: using extension module "lua"
[0000000818402c60] main probe debug: looking for services probe module matching "any": 7 candidates
[0000000818402c60] main probe debug: no services probe modules matched
[0000000800c68ba0] qt interface debug: Sorting by column -1, order 0
[0000000800c68ba0] qt interface debug: Sorting by column -1, order 0
[0000000800c68ba0] main interface debug: using interface module "qt"
[0000000800c51be0] main playlist: playlist is empty
[0000000800c51be0] main playlist debug: nothing to play
[0000000800c51be0] main playlist debug: processing request item: v4l2:///dev/video2, node: Playlist, skip: 0
[0000000800c51be0] main playlist debug: rebuilding array of current - root Playlist
[0000000800c51be0] main playlist debug: rebuild done - 1 items, index 0
[0000000800c51be0] main playlist debug: starting playback of new item
[0000000800c51be0] main playlist debug: resyncing on v4l2:///dev/video2
[0000000800c51be0] main playlist debug: v4l2:///dev/video2 is at 0
[0000000800c51be0] main playlist debug: creating new input thread
[0000000819805060] main input debug: Creating an input for 'v4l2:///dev/video2'
[0000000800c51be0] main playlist debug: requesting art for new input thread
[0000000819805060] main input debug: using timeshift granularity of 50 MiB
[0000000819805060] main input debug: using default timeshift path
[0000000819805060] main input debug: `v4l2:///dev/video2' gives access `v4l2' demux `any' path `/dev/video2'
[0000000819c0f060] main input source debug: creating demux: access='v4l2' demux='any' location='/dev/video2' file='/dev/video2'
[0000000819c16060] main demux debug: looking for access_demux module matching "v4l2": 13 candidates
[0000000819c16060] v4l2 demux debug: opening device '/dev/video2'
[000000081a400060] main meta fetcher debug: looking for meta fetcher module matching "any": 1 candidates
[000000081a400060] lua meta fetcher debug: Trying Lua scripts in /home/werner/.local/share/vlc/lua/meta/fetcher
[000000081a400060] lua meta fetcher debug: Trying Lua scripts in /usr/local/lib/vlc/lua/meta/fetcher
[000000081a400060] lua meta fetcher debug: Trying Lua scripts in /usr/local/share/vlc/lua/meta/fetcher
[000000081a400060] main meta fetcher debug: no meta fetcher modules matched
[000000081a400060] main art finder debug: looking for art finder module matching "any": 2 candidates
[000000081a400060] lua art finder debug: Trying Lua scripts in /home/werner/.local/share/vlc/lua/meta/art
[000000081a400060] lua art finder debug: Trying Lua scripts in /usr/local/lib/vlc/lua/meta/art
[000000081a400060] lua art finder debug: Trying Lua playlist script /usr/local/lib/vlc/lua/meta/art/00_musicbrainz.luac
[000000081a400060] lua art finder debug: skipping script (unmatched scope) /usr/local/lib/vlc/lua/meta/art/00_musicbrainz.luac
[000000081a400060] lua art finder debug: Trying Lua playlist script /usr/local/lib/vlc/lua/meta/art/01_googleimage.luac
[000000081a400060] lua art finder debug: skipping script (unmatched scope) /usr/local/lib/vlc/lua/meta/art/01_googleimage.luac
[000000081a400060] lua art finder debug: Trying Lua playlist script /usr/local/lib/vlc/lua/meta/art/02_frenchtv.luac
[000000081a400060] lua art finder debug: skipping script (unmatched scope) /usr/local/lib/vlc/lua/meta/art/02_frenchtv.luac
[0000000819c16060] v4l2 demux debug: device Dummy video device (0x0000) using driver v4l2 loopback (version 5.17.0) on platform:v4l2loopback-000
[0000000819c16060] v4l2 demux debug:  with capabilities 0x05208003 (overall 0x85208003)
[0000000819c16060] v4l2 demux debug: video input loopback (0) is camera
[000000081a400060] lua art finder debug: Trying Lua playlist script /usr/local/lib/vlc/lua/meta/art/03_lastfm.luac
[0000000819c16060] v4l2 demux debug: selected input 0
[0000000819c16060] v4l2 demux debug: no video standard selection
[0000000819c16060] v4l2 demux debug: no tuning required (analog baseband input)
[0000000819c16060] v4l2 demux debug: no audio input available
[0000000819c16060] v4l2 demux debug:  supports raw format YU12 (I420): Planar YUV 4:2:0
[0000000819c16060] v4l2 demux debug:  emulates raw format RGB3 (RV24): RGB3
[0000000819c16060] v4l2 demux debug:  emulates raw format BGR3 (RV24): BGR3
[0000000819c16060] v4l2 demux debug:  emulates raw format YV12 (YV12): YV12
[0000000819c16060] v4l2 demux debug: selected format YU12 (I420)
[000000081a400060] lua art finder debug: skipping script (unmatched scope) /usr/local/lib/vlc/lua/meta/art/03_lastfm.luac
[000000081a400060] lua art finder debug: Trying Lua scripts in /usr/local/share/vlc/lua/meta/art
[000000081a400060] main art finder debug: no art finder modules matched
[0000000819c16060] v4l2 demux debug:  requested frame internal: 1/60
[0000000819c16060] v4l2 demux debug:  frame size 640x480
[0000000819c16060] v4l2 demux debug:   discrete frame interval: 1/30
[0000000819c16060] v4l2 demux debug:  best discrete frame size: 640x480
[0000000819c16060] v4l2 demux debug: cannot get cropping properties: Invalid argument
[0000000819c16060] v4l2 demux debug: 460800 bytes maximum for complete image
[0000000819c16060] v4l2 demux debug: Interlacing setting: progressive
[0000000819c16060] v4l2 demux debug: color primaries: 8
[0000000819c16060] v4l2 demux debug: transfer function: 0
[0000000819c16060] v4l2 demux debug: YCbCr encoding: 0
[0000000819c16060] v4l2 demux debug: quantization: 0
[0000000819c16060] v4l2 demux debug: added new video ES I420 640x480 (640x480)
[0000000819c16060] v4l2 demux debug:  frame rate: 30/1
[0000000819c16060] v4l2 demux debug:  aspect ratio: 1/1
[0000000819805060] main input debug: selecting program id=0
[0000000819c16060] v4l2 demux debug: streaming with 2 memory-mapped buffers
[0000000819c16060] v4l2 demux debug: control class User Controls:
[0000000819c16060] v4l2 demux debug:  boolean  keep_format (0098F900)
[0000000819c16060] v4l2 demux debug:   current: false, default: false
[0000000819c16060] v4l2 demux debug:  boolean  sustain_framerate (0098F901)
[0000000819c16060] v4l2 demux debug:   current: false, default: false
[0000000819c16060] v4l2 demux debug:  integer  timeout (0098F902)
[0000000819c16060] v4l2 demux debug:   current:   0, default:   0
[0000000819c16060] v4l2 demux debug:  boolean  timeout_image_io (0098F903)
[0000000819c16060] v4l2 demux debug:   current: false, default: false
[0000000819c16060] main demux debug: using access_demux module "v4l2"
[0000000819c3b3e0] main decoder debug: looking for video decoder module matching "any": 11 candidates
[0000000819c3b3e0] main decoder debug: using video decoder module "rawvideo"
[0000000819c2e060] main demux meta debug: looking for meta reader module matching "any": 2 candidates
[0000000819c2e060] lua demux meta debug: Trying Lua scripts in /home/werner/.local/share/vlc/lua/meta/reader
[0000000819c2e060] lua demux meta debug: Trying Lua scripts in /usr/local/lib/vlc/lua/meta/reader
[0000000819805060] main input debug: Buffering 0%
[0000000819c2e060] lua demux meta debug: Trying Lua playlist script /usr/local/lib/vlc/lua/meta/reader/filename.luac
[0000000819c2e060] lua demux meta debug: Trying Lua scripts in /usr/local/share/vlc/lua/meta/reader
[0000000819c2e060] main demux meta debug: no meta reader modules matched
[0000000819805060] main input debug: `v4l2:///dev/video2' successfully opened
[000000081aa22060] main spu text debug: looking for text renderer module matching "any": 2 candidates
[000000081aa22060] freetype spu text debug: Building font databases.
qt.qpa.xcb: QXcbConnection: XCB error: 3 (BadWindow), sequence: 1381, resource id: 23337677, major code: 40 (TranslateCoords), minor code: 0
[0000000800c68ba0] qt interface debug: IM: Setting an input
[000000081aa22060] freetype spu text debug: Took -8953 microseconds
[0000000819805060] main input debug: Buffering 3%
[000000081aa22060] main spu text debug: using text renderer module "freetype"
[000000081aa22360] main scale debug: looking for video converter module matching "any": 17 candidates
[000000081aa22360] swscale scale debug: 32x32 (32x32) chroma: YUVA -> 16x16 (16x16) chroma: RGBA with scaling using Bicubic (good quality)
[000000081aa22360] main scale debug: using video converter module "swscale"
[000000081aa22660] main scale debug: looking for video converter module matching "any": 17 candidates
[000000081aa22660] yuvp scale debug: YUVP to YUVA converter
[000000081aa22660] main scale debug: using video converter module "yuvp"
[000000081aa00060] main video output debug: Deinterlacing available
[000000081aa00060] main video output debug: deinterlace -1, mode auto, is_needed 0
[000000081aa05060] main window debug: looking for vout window module matching "qt,any": 5 candidates
[000000081aa05060] qt window debug: requesting video window...
[000000081aa05060] main window debug: using vout window module "qt"
[000000081aa07be0] main inhibit debug: looking for inhibit module matching "any": 2 candidates
[000000081aa05060] main window debug: resized to 640x480
[000000081aa07be0] dbus_screensaver inhibit debug: cannot find service org.freedesktop.ScreenSaver
[000000081aa07be0] dbus_screensaver inhibit debug: cannot find service org.freedesktop.PowerManagement.Inhibit
[000000081aa07be0] dbus_screensaver inhibit debug: cannot find service org.mate.SessionManager
[000000081aa07be0] dbus_screensaver inhibit debug: cannot find service org.gnome.SessionManager
[000000081aa07be0] main inhibit debug: using inhibit module "xdg"
[000000081aa00060] main video output debug: Opening vout display wrapper
[000000081b001560] main vout display debug: looking for vout display module matching "any": 10 candidates
[000000081b001560] main vout display debug: VoutDisplayEvent 'resize' 640x480
[000000081b020060] main gl debug: looking for opengl module matching "any": 3 candidates
[0000000800c68ba0] qt interface debug: Logical video size: 640x480
[000000081aa05060] main window debug: resized to 640x480
[000000081b001560] main vout display debug: VoutDisplayEvent 'resize' 640x480
[0000000819805060] main input debug: Buffering 28%
[000000081b020060] egl_x11 gl debug: EGL version 1.5 by NVIDIA
[000000081b020060] egl_x11 gl debug:  extensions: EGL_EXT_buffer_age EGL_EXT_client_sync EGL_EXT_create_context_robustness EGL_EXT_image_dma_buf_import EGL_EXT_image_dma_buf_import_modifiers EGL_MESA_image_dma_buf_export EGL_EXT_output_base EGL_EXT_stream_acquire_mode EGL_EXT_sync_reuse EGL_IMG_context_priority EGL_KHR_config_attribs EGL_KHR_create_context_no_error EGL_KHR_context_flush_control EGL_KHR_create_context EGL_KHR_fence_sync EGL_KHR_get_all_proc_addresses EGL_KHR_partial_update EGL_KHR_swap_buffers_with_damage EGL_KHR_no_config_context EGL_KHR_gl_colorspace EGL_KHR_gl_renderbuffer_image EGL_KHR_gl_texture_2D_image EGL_KHR_gl_texture_3D_image EGL_KHR_gl_texture_cubemap_image EGL_KHR_image EGL_KHR_image_base EGL_KHR_image_pixmap EGL_KHR_reusable_sync EGL_KHR_stream EGL_KHR_stream_attrib EGL_KHR_stream_consumer_gltexture EGL_KHR_stream_cross_process_fd EGL_KHR_stream_fifo EGL_KHR_stream_producer_eglsurface EGL_KHR_surfaceless_context EGL_KHR_wait_sync EGL_NV_post_sub_buffer EGL_NV_quadruple_buffer EGL_NV_stream_consumer_eglimage EGL_NV_stream_cross_display EGL_NV_stream_cross_object EGL_NV_stream_cross_process EGL_NV_stream_cross_system EGL_NV_stream_flush EGL_NV_stream_metadata EGL_NV_stream_remote EGL_NV_stream_reset EGL_NV_stream_socket EGL_NV_stream_socket_inet EGL_NV_stream_socket_unix EGL_NV_stream_sync EGL_NV_stream_fifo_next EGL_NV_stream_fifo_synchronous EGL_NV_stream_consumer_gltexture_yuv EGL_NV_stream_attrib EGL_NV_stream_origin EGL_NV_system_time EGL_NV_output_drm_flip_event EGL_NV_triple_buffer EGL_NV_robustness_video_memory_purge
[000000081b020060] main gl debug: using opengl module "egl_x11"
[000000081b020060] gl gl debug: MAP_PERSISTENT support (direct rendering) enabled
[0000000819805060] main input debug: Buffering 50%
[000000081b001560] main vout display debug: using vout display module "gl"
[000000081aa00060] main video output debug: original format sz 640x480, of (0,0), vsz 640x480, 4cc I420, sar 1:1, msk r0x0 g0x0 b0x0
[000000081aa22060] main spu text debug: removing module "freetype"
[0000000800c68ba0] qt interface debug: Logical video size: 640x480
[000000081aa22060] main spu text debug: looking for text renderer module matching "any": 2 candidates
[000000081aa05060] main window debug: resized to 640x480
[000000081b001560] main vout display debug: VoutDisplayEvent 'resize' 640x480
[000000081aa22060] freetype spu text debug: Building font databases.
[000000081aa22060] freetype spu text debug: Took -8350 microseconds
[000000081aa22060] main spu text debug: using text renderer module "freetype"
[0000000819c3b3e0] main decoder debug: Received first picture
[0000000819805060] main input debug: Buffering 71%
[0000000819805060] main input debug: Buffering 99%
[0000000819805060] main input debug: Stream buffering done (362 ms in 360 ms)
[0000000819805060] main input debug: Decoder wait done in 0 ms
[000000081b001560] main vout display debug: auto hiding mouse cursor
[000000081b001560] main vout display debug: auto hiding mouse cursor
[000000081b001560] main vout display debug: auto hiding mouse cursor
[000000081aa00060] main video output debug: picture might be displayed late (missing 7 ms)
[000000081aa00060] main video output debug: picture might be displayed late (missing 4 ms)
[000000081aa00060] main video output debug: picture might be displayed late (missing 0 ms)
[000000081aa00060] main video output debug: picture might be displayed late (missing 2 ms)
 
Mit Windows keine Probleme
Ok. This thread can be mark as solved ;-)

Ein droidcam port für FreeBSD
Das war doch der BSD-Port. Naja. Zumindest wurde BSD berücksichtigt.

Vielleicht werde ich mir eine bessere Webcam zulegen
Eine grobe Vororientierung gibt vielleicht:
wobei das Wiki ja auch gern mal etwas veraltet und/oder unvollständig ist.

Zum Abschluss noch die Ausgabe von vlc
Dadurch, das es mit VLC funktioniert ist das eher unspanned. Wenn, dann wäre höchstens noch mal ein "dbgprinted" droidcam interessant.
 
Ok. This thread can be mark as solved ;-)
Das kann man nicht sagen. Für FreeBSD ist es ja noch lange nicht solved.

Das war doch der BSD-Port. Naja. Zumindest wurde BSD berücksichtigt.
Ein Port ist für mich, wenn ich nur ein pkg install [portname] machen muss, und dann alles funktioniert, so wie in diesem Fall wie bei Windows. Inwieweit jemand hier mit den notwendigen Kenntnissen daran Interesse hätte, kann ich leider nicht ahnen. Ich wünschte, ich hätte die Notwendigen Kenntnisse dazu.
Eine grobe Vororientierung gibt vielleicht:
WebcamCompat - FreeBSD Wiki wobei das Wiki ja auch gern mal etwas veraltet und/oder unvollständig ist.
Das habe ich auch schon gesehen und das ist genau das Problem.

Wenn, dann wäre höchstens noch mal ein "dbgprinted" droidcam interessant.
Bei Gelegenheit mal.
 
Zurück
Oben