Armadillo-640で、USBカメラの画像をmjpg-streamerを使って、ネットワーク経由でPCのWebブラウザで見る方法です。
1.USB Video Class(UVC)を有効にします。
ここでは、USB Video Class(UVC)対応のUSBカメラを使用します。
Armadillo-640:USB Video Class(UVC)を有効にする
を参考に、USB Video Class(UVC)を有効にしたカーネルイメージをArmadillo-640に書き込みます。
以降の手順は、Armadillo-640で行います。
2.必要なパッケージをインストールします。
Armadillo-640をインターネットに接続可能なネットワークに接続します。
apt-getコマンドでupdateとupgradeおよび必要なパッケージをインストールします。
root@armadillo:~# apt-get update & apt-get upgrade root@armadillo:~# apt-get install build-essential root@armadillo:~# apt-get install libjpeg-dev root@armadillo:~# apt-get install imagemagick root@armadillo:~# apt-get install subversion
補足)インストール中に"Do you want to continue? [Y/n]"と聞かれたら、"y"を入力します。
3.mjpg-streamerをインストールします。
svnコマンドでリポジトリからmjpg-streamerのソースをチェックアウトします。
root@armadillo:~# svn co http://svn.code.sf.net/p/mjpg-streamer/code/mjpg-streamer mjpg-streamer
mjpg-streamerのソースをmakeしてインストールします。
root@armadillo:~# cd mjpg-streamer root@armadillo:~/mjpg-streamer# make root@armadillo:~/mjpg-streamer# make install
参考)make install実行時のログ
install --mode=755 mjpg_streamer /usr/local/bin install --mode=644 input_uvc.so output_file.so output_udp.so output_http.so input_testpicture.so input_file.so /usr/local/lib/ install --mode=755 -d /usr/local/www install --mode=644 -D www/* /usr/local/www
以上で、mjpg_streamerのインストールは終了です。
以下は、Armadillo-640にUSBカメラを接続して、デバイスファイルが"/dev/video0"の場合の実行例です。
実行例)下記のように実行します。
mjpg_streamer \ -i "/usr/local/lib/input_uvc.so --device /dev/video0 --yuv --resolution VGA --fps 30" \ -o "/usr/local/lib/output_http.so --www /usr/local/www"
mjpg_streamer実行後、PCのWebブラウザで、
http://[ArmadilloのIPアドレス]:8080
を指定すると、mjpg-streamerの画面が開くので、左帯のStreamを選択すると、動画として見えます。
備考)
mjpg_streamer実行時に、USBカメラで制御できない機能について、メッセージが出るようです。
今回の確認では、下記のようなメッセージが出ましたが、画像は見ることができました。
Adding control for Pan (relative) UVCIOC_CTRL_ADD - Error: Inappropriate ioctl for device Adding control for Tilt (relative) UVCIOC_CTRL_ADD - Error: Inappropriate ioctl for device Adding control for Pan Reset UVCIOC_CTRL_ADD - Error: Inappropriate ioctl for device Adding control for Tilt Reset UVCIOC_CTRL_ADD - Error: Inappropriate ioctl for device Adding control for Pan/tilt Reset UVCIOC_CTRL_ADD - Error: Inappropriate ioctl for device Adding control for Focus (absolute) UVCIOC_CTRL_ADD - Error: Inappropriate ioctl for device mapping control for Pan (relative) UVCIOC_CTRL_MAP - Error: Inappropriate ioctl for device mapping control for Tilt (relative) UVCIOC_CTRL_MAP - Error: Inappropriate ioctl for device mapping control for Pan Reset UVCIOC_CTRL_MAP - Error: Inappropriate ioctl for device mapping control for Tilt Reset UVCIOC_CTRL_MAP - Error: Inappropriate ioctl for device mapping control for Pan/tilt Reset UVCIOC_CTRL_MAP - Error: Inappropriate ioctl for device mapping control for Focus (absolute) UVCIOC_CTRL_MAP - Error: Inappropriate ioctl for device mapping control for LED1 Mode UVCIOC_CTRL_MAP - Error: Inappropriate ioctl for device mapping control for LED1 Frequency UVCIOC_CTRL_MAP - Error: Inappropriate ioctl for device mapping control for Disable video processing UVCIOC_CTRL_MAP - Error: Inappropriate ioctl for device mapping control for Raw bits per pixel UVCIOC_CTRL_MAP - Error: Inappropriate ioctl for device