3
1

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.

[Linux Mint 20]カメラ無しPCで古いiPadをカメラにする(droidcam)

Last updated at Posted at 2020-11-15

※2021/05/02:v1.6→v1.72へのアップデートを追記

先日、Ubuntu18.04LTSに入れた「droidcam」をLinux Mint 20にも入れようと思ったら、バージョンが1.5→1.6に上がっている上、公式サイトの手順が若干だが変わっていた(zip解凍したら、ファイルの日付が2020/11/5になってた)。

DroidCam(Dev47Apps)
https://www.dev47apps.com/

材料

  • PC:FMV-BIBLO MG70W(2007年製、Core2Duo T7100@1.80GHz、4GBメモリ)
  • タブレット:iPad 3(iOS 9.3.5)、Sharp SH-02M(Android 10)
  • アプリ:Droidcam

インストール

iPad/Androidは公式のアプリストアから「Droidcam」をインストールする。

一方、PC=クライアントについては、公式手順に沿って進める。

Droidcam Linux
https://www.dev47apps.com/droidcam/linux/

Droidcamクライアント

まず、クライアントパッケージのダウンロード、解凍、インストール。

cd /tmp/
wget https://files.dev47apps.net/linux/droidcam_latest.zip
unzip droidcam_latest.zip -d droidcam
cd droidcam && sudo ./install-client

前回は「sudo ./install」だったので、ここからして若干変化あり。

標準のv4l2loopbackドライバ

次に、手順が更新されていたv4l2loopbackドライバ周り。

Droidcamカスタマイズなv4l2loopbackドライバがどうのこうのと書かれているものの、標準のv4l2loopbackドライバとやらが入っていればよさげなので、ここはすっ飛ばして良さそう・・・

$ sudo apt list | grep v4l2

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

gem-plugin-v4l2/focal 1:0.94-1build2 amd64
libv4l2rds0/focal 1.18.0-2build1 amd64
libv4l2rds0/focal 1.18.0-2build1 i386
qv4l2/focal 1.18.0-2build1 amd64
qv4l2/focal 1.18.0-2build1 i386
v4l2loopback-dkms/focal-updates,focal-updates 0.12.3-1ubuntu0.1 all
v4l2loopback-source/focal-updates,focal-updates 0.12.3-1ubuntu0.1 all
v4l2loopback-utils/focal-updates,focal-updates 0.12.3-1ubuntu0.1 all

って、入って無いし!(Ubuntu18.04LTSでは入ってた)

ということでv4l2loopbackドライバをインストールする。

$ sudo apt install v4l2loopback-dkms
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
状態情報を読み取っています... 完了
提案パッケージ:
  v4l2loopback-utils
以下のパッケージが新たにインストールされます:
  v4l2loopback-dkms
アップグレード: 0 個、新規インストール: 1 個、削除: 0 個、保留: 1 個。
27.2 kB のアーカイブを取得する必要があります。
この操作後に追加で 109 kB のディスク容量が消費されます。
:
:
Loading new v4l2loopback-0.12.3 DKMS files...
Building for 5.4.0-53-generic
Building initial module for 5.4.0-53-generic
Done.

v4l2loopback.ko:
Running module version sanity check.
 - Original module
   - No original module exists within this kernel
 - Installation
   - Installing to /lib/modules/5.4.0-53-generic/extra/

depmod.....

DKMS: install completed.
$ sudo modprobe v4l2loopback
$ lsmod | grep v4l2loopback
v4l2loopback           40960  0
videodev              225280  1 v4l2loopback
$

Droidcamクライアントを起動すると

$ droidcam
Device /dev/video0 is 'Dummy video device (0x0000)' @ platform:v4l2loopback-000
Device /dev/video0 is 'Dummy video device (0x0000)' @ platform:v4l2loopback-000
Opened /dev/video0, fd:12
Audio loopback device not found.
Is snd_aloop loaded?
Audio: 

とログが流れて
qiita_20201114_1.png
DroidCamのクライアントアプリのウインドウが開いた。

ここでiPad側のDroidcamを起動し、表示されたiPadのIPアドレスを入力してConnectを押したところ、Droidcamの接続は成功した。しかし、VLCやCheeseで確認しようとしてもエラーになったり、そもそもデバイスが見つからないと言われてしまい、カメラの映像を見ることはできなかった。

Droidcamカスタムのv4l2loopbackドライバ

どこが気に入らないのかはわからないけれど、ひとまずは手順に新しく追加された「Droidcamカスタマイズドライバ」を追うことにした。

$ sudo apt install linux-headers-`uname -r` gcc make
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
状態情報を読み取っています... 完了
gcc はすでに最新バージョン (4:9.3.0-1ubuntu2) です。
make はすでに最新バージョン (4.2.1-1.2) です。
linux-headers-5.4.0-53-generic はすでに最新バージョン (5.4.0-53.59) です。
linux-headers-5.4.0-53-generic は手動でインストールしたと設定されました。
アップグレード: 0 個、新規インストール: 0 個、削除: 0 個、保留: 1 個。
$ sudo ./install-video 
Webcam parameters: '640' and '480'
Building v4l2loopback-dc.ko
:
(ずらずらとmakeが走る)
:
Adding options v4l2loopback_dc width=640 height=480 to /etc/modprobe.d/droidcam.conf
Adding videodev to /etc/modules-load.d/droidcam.conf
Adding v4l2loopback_dc to /etc/modules-load.d/droidcam.conf
Done
$ lsmod | grep v4l2
v4l2loopback_dc        24576  0
v4l2loopback           40960  0
videodev              225280  2 v4l2loopback_dc,v4l2loopback
$

ということで手順にある通り、モジュールに「v4l2loopback_dc」が追加された。

動作確認(IP接続)

再度、CLIから「droidcam」を起動する。

$ droidcam
Device /dev/video0 is 'Dummy video device (0x0000)' @ platform:v4l2loopback-000
Device /dev/video1 is 'Droidcam' @ platform:v4l2loopback_dc-000
Opened /dev/video1, fd:12
Audio loopback device not found.
Is snd_aloop loaded?
Audio: 

同じくdroidcamクライアントのアプリが起動するが、先程とは少しログの内容が変わった。

iPad側のIPアドレスを入力してDroidcamを接続した状態とし、Mint側で「VLC」を起動すると、プレイリストで[デバイス]→[ビデオキャプチャー]に「Droidcam」が表示された。

qiita_20201114_2.png

Ubuntu(=Droidcam Ver1.5)のときは毎回デバイスを選ぶ必要があったが、Droidcamカスタムv4l2loopbackドライバを登録したことで、アプリでリストに表示されるようになったのだろう(公式にもそんな風に書かれている)。

そして、このDroidcamを選んで再生すると、iPadのカメラの映像をVLCで見ることができた。

qiita_20201114_3.png

なお、試した範囲では以下の通り。

  • VLC:ビデオキャプチャーでカメラの映像が表示・録画できた
  • zoom:カメラのテストで表示された
  • skype:カメラのテストで表示された
  • cheese:表示されるのだが、すぐにエラーになってしまった

Ubuntu18.04LTSではCheeseでも問題なく表示されていたのだが、Mintではうまくいかなかったのはちょっと残念だった(Cheeseのバージョンが違うのかも?)。

USB接続

DroidcamはIP接続の他、USB接続の2通りの接続が可能である。

iPad(iOS)の場合

今回のターゲットである「古いiPad」はUSB接続でも問題なくDroidcamを使用できた。

READMEを見る限り、iOSとは「usbmuxd」を利用して接続しているようだが、確認したところusbmuxdは導入済みだったので、追加作業せずに済んだ。

ちなみにiPadとUSB接続した上で以下のコマンドの実行でActiveとなっていた。

$ sudo systemctl status usbmuxd
● usbmuxd.service - Socket daemon for the usbmux protocol used by Apple devices
     Loaded: loaded (/lib/systemd/system/usbmuxd.service; static; vendor preset: enabled)
     Active: active (running) since Fri 2020-11-13 16:05:37 JST; 2s ago
       Docs: man:usbmuxd(8)
   Main PID: 21824 (usbmuxd)
      Tasks: 2 (limit: 4602)
:

Androidの場合

一方、Androidについては、Android側を開発者モードにした上で、Androidの開発ツールである「adb」を利用しての接続となり、ちょっとだけ敷居が高い。

  • adbのインストール
$ sudo apt install adb
  • Android端末

モード変更は機種やOSバージョンによって異なるだろうから、参考程度(自分はSH-02M)。

  1. [設定]→[デバイス情報]の「ビルド番号」を連打して開発者モードに移行
  2. [設定]→[システム]→[詳細設定]→[開発者向けオプション]→デバッグの[USBデバッグ]をONにする
  3. PCとAndroid端末をUSBで接続。接続してよいかと問われたらOKを押す
  4. PCの端末から以下のコマンドを実行し、Android端末を認識しているか確認
$ adb devices
List of devices attached
999999999999999	device
$

ここまでやった上でAndroidのDroidcamアプリを起動→PCのDroidcamクライアント起動→USB(Android)を選んでConnectを押す、でようやくAndroid端末とのUSB接続でDroidcamを利用できた。

なお、アプリや環境にも依るだろうが、やはりIP接続よりUSB接続の方が表示が早く感じられたので、自分が使う場合はUSB接続を選ぶことになるだろう。

その他

音声

Ubuntuで試したときはアレヤコレヤした結果で繋がったものの、変なドライバ情報が残ったりしてしまったので、今回は実施していない(すみません)。

ランチャー登録

Ubuntuと同じ手順で実施。

1点追加として、desktopファイルに「Categories=AudioVideo」を追記することで、Droidcamアイコンを「サウンドとビデオ」配下に配置できた。
qiita_20201115_6.png

雑感

  • Droidcamのバージョンが上がっているとは思っておらず、自分のメモが役に立たなくなっているとは・・・
  • 今時、カメラなしPCなんてほとんど無いだろうから、Droidcamを使うとしたら遠隔監視なのかなと。ただ、遠隔監視だとクラウドサービス(Alfred Cameraとか)があったりするので、やっぱり古いPCで使うことになるのかなぁ・・・。

追記(2021/05/02)

久々に立ち上げたらなんか使えなくなってしまった。Ver1.72になっていたので、ついでにアップデートした。

# 古いバージョンのディレクトリにて
$ sudo ./uninstall-dkms
$ sudo ./uninstall

# 新しいバージョンのディレクトリにて
$ sudo ./install-client
$ sudo apt install linux-headers-`uname -r` gcc make
$ sudo ./install-video
$ lsmod | grep v4l2
v4l2loopback_dc        24576  0
videodev              225280  1 v4l2loopback_dc

Linuxのdroidcamを起動し、スマホのdroidcamも起動して接続したところ、無事画像が映ったのでOK。

3
1
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
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?