WebカメラをCuBoxに接続して、ネットワーク越しに動画をストリーミングするのが今回のお題、mjpg-streamerです。
mjpg-streamerを使って、UVCカメラ (Universal Video Class、UVCに対応したカメラは、ホストドライバ不要で動作します)を使ったストリーミング配信ができます。zoneminderというアプリを動かそうとして、何故か使うことになってしまった経緯があったのだが、mjpg-streamerだけをとりだして紹介をしておきたい。動画のmpegと静止画のjpegを混ぜたような名前からも想像がつく通り、動画を静止画のjpeg画像の塊として(パラパラまんがのイメージ)扱い、ストリーミングするツールとなっている。
ソースからコンパイルすることになるので、基本はsvn coでダウンロードしてきて(サブバージョン、バージョン管理をするツール)使うのがスジであるが、CuBoxマシン上では、メモリを節約したい都合があるときはまあ無理しないでもいいでしょう。CuBox上で作業をするためには最低限gcc とかmakeはインストールしておきます。
また、mjpegとあるだけにjpeg変換ができないと使えないので、あらかじめlibjpeg-develはインストールが必要となる。
まずソースのゲットから。
|
mjpg-streamer-r63.tar.gzをダウンロードします。
これを任意のディレクトリで解凍。
# tar xvzf mjpg-streamer-r63.tar.gz |
# apt-get install libjpeg8-dev |
# ln -s /usr/include/linux/videodev2.h /usr/include/linux/videodev.h |
# cd mjpg-streamer-r63 # make |
apt-get install subversion libjpeg-dev imagemagick svn co https://svn.code.sf.net/p/mjpg-streamer/code/mjpg-streamer mjpg-streamer |
# ./mjpg_streamer --help |
# ./mjpg_streamer -i "./input_uvc.so -d /dev/video0 -y" -o "./output_http.so -w ./www -p 8080 -c username:password" -b |
ストリーミング動画画面だけを表示するなら
http://ドメイン名:8080/?Action=streaming (なお、一枚画像のみだと =snapshot ) |
使用するブラウザですが、IEでは表示できません。Chrome, Firefox, MacOS/iOSのSafariは表示できます。
相当にCPUを食います。
mjpg-streamerを構築する際、エラーがでた場合にのエラー対応例は
http://wiki.ubuntuusers.de/MJPG-Streamer
が一番詳しい。
http://ドメイン名:8080/ とすると以下のようなデモ解説画面で表示される。
ルーター越しにアクセスする環境を設定すれば、例えば自宅においたWebカメラのストリーミング映像をスマホからアクセスすることも可能となる。
コメントをお書きください