1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Ubuntu 20.04でFujifilm X-T3をwebcamとして使う方法

Last updated at Posted at 2020-08-26

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

参考資料

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?