Raspberry Pi に USB カメラを繋いでブラウザから動画を見てみた.(mjpg-streamer)

mjpg-streamer, motion, ffmpeg の三種類が代表的なアプリだそうだ.
mjpg-streamer というアプリを使うと簡単らしいのでそれを採用した.

http://www.teslasassistant.com/?p=97 を参考にしてそのまま実行した.
PC からの USB 給電で電流が足りなくてカメラが使えなかったり本体の電源が落ちたりすることがあるらしいのでセルフパワー USB ハブを使った.
セルフパワー USB ハブって高いのね.

あとで PC の USB ポートからの給電で動かしたら動いたので,給電力不足じゃなかったかもしれない.

用意したもの

Wheezy Raspbian を導入した Raspberry pi
USB カメラ(uvc 対応*1のもの)
セルフパワー USB ハブ
USB-MicroB ケーブル

ちなみに Elecom UCAM-DLA200H を使った.

手順

lsusb コマンドで USB カメラが認識されていることを確認する.
lsusb
mjpg-streamer が依存するパッケージ libv4l-dev, libjpeg8-dev と mjpg-streamer をコンパイルするのに必要なパッケージ subversion, imagemagick を導入する.
sudo apt-get install libv4l-dev libjpeg8-dev subversion imagemagick
mjpg-streamer をダウンロードしてコンパイルする.
svn co https://mjpg-streamer.svn.sourceforge.net/svnroot/mjpg-streamer mjpg-streamer
cd mjpg-streamer/mjpg-streamer
make USE_LIBV4L2=true clean all
make DESTDIR=/usr install
mjpg-streamer を実行してブラウザから確認する.
mjpg_streamer -i "/usr/lib/input_uvc.so -d /dev/video0  -r 640x480 -f 30" -o "/usr/lib/output_http.so -p 8090 -w /var/www/mjpg_streamer"

ブラウザから http://xxx.xxx.xxx.xxx:port/?action=stream にアクセスすると確認できる.
xxx の部分は Raspberry Pi の IP アドレスを入れ,port には設定したものを入れる(上記では 8090 ).

設定

-i 以後の二重引用符部分が入力の設定で
-d: 入力デバイスの選択
-r: 解像度
-f: フレームレート
-y: YUYV 形式で撮影するかどうか(なければ MJPEG 形式)

-o 以後の二重引用符部分が出力の設定で
-p: ポートの設定
-w: 出力ディレクトリの設定

その他

<img src="http://xxx.xxx.xxx.xxx:port/?action=stream"> で埋め込みが出来る.

*1:USB 挿すだけ とか 一発認識 とか書いてある