mjpg-streamer

$ sudo apt-get install subversion libjpeg-dev imagemagick

最新版をsvnリポジトリから取得。そのままcheckoutすると/usr/bin/へmjpg-stramerのバイナリを書き込もうとするので、ignore-extarnalsオプションで抑止する。

$ cd
$ svn checkout --ignore-externals http://svn.code.sf.net/p/mjpg-streamer/code/ mjpg-streamer-code
$ cd ~/mjpg-streamer-code/mjpg-streamer
$ make

Note

このままの権限で使い続けるのでインストール(sudo make install)はしない。

利用するユーザはvideoグループに属している必要があるので追加する。

$ sudo gpasswd --add <<username>> video

ログアウト、ログインして反映する。

動作確認

$ ./mjpg_streamer -i "./input_uvc.so -d /dev/video1 -y -r 1920x1080 -f 1" -o "./output_http.so -w www"

設定例

Webカメラ用サーバからport8080で送出し、apache2のリバースプロキシで /cam2 に見せる。

Webカメラ用サーバ(192.168.1.2)

$ ./mjpg_streamer -i "./input_uvc.so -d /dev/video1 -r 1920x1080 -f 1 -y -n" -o "./output_http.so -p 8080 -w www"

Webサーバ(192.168.1.6) proxy.conf内で...

ProxyPass /cam2 http://192.168.1.2:808
ProxyPassReverse /cam2 http://192.168.1.2:8080

http://192.168.1.6/cam2 にアクセスすると mjpegで再生される。

デバイス名固定

mjpg-streamerはデバイス名へのシンボリックリンクを辿れないようなので、以下のようにrealpathコマンドを介して利用する。 なお、固定方法そのものについては デバイス名を固定 を参照してください。

$ ./mjpg_streamer -i "./input_uvc.so -d `realpath /dev/webcam2` -r 1920x1080 -f 1 -y -n" -o "./output_http.so -p 9999 -w www"