Raspberry Pi でWebカメラ

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カメラの画像が表示される

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です