トップ 差分 一覧 ソース 検索 ヘルプ RSS ログイン

Raspberry Pi から Android へ Web Cam 映像ストリーミング

Raspberry Pi から Android へ Web Cam 映像ストリーミング


Raspberry Pi (以下RPi) と PlayStation Eye (以下PSEye) を用いて、Android 携帯電話へ映像ストリーミングをしたときのメモ。

  RPi のセットアップ


前提条件

Raspberry Pi に Raspbian Wheezy が導入されているものとする。ネットワークにも既につながっているものとする。

mjpg-streamer の導入

BobTechTalkTech を参考にしました。

まずは libv4l-0 を入れる。

sudo aptitude install libv4l-0

mjpg-streamer のコンパイル済パッケージをダウンロードする。(Thanks, Bobtech!)

wget http://www.bobtech.ro/get?download=36:mjpg-streamer-rpi

ダウンロードしたファイルの名前が気持ち悪いので変更する。

mv get\?download\=36\:mjpg-streamer-rpi mjpg-streamer-rpi.tar.gz

ダウンロードしたファイルは圧縮されているので解凍する。

tar -zxvf mjpg-streamer-rpi.tar.gz

mjpg-streamer というディレクトリができているはず。そこに移動する。

cd ./mjpg-streamer

設定ファイルの先頭に、カスタマイズ可能な項目があるので必要であれば書き換える。
rqna netの情報によると、PSEye は mjpg 形式に対応していないようなので書換えが必要。
具体的には YUV="false" となっているところを、true に変更する。
ついでに RESOLUTION="640x480" だと映像ストリーミング時の遅延が大きいので 320x240 に変更した。

(注:最初の数行を表示)

#!/bin/bash

VIDEO_DEV="/dev/video0"
FRAME_RATE="4"
RESOLUTION="320x240"
PORT="8080"
YUV="true"

書換えが済んだら、サーバーを起動、ストリーミングを開始できるようにする。

./mjpg-streamer start

ついでに、RPi の IP アドレスを確認しておく。

ip addr show

これで RPi の準備は完了。


  PC から確認


Android 携帯の作業に移る前に、まずは PC からちゃんと見えることを確認する。
ブラウザに以下の URL を打ち込んで接続してみる。

http://<RPi ip address>:8080/?action=stream

<RPi ip address> には先ほど調べた RPi の IP アドレスを入力する。
ストリーミング動画が見えれば OK!


  Android アプリ開発


IPカメラ画像をストリーミングするアプリはたくさん公開されているけど、自分でいじれるものが欲しい。
ということで、こちらのページを参考に、SimpleMjpegViewというAndroidアプリのソースコードを入手。

以下の URL から、 Downloads > branches > master から zip アーカイブをダウンロードし、eclipse に Android Project としてインポート。
https://bitbucket.org/neuralassembly/simplemjpegview

以下を自分の環境に合わせて書き換える。

MjpegActivity.java

String URL = "http://<RPi ip address>:8080/?action=stream

MjpegView.java

// hard-coded image size
public static final int IMG_WIDTH=320;
public static final int IMG_HEIGHT=240;

以上でアプリを Android にインストールして走らせると、RPi につないだ PSEye のカメラ映像が Android 携帯にストリーミングされました。

Thanks!

最終更新時間:2013年03月03日 03時37分28秒