状況
ML2Scratchを、Raspberry Pi 4で動かそうとしたら、動かないUSBカメラがあった。結論から言うと、WebRTC on RPi4 with Busterが、Logitech c270では動かないようである。そして、古い型のカメラのようなのでWebRTCでは当面動く気がしない。暫定回避策として、別のカメラを使っている。
切り分け
Scratch3では、Javascriptで書かれている。その延長で、WebRTCを呼び出している(scratch-vmとscratch-gui経由)。ML2Scratchかブラウザかどうかの問題の切り分けのため、WebRTC画面のみのテストを行った。なお、Windows on Intel x86では普通に動くので、Raspberry Pi 4のLinuxかその下のソフトの出来が悪いのかな?とは思う。
WebRTCのみの以下の画面を表示すると、真黒になる。なお、ML2Scratchで見ると、黒いバックグラウンドと猫の画面になる。
試してみた結果は以下のとおりである。
機種名 | USB2 | USB3 | luvcview |
---|---|---|---|
Logitech C270 | × | × | 〇 |
Elecom UCAM-C520FEBK | 〇 | 〇 | 〇 |
状況
RaspberryPi Forum(2020/3/18)に投げてみた。結構たくさん問題が上がっているようなので、放置される気がする。
時間があったら調べてみたいが、時間がないので残念ながらペンディング中。
付録
デバイスの確認
デバイスは、LinuxのコマンドおよびChromeで確認することができる。Linuxの場合は以下のコマンドで見ることができる。
Linuxの場合
$ lsusb
動いているドライバーのリスト
$ lsmod -v
Chromeの場合
Chromeだと、以下でメディアの状況を確認することができる。しかし、普通に認識されている。
Raspberry Piで動いているカメラの有志によるリストを確認してみる。Logitech C270は、相性問題があり動かない時がある模様である。
最後に、Chromiumの障害リストを見てみる。ここではChromiumの74から78まで修正らしきものが入った様子はない。
Raspberry Pi
Linuxのソフトスタック
Scratch3の呼び出しパス
VideoSensingから、通って最終的にJavascript(getUserMedia)を呼び出している。このため、WebRTC依存である。