LoginSignup
8

More than 5 years have passed since last update.

mjpg-streamerで動画をブラウザでみる

Posted at

RaspberryPiの初期設定が終わったので、Webカメラをつないで監視カメラを作ってみた

環境

  • RaspberryPi: RaspberryPi 3 Model B
  • Webカメラ: Logitech C270

手順

カメラの接続確認

1 カメラが接続されていることを確認する

$ lsusb

2 接続しているカメラの名前が表示されていることを確認

...
Bus 001 Device 004: ID 046d:c069 Logitech, Inc. M500 Laser Mouse
Bus 001 Device 007: ID 046d:0825 Logitech, Inc. Webcam C270     ←これ
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
...

mjpg-streamerのインストール

1 必要なモジュールをインストール

$ sudo apt-get install -y subversion libjpeg-dev imagemagick

2 mjpg-streamerをダウンロード

$ svn co https://svn.code.sf.net/p/mjpg-streamer/code/mjpg-streamer mjpg-streamer

3 makeを実行

$ cd mjpg-streamer/
$ make

スクリプトの作成

1 ファイルを開く

$ vi start_stream.sh

2 設定ファイルを編集

start_stream.sh
#!/bin/sh

PORT="8080"     #ポート
ID="user"       #ログインID
PW="passward"   #ログインパスワード
SIZE="640x480"  #画面サイズ
FRAMERATE="200" #フレームレート

./mjpg_streamer -i "./input_uvc.so -f $FRAMERATE -r $SIZE -d /dev/video0 -y -n" -o "./output_http.so -w ./www -p $PORT -c $ID:$PW"

起動

1 スクリプトを実行

$ sudo sh start_stream.sh

2 ブラウザから http://RaspberryPIのIP:8080 を開く
3 スクリプトに記載したログインIDとパスワードを入力
4 Stream のページにカメラの映像が写っていたら成功

外部から見るための設定

ファイヤーウォールの設定

1 ufw をインストール

$ sudo apt-get install ufw

2 ufwの設定

#全部シャットアウト
$ sudo ufw default deny 

#特定のIPからの22ポートアクセスは許可
$ sudo ufw allow proto tcp from 192.168.X.0/24 to any port 22  

#8080ポートへのアクセスは許可
$ sudo ufw allow 8080

3 ufwを起動

$ sudo ufw enable

4 設定の確認

$ sudo ufw status
To                         Action      From
--                         ------      ----
22/tcp                     ALLOW       192.168.X.0/24
8080                       ALLOW       Anywhere
8080                       ALLOW       Anywhere (v6)

コマンド集

  • ステータス確認
$ sudo ufw status   #停止中:inactive 起動中:active
  • 起動
$ sudo ufw enable
  • 停止
$ sudo ufw disable

ルータの設定

ルーターのポート変換で、外部に見えているIPアドレスと任意のポートをRaspberryPiに割り当てた固定のIPアドレスとポート8080を紐付ける

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8