Summary
- Fujifilm X-T3をwebcamとして使うためのソフトウェア「FUJIFILM X Webcam」はWindows, Mac向けのみでLinuxは非対応。
- 普段使用のUbuntu 20.04でもFujifilm X-T3をWebcamとして使用したい。
- Gphoto2とffmpegを使えばできるので、以下に手順を纏める。
セットアップ
まずは必要なパッケージをインストール
sudo apt-get install gphoto2 v4l2loopback-utils v4l2loopback-dkms ffmpeg
インストール完了後に現状の/dev/video*を確認
ll /dev/video*
手元環境はノートPC、内蔵カメラ付きで以下の表示
crw-rw----+ 1 root video 81, 0 8月 25 15:00 /dev/video0
crw-rw----+ 1 root video 81, 1 8月 25 15:00 /dev/video1
次にdummy video deviceを追加
sudo modprobe v4l2loopback exclusive_caps=1 max_buffers=2
追加されたデバイスの番号を確認
ll /dev/video*
手元環境では以下の表示
crw-rw----+ 1 root video 81, 0 8月 25 15:00 /dev/video0
crw-rw----+ 1 root video 81, 1 8月 25 15:00 /dev/video1
crw-rw----+ 1 root video 81, 2 8月 26 09:45 /dev/video2
/dev/video2
が追加されたダミーデバイス。これを後で使う
追加されたデバイスの情報を確認
v4l2-ctl --device=/dev/video2 --info
手元ではこのような表示
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
X-T3とPCをUSB接続し、以下を実行するとgphoto2が標準出力にビデオを映像を流し、
ffmpegが流れてきたrawvideoを/dev/video2にyuv420pフォーマットで書き込んでいく。
gphoto2 --stdout --capture-movie | ffmpeg -i - -vcodec rawvideo -pix_fmt yuv420p -f v4l2 /dev/video2
ここで、zoomを立ち上げ、ビデオデバイスにdummy deviceを選択すれば
X-T3のWebcam化完了
仕上げ
以下のコマンド毎回打つのは手間なので、自動で実行するよう仕上げておく
sudo modprobe v4l2loopback exclusive_caps=1 max_buffers=2
dslr-webcamというモジュールを作って、読み込んで欲しいリストに入れておく
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
追記
再起動したら、/dev/video0
がDummy deviceになっていた。
以下のコマンドで確認
v4l2-ctl --device=/dev/video0 --info
キャプチャ開始の度にコマンドを覚えていられないので、fuji
コマンド作成。
cat << 'EOS' > ~/bin/fuji
gphoto2 --stdout --capture-movie | ffmpeg -i - -vcodec rawvideo -pix_fmt yuv420p -f v4l2 /dev/video0
EOS
chmod +x ~/bin/fuji
もう一度再起動した後も/dev/video0
がDummy deviceだったので、手元環境ではノートPCのカメラよりも先にdslr-webcam
がロードされているみたい。
zoomではwebcamとして使えるが、Skypeでは真っ黒。
Skypeで使う時は下記URLを参考にスケールを変更-vf scale=1024:567
するとOK。
gphoto2 --stdout --capture-movie | ffmpeg -i - -vcodec rawvideo -vf scale=1024:567 -pix_fmt yuv420p -f v4l2 /dev/video0
参考資料