Raspberry Pi でWebカメラ
Raspberry Pi にはCSIコネクタにさす専用のコネクタもあるけど
USB接続の Webカメラも使える
UVC対応なら、ドライバをインストールしなくても
させば使える
今回、使った web カメラは
iBUFFALO マイク内蔵320万画素WEBカメラ F2.2ガラスレンズ搭載モデル シルバー BSW32KM03SV
raspberry pi は
Raspberry Pi Type B 512MB ケースセット Pi Tin for the Raspberry Pi – Clear
また電源確保のためセルフパワーのUSBハブを利用
iBUFFALO USB2.0ハブ セルフ&バスパワー 4ポート ACアダプタ付 ブラック 【PlayStation4,PS4 動作確認済】 パソコン/液晶TV[REGZA][AQUOS]対応 BSH4A01BK
まずは web カメラを USBにさす
次に
sudo tail -f /var/log/messages
で
webカメラが使えるか調べる
今回のログは
Aug 13 10:49:38 raspberrypi kernel: [ 2511.592147] usb 1-1.3.3: Manufacturer: Etron Technology, Inc. Aug 13 10:49:38 raspberrypi kernel: [ 2511.789941] media: Linux media interface: v0.10 Aug 13 10:49:38 raspberrypi kernel: [ 2511.819490] Linux video capture interface: v2.00 Aug 13 10:49:38 raspberrypi kernel: [ 2511.856057] uvcvideo: Found UVC 1.00 device BUFFALO BSW32KM03 USB PC Camera (2084:0d03) Aug 13 10:49:38 raspberrypi kernel: [ 2511.863885] uvcvideo: UVC non compliance - GET_DEF(PROBE) not supported. Enabling workaround. Aug 13 10:49:38 raspberrypi kernel: [ 2511.870234] input: BUFFALO BSW32KM03 USB PC Camera as /devices/platform/bcm2708_usb/usb1/1-1/1-1.3/1-1.3.3/1-1.3.3:1.0/input/input2 Aug 13 10:49:38 raspberrypi kernel: [ 2511.874302] usbcore: registered new interface driver uvcvideo Aug 13 10:49:38 raspberrypi kernel: [ 2511.874336] USB Video Class driver (1.1.1) Aug 13 10:49:38 raspberrypi kernel: [ 2512.005222] usb_audio: Warning! Unlikely big volume range (=4096), cval->res is probably wrong. Aug 13 10:49:38 raspberrypi kernel: [ 2512.005260] usb_audio: [3] FU [Mic Capture Volume] ch = 1, val = -4097/-1/1<6>[ 2512.012606] usbcore: registered new interface driver snd-usb-audio
今回の確認項目は
Aug 13 10:49:38 raspberrypi kernel: [ 2511.856057] uvcvideo: Found UVC 1.00 device BUFFALO BSW32KM03 USB PC Camera (2084:0d03)
これが
USBカメラの型番
Aug 13 10:49:38 raspberrypi kernel: [ 2511.874302] usbcore: registered new interface driver uvcvideo
これが
ドライバ uvcvideo が読み込まれたことを示す
Aug 13 10:49:38 raspberrypi kernel: [ 2512.005260] usb_audio: [3] FU [Mic Capture Volume] ch = 1, val = -4097/-1/1<6>[ 2512.012606] usbcore: registered new interface driver snd-usb-audio
これが
サウンドドライバ snd-usb-audio
が読み込まれたことを示す
次に表示の確認や画質コントロールソフトをインストール
sudo apt-get install uvccapture uvcdynctrl guvcview
これで本体をディスプレイにつなげればデスクトップ環境で使うことができる
次に
Raspberry Pi 単体で動画配信できるようにする
ホームサーバーなどではこっちを使う
これには MJPG-streamer をつかう
これを使えば、パソコンやスマホブラウザで
Raspberry PI にアクセスすることで使うことができる
ただし MJPG-streamer をインストールするのに
apt-get ではできないので
Subversion をつかう
sudo apt-get install subversion libjpeg-dev imagemagick
次に MJPEG-stremer のソースをsuvbersion でダウンロード
svn co https://svn.code.sf.net/p/mjpg-streamer/code/mjpg-streamer mjpg-streamer
そして、コンパイル
cd mjpg-streamer/ make sudo make install
これでインストール完了
次に MJPEG-streamer の起動
これはスクリプトファイルを作成して実行する
320 x 249 ピクセルの動画を
10fps
これは1秒間に10コマの間隔で配信し
ブラウザはIDとパスワードでアクセスする
今回は ID test パスワード 1234 にする
sudo vim stream.sh
でファイルを作成
#!/bin/bash PORT="8080" ID="test" PW="1234" SIZE="320x240" FRAMERATE="10" export LD_LIBRARY_PATH=/usr/local/lib mjpg_streamer \ -i "input_uvc.so -f $FRAMERATE -r $SIZE -d /dev/video0 -y" \ -o "output_http.so -w /usr/local/www -p $PORT -c $ID:$PW"
そして
chmod 755 stream.sh
で権限変更
これで
./stream.sh
で実行し
ブラウザで
http://192.168.1.198:8080
でアクセス
ユーザ名 test
パスワード 1234
でアクセスはできたけど
なぜか画像が砂嵐状態
検索して
http://homebrew.jp/show?page=1445
を参考に
sudo ./mjpg_streamer -i "./input_uvc.so -f 15 -r 640x480 -d /dev/video0" -o "./output_http.so -w ./www -p 8080" を実行したら動いたので修正 これで再度 ./stream.sh
を実行すれば webカメラの画像が表示される