Raspberry Piのカメラモジュールを使う場合、従来は遅いユーザモードのデバイスドライバしかなかった。今回カメラのデバイスドライバとして、カーネルモードのデバイスドライバを試した結果、VGAサイズで30fpsのストリーミングをすることができた。
| Raspberry Pi 本体 | Model B Rev.2 |
| 赤外線カメラモジュール | Pi NoIR |
| WiFiアンテナ | I-O DATA WN-G300UA |
| エンクロージャー | 2L ペットボトル |
※2015年に改修。詳しくはこちら>
| OS | 2014-01-07-wheezy-raspbian |
| デバイスドライバ | bcm2835-v4l2 |
| ストリーム配信アプリ | mjpg_streamer |
パッケージおよびファームウェアの更新
$ sudo apt-get update$ sudo apt-get upgradeデバイスドライバのビルドに必要なパッケージをインストールする
$ sudo apt-get install autoconf gettext libtool libjpeg62-devデバイスドライバのソースコードをダウンロードする
$ git clone git://git.linuxtv.org/v4l-utils.gitデバイスドライバをビルドする
$ cd v4l-utils$ autoreconf -vfi$ ./configure$ make$ sudo make installsudo modprobe bcm2835-v4l2動作確認を兼ねて、カメラがサポートするフォーマットを列挙する。
$ v4l2-ctl --list-formatsioctl: VIDIOC_ENUM_FMT Index : 0 Type : Video Capture Pixel Format: 'YU12' Name : 4:2:0, packed YUV Index : 1 Type : Video Capture Pixel Format: 'YUYV' Name : 4:2:2, packed, YUYV Index : 2 Type : Video Capture Pixel Format: 'BGR3' Name : RGB24 (BE) Index : 3 Type : Video Capture Pixel Format: 'JPEG' (compressed) Name : JPEG Index : 4 Type : Video Capture Pixel Format: 'H264' (compressed) Name : H264 Index : 5 Type : Video Capture Pixel Format: 'MJPG' (compressed) Name : MJPEGMJPEG-streamerのビルドに必要なパッケージをインストールする
$ sudo apt-get install subversion$ sudo apt-get install libjpeg-dev imagemagickMJPEG-streamerのソースコードをダウンロードする
$ svn checkout svn://svn.code.sf.net/p/mjpg-streamer/code/ mjpg-streamer-codeMJPEG-streamerをビルドする
$ cd mjpg-streamer-code/mjpg-streamer$ make$ sudo make installMJPEG-streamerを起動する
$ /usr/local/bin/mjpg_streamer -i "/usr/local/lib/input_uvc.so -d /dev/video0 -r 640x480 -f 30 -no_dynctrl" -o "/usr/local/lib/output_http.so -w /usr/local/www -p 8099"VLCメディアプレイヤーで確認する
http://192.168.1.99:8099/?action=stream
Msakoで動体検知する