Moin,
in Zeiten von Homeoffice wollte ich meine Nikon Z6 als Webcam per USB-C einbinden. Das hat auch ganz gut geklappt, aber leider bekomme ich den Ausgabestream nicht angezeigt.
Aber im Detail:
Die Nikon Z6 wird per lsusb richtig erkannt und kann per gphoto2 angesprochen werden.
Ausgabe von gphoto2 --abilities:
1 2 3 4 5 6 7 8 9 10 11 12 13 | joerg@Silber:~$ gphoto2 --abilities Fähigkeiten für Kamera : Nikon Z6 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 : Ja |
Ausgabe von gphoto2 --summary (gekürzt):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | joerg@Silber:~$ gphoto2 --summary Kamerazusammenfassung: Hersteller: Nikon Corporation Modell: Z 6 Version: V3.12 Seriennummer: 00000000000000000000000006027072 Vendor Extension ID: 0xa (1.10) Beschreibung der Vendor Extension: Microsoft.com/DeviceServices: 1.0 Aufnahmeformate: JPEG TIFF Undefined Type Anzeigeformate: JPEG, Undefined Type, Association/Directory, TIFF, Script, Apple Quicktime, Unknown(b982) Fähigkeiten des Geräts: Dateien Download, Löschen von Dateien, Hochladen von Dateien Generische Bild Aufnahme, keine Offene Aufnahme, Nikon Capture 1, Nikon Capture 2, Nikon Capture 3 Informationen über Speichermedium: store_00010001: Beschreibung des Speichergeräts: Keine Label des Speichergerätes: NIKON Z 6 [Slot 1] Speichertyp: Entfernbarer Speicher (Karte) Typ des Dateisystems: Standard Digital Kamera Layout (DCIM) Zugriffsmöglichkeiten: Nur Lesen und Löschen Maximale Kapazität: 60129542144 (57344 MB) Freier Platz (Bytes): 53965225984 (51465 MB) Freier Speicher (Bilder): 731 Properties des Geräts: Akkuladung(0x5001):(read only) (type=0x2) Range [1 - 100, step 1] value: 60% (60) Bildgröße(0x5003):(readwrite) (type=0xffff) Enumeration [ '6048x4024', '4528x3016', '3024x2016' ] value: '6048x4024' Kompressionseinstellung(0x5004):(readwrite) (type=0x2) Enumeration [0,1,2,3,4,5,6,7,8,9,10,11,12,13] value: 13 Weißabgleich(0x5005):(readwrite) (type=0x4) Enumeration [2,4,5,6,7,32784,32785,32786,32787,32790] value: Automatic (2) F-Nummer(0x5007):(read only) (type=0x4) Enumeration [400,450,500,560,630,710,800,900,1000,1100,1300,1400,1600,1800,2000,2200] value: f/4 (400) Fokus Tiefe(0x5008):(read only) (type=0x6) Range [2400 - 7000, step 1] value: 26 mm (2550) |
Versuche ich jetzt ein Video per gphoto2 auszugeben,
joerg@Silber:~$ sudo gphoto2 --capture-movie --stdout | ffmpeg -re -i pipe:0 -listen 1 -f mjpeg http://localhost:8080/feed.jpg
bekomme ich eine lange Ausgabe die mit folgenden Angaben endet:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | [...] Nehme Vorschaubilder als Film in 'stdout' auf. Drücke Ctrl-C zum abbrechen. [mjpeg @ 0x55a0a7a58740] Format mjpeg detected only with low score of 25, misdetection possible! Input #0, mjpeg, from 'pipe:0': Duration: N/A, bitrate: N/A Stream #0:0: Video: mjpeg (Baseline), yuvj420p(pc, bt470bg/unknown/unknown), 640x424, 25 tbr, 1200k tbn, 25 tbc Stream mapping: Stream #0:0 -> #0:0 (mjpeg (native) -> mjpeg (native)) Output #0, mjpeg, to 'http://localhost:8080/feed.jpg': Metadata: encoder : Lavf58.29.100 Stream #0:0: Video: mjpeg, yuvj420p(pc), 640x424, q=2-31, 200 kb/s, 25 fps, 25 tbn, 25 tbc Metadata: encoder : Lavc58.54.100 mjpeg Side data: cpb: bitrate max/min/avg: 0/0/200000 buffer size: 0 vbv_delay: -1 ^Cframe= 8229 fps= 25 q=24.8 Lsize= 75686kB time=00:05:29.16 bitrate=1883.6kbits/s speed= 1x |
Beende ich den Terminalbefehl mit Strg + C wird der Bildbetrachter geöffnet und das letzte Bild angezeigt.
Leider gelingt es mir weder im Browser die angegebene Ausgabeseite 'http://localhost:8080/feed.jpg' zu öffnen noch per VLC als Aufnahmegrät noch als Netzwerkstream einzubinden.
Vielen Dank für kreative Hinweise,
Jörg