RaspberryPiでWebカメラを使ってストリーミング動画を配信させてみた
スポンサーリンク
密かに進めているRaspberryPiラジコン化計画ですが、どうしても必要になるのがこのWebカメラからの映像表示です。
RaspberryPiのカメラ映像をPCやスマートフォンなどで表示される方法で手っ取り早いのがストリーミング動画配信です。
Linux系でメジャーどころのストリーミング動画ソフトのmjpg-streamerを使って映像配信することにしました。
今回はcubic9.comさんのサイトを参考にやってみました。
mjpg-streamerのコマンドライン引数について詳しく説明されていて凄く参考になります。
是非一度目を通してみてくださいな。
準備するもの
用意するものはUVC対応のWebカメラです。
私は近くの家電量販店で売っていたLogicool HD Webcam C270というのを¥1,400くらいで購入して使ってみました。
LOGICOOL ウェブカム HD画質 120万画素 C270
- 出版社/メーカー: ロジクール
- 発売日: 2010/08/20
- メディア: Personal Computers
- 購入: 21人 クリック: 267回
- この商品を含むブログ (20件) を見る
Webカメラ接続確認
まずはWebカメラをRaspberryPiに接続し、電源を入れましょう。
そうしたらWebカメラが認識されているかどうか確認します。
pi@raspberrypi ~ $ lsusb
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 004: ID 0411:01a2 BUFFALO INC. (formerly MelCo., Inc.) WLI-UC-GNM Wireless LAN Adapter [Ralink RT8070]
Bus 001 Device 009: ID 046d:0825 Logitech, Inc. Webcam C270
4行目のようにメーカー名、型式が表示されればOKです!
ソフトウェア、ライブラリのインストール
今回使用するソフトウェア、ライブラリは以下のとおりです。
- libv4l-dev :Video for Linuxライブラリ
- libjpeg8-dev :jpegランタイムライブラリ
- imagemagick :画像処理ライブラリ
- subversion :バージョン管理クライアント(今回はmjpg-streamerダウンロードに使用する)
$ sudo apt-get install libv4l-dev libjpeg8-dev imagemagick subversion
Video for Linuxライブラリヘッダファイルのシンボリックリンクを作ります。
$ sudo ln -s /usr/include/linux/videodev2.h /usr/include/linux/videodev.h
Subversionクライアントでmjpg-streamerをダウンロードします。
$ svn co https://svn.code.sf.net/p/mjpg-streamer/code/mjpg-streamer/ mjpg-streamer
あとはmjpg-streamerディレクトリに移動し、makeしてinstallします。
$ cd mjpg-streamer
$ make USE_LIBV4L2=true clean all
$ sudo make DESTDIR=/usr install
ストリーミング動画を表示!
スポンサーリンク
以下のコマンドでmjpg-streamerを起動させましょう!
$ mjpg_streamer -i "/usr/lib/input_uvc.so -d /dev/video0 -r 320x240 -f 30" -o "/usr/lib/output_http.so -p 8080 -w /usr/www"
※この場合、画像サイズは320x240[px]、フレームレート30[fps]、ポート8080番に/usr/wwwディレクトリ内のコンテンツを表示する設定となります。
ローカルネットワークに接続しているPCやスマートフォンのWebブラウザで"http://(RaspberryPiのIPアドレス):8080"にアクセスしてみましょう!
左側のメニューから[javascript]をクリックすると、ストリーミング動画が表示されます!
mjpg-streamerの自動起動設定
あとは必要に応じてRaspberryPi起動時にmjpg-streamerも自動起動するようにしてみましょう。
以下のような内容のファイルを作ります。
私はまんまmjpg-streamer.shというファイル名にしました。
#!/bin/sh
mjpg_streamer -b \
-i "/usr/lib/input_uvc.so -d /dev/video0 -r 320x240 -f 30" \
-o "/usr/lib/output_http.so -p 8080 -w /usr/www"
作ったシェルスクリプトのパーミッションを全ユーザ実行可能にします。
権限付与する場合は"chmod a+x"、絶対指定する場合は"chmod (3桁の8進数)"です。
絶対指定の場合は、左から順番に所有者、グループ、その他のユーザの権限を指定します。
例えば、755の場合は、所有者:7(読み込み/書き込み/実行 可能)、グループ:5(読み込み/実行 可能)、その他のユーザ:5(読み込み/実行 可能)となります。
パーミッションに関してはhttp://www.k-tanaka.net/unix/chmod.phpが詳しくてわかりやすいです。
$ chmod 755 mjpg-streamer.sh
mjpg-streamer.shを/etc/init.d/に移動します。
$ sudo mv mjpg-streamer.sh /etc/init.d/
自動起動を有効にします。
$ sudo insserv mjpg-streamer.sh
あとはRaspberryPiを再起動させて確認してみましょう!
sudo reboot
こんな感じでさっくりできました。
次回はおそらくRaspberryPiでモータ動かしたりするかもしれないです(確信はなしw)
それでは!ヾ( ´ー`)ノ
参考:
http://www.k-tanaka.net/unix/chmod.php
LOGICOOL ウェブカム HD画質 120万画素 C270
- 出版社/メーカー: ロジクール
- 発売日: 2010/08/20
- メディア: Personal Computers
- 購入: 21人 クリック: 267回
- この商品を含むブログ (20件) を見る
Raspberry Piで遊ぼう! 改訂第3版?Model B+完全対応(Model B, 2にも対応)
- 作者: 林和孝
- 出版社/メーカー: ラトルズ
- 発売日: 2014/12/22
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (3件) を見る
Raspberry Pi ラズベリー・パイ 超小型パソコン MODEL B (PLUS) &専用ケ-ス model B+ Case(Clear)
- 出版社/メーカー: Raspberry Pi
- メディア: エレクトロニクス
- この商品を含むブログを見る