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 install
sudo modprobe bcm2835-v4l2
動作確認を兼ねて、カメラがサポートするフォーマットを列挙する。
$ v4l2-ctl --list-formats
ioctl: 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 : MJPEG
MJPEG-streamerのビルドに必要なパッケージをインストールする
$ sudo apt-get install subversion
$ sudo apt-get install libjpeg-dev imagemagick
MJPEG-streamerのソースコードをダウンロードする
$ svn checkout svn://svn.code.sf.net/p/mjpg-streamer/code/ mjpg-streamer-code
MJPEG-streamerをビルドする
$ cd mjpg-streamer-code/mjpg-streamer
$ make
$ sudo make install
MJPEG-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で動体検知する