Web cam で Streaming

WebカメラをRaspberry pi にこちらのように接続できたので、今度はstreamingに挑戦してみます。How to setup a Raspberry Pi Security Camera Livestreamを参考にさせていただきました。

1.パッケージの準備

まずは、パッケージのアップデートをしておきます。

$ sudo apt-get update
$ sudo apt-get upgrade

続いて、Motionをインストールします。これにより、ストリーミングが可能になります。

$ sudo apt-get install motion -y

Webカメラがちゃんと認識されているか確認します。

$ lsusb
$ ls /dev/video*

正しく認識されていれば、ビデオデバイスに追加されています。

2.設定の変更

インストールしたWebカメラの詳細を確認しておきます。

$ v4l2-ctl -V
Format Video Capture:
        Width/Height      : 640/480
        Pixel Format      : 'JPEG' (JFIF JPEG)
        Field             : None
        Bytes per Line    : 640
        Size Image        : 115790
        Colorspace        : JPEG
        Transfer Function : Default (maps to sRGB)
        YCbCr/HSV Encoding: Default (maps to ITU-R 601)
        Quantization      : Default (maps to Full Range)
        Flags             :

使用したCreativeのWebカメラでは、このように表示されました。次に`Motionのコンフィギュレーションファイルを変更します。

$ sudo nano /etc/motion/motion.conf

nanoで編集します。次の7点を変更します。nanoでは検索はCtrl+Wで可能です。

# Start in daemon (background) mode and release terminal (default: off)
daemon on
...
# Restrict stream connections to localhost only (default: on)
stream_localhost off
...
# Target base directory for pictures and films
# Recommended to use absolute path. (Default: current working directory)
target_dir /home/pi/Monitor

v4l2_palette 15     # Nummer aus der Tabelle davor entnehmen, 15 enstpricht YUYV
... 
# Image width (pixels). Valid range: Camera dependent, default: 352 
width 640 

# Image height (pixels). Valid range: Camera dependent, default: 288 
height 480 # Maximum number of frames to be captured per second. 

# Valid range: 2-100. Default: 100 (almost no limit). 
framerate 10 

編集後、Ctrl+O(保存)->Ctrl+X(終了)させます。

次に、デーモンを起動させる準備をします。同じくnanoを使って、内容を変更します。

$ sudo nano /etc/default/motion

次のように、noをyesに変更します。

start_motion_daemon=yes

コンフィギュレーションファイル内で指定したように、モーションをキャプチャしたデータを保存するフォルダを作成します。また、書き込み許可を変更します。

$ mkdir /home/pi/Monitor
$ sudo chgrp motion /home/pi/Monitor
$ chmod g+rwx /home/pi/Monitor

準備が整いましたので、デーモンを起動します。

$ sudo service motion start

3.ライブストリームのテスト

以上で、設定は完了しました。実際にライブストリームができるか確認しましょう。

ブラウザから:8081ポートへアクセスします。Raspberry piの設定を変更していなければ、http://raspberrypi:8081/ で接続できるはずです。ブラウザの真ん中にこのような画像がストリーミングされると成功です。