[LINUX] Verwendung von Fujifilm X-T3 als Webcam unter Ubuntu 20.04

Summary

installieren

Installieren Sie zuerst die erforderlichen Pakete

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

Überprüfen Sie nach Abschluss der Installation das aktuelle / dev / video *

ll /dev/video*

Die Handumgebung ist ein Notebook-PC mit integrierter Kamera und folgendem Display

crw-rw----+ 1 root video 81,0 25. August 15:00 /dev/video0
crw-rw----+ 1 root video 81,1. August 25 15:00 /dev/video1

Fügen Sie dann ein Dummy-Videogerät hinzu

sudo modprobe v4l2loopback exclusive_caps=1 max_buffers=2

Überprüfen Sie die Nummer des hinzugefügten Geräts

ll /dev/video*

Die folgende Anzeige in der Handumgebung

crw-rw----+ 1 root video 81,0 25. August 15:00 /dev/video0
crw-rw----+ 1 root video 81,1. August 25 15:00 /dev/video1
crw-rw----+ 1 root video 81,2. August 26 09:45 /dev/video2

Dummy-Gerät mit / dev / video2 hinzugefügt. Verwenden Sie dies später

Überprüfen Sie die Informationen des hinzugefügten Geräts

v4l2-ctl --device=/dev/video2 --info

Ein solches Display zur Hand

Driver Info:
        Driver name      : v4l2 loopback
        Card type        : Dummy video device (0x0000)
        Bus info         : platform:v4l2loopback-000
        Driver version   : 5.4.44
        Capabilities     : 0x85208000
                Video Memory-to-Memory
                Read/Write
                Streaming
                Extended Pix Format
                Device Capabilities
        Device Caps      : 0x85208000
                Video Memory-to-Memory
                Read/Write
                Streaming
                Extended Pix Format
                Device Capabilities

Verbinden Sie den X-T3 und den PC über USB. Wenn Sie Folgendes ausführen, überträgt gphoto2 das Video an die Standardausgabe: Schreiben Sie das Rohvideo mit ffmpeg im Format yuv420p nach / dev / video2.

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

Starten Sie nun den Zoom und wählen Sie das Dummy-Gerät als Videogerät aus. Konvertierung von X-T3 zu Webcam abgeschlossen

Fertig

Es ist mühsam, jedes Mal den folgenden Befehl einzugeben. Beenden Sie ihn daher, damit er automatisch ausgeführt wird

sudo modprobe v4l2loopback exclusive_caps=1 max_buffers=2

Erstellen Sie ein Modul namens dslr-webcam und fügen Sie es in die Liste ein, die Sie laden möchten

cat << 'EOS' >> /etc/modprobe.d/dslr-webcam.conf
# Module options for Video4Linux, needed for our DSLR Webcam
alias dslr-webcam v4l2loopback
options v4l2loopback exclusive_caps=1 max_buffers=2
EOS

echo "dslr-webcam" >> /etc/modules

Nachtrag

Nach dem Neustart war / dev / video0 ein Dummy-Gerät.

Überprüfen Sie mit dem folgenden Befehl

v4l2-ctl --device=/dev/video0 --info

Ich kann mich nicht jedes Mal an den Befehl erinnern, wenn ich mit der Aufnahme beginne. Deshalb habe ich einen Fuji-Befehl erstellt.

cat << 'EOS' > ~/bin/fuji
gphoto2 --stdout --capture-movie | ffmpeg -i - -vcodec rawvideo -pix_fmt yuv420p -f v4l2 /dev/video0
EOS
chmod +x ~/bin/fuji

Auch nach einem erneuten Neustart war / dev / video0 ein Dummy-Gerät, daher scheint es, dass dslr-webcam in meiner Umgebung vor der Kamera des Notebooks geladen ist.

Es kann als Webcam im Zoom verwendet werden, ist jedoch in Skype schwarz. Ändern Sie bei Verwendung mit Skype den Maßstab unter Bezugnahme auf die URL unter "-vf scale = 1024: 567" und es ist in Ordnung.

gphoto2 --stdout --capture-movie | ffmpeg -i - -vcodec rawvideo -vf scale=1024:567 -pix_fmt yuv420p -f v4l2 /dev/video0

https://answers.microsoft.com/en-us/skype/forum/all/video-feed-from-capture-device-elgato-cam-link-4k/e596fff6-c7df-49b8-8d25-e19b5235aea4

Referenzmaterial

https://medium.com/nerdery/dslr-webcam-setup-for-linux-9b6d1b79ae22

Recommended Posts

Verwendung von Fujifilm X-T3 als Webcam unter Ubuntu 20.04
[Tipps] Verwendung des iPhone als Webkamera unter Linux
Ein Memorandum zur Verwendung von Keras 'keras.preprocessing.image
Verwendung von GitHub auf einem Server für mehrere Personen ohne Kennwort
So erstellen Sie eine neue virtuelle Python-Umgebung unter Ubuntu
Verwendung von Dataiku unter Windows
Hinweise zur Verwendung von Pywinauto
Hinweise zur Verwendung von featuretools
Wie benutzt man Homebrew in Debian?
Verwendung von cuML SVC als Gridsearch-CV-Klassifikator
So registrieren Sie ein Paket in PyPI (Stand September 2017)
So verwenden Sie eine andere Datei als .fabricrc als Konfigurationsdatei
So erstellen Sie eine Python-Umgebung mit Virtualenv unter Ubuntu 18.04 LTS
So stellen Sie eine Webanwendung in der Alibaba Cloud als Freiberufler bereit
Wie man Mecab, neologd-ipadic auf Colab verwendet
Verwendung von OpenVPN mit Ubuntu 18.04.3 LTS
So verwenden Sie Google Assistant unter Windows 10
[Ubuntu] So führen Sie ein Shell-Skript aus
Memorandum über die Verwendung von Gremlin Python
Wie installiere ich php7.4 unter Linux (Ubuntu)
So testen Sie auf einer von Django authentifizierten Seite
So tarnen Sie eine ZIP-Datei als PNG-Datei
[Neueste] So erstellen Sie eine Java-Umgebung unter Ubuntu
Verwendung von Python Kivy ④ ~ Ausführung unter Android ~
So führen Sie MeCab unter Ubuntu 18.04 LTS Python aus
So aktualisieren Sie die Sicherheit unter Ubuntu 19.10 Eoan Ermine
Wie man mit 2017 Windows ein anständiges Leben führt
[Linux] Wie man .bashrc eines allgemeinen Benutzers mit WSL2 Ubuntu20.04 auch als Root liest
Verwendung von xml.etree.ElementTree
Wie benutzt man Python-Shell
Hinweise zur Verwendung von tf.data
Verwendung von virtualenv
Wie benutzt man Seaboan?
Verwendung von Image-Match
Wie man Shogun benutzt
Verwendung von Pandas 2
Verwendung von Virtualenv
Verwendung von numpy.vectorize
Verwendung von pytest_report_header
Wie man teilweise verwendet
Wie man Bio.Phylo benutzt
Verwendung von SymPy
Wie man x-means benutzt
Verwendung von WikiExtractor.py
Verwendung von IPython
Verwendung von virtualenv
Wie benutzt man Matplotlib?
Verwendung von iptables
Wie benutzt man numpy?
Verwendung von TokyoTechFes2015
Wie benutzt man venv
Verwendung des Wörterbuchs {}
Wie benutzt man Pyenv?
Verwendung der Liste []
Wie man Python-Kabusapi benutzt
Verwendung von OptParse
Verwendung von return