teemaxの日記

理工チックなあれこれ

Rasberry pi で 動画ストリーム

動画ストリーム

Raspberry pi の camera module を買ったのでカメラで撮った動画を PC でストリーム再生したいと思いました。

Raspberry pi で 動画ストリームするにもいくつか方法があるようで、ざっと見たかんじ mjpg-streamer というプログラムを使っている場合が多いようでした。
mjpg-streamer をつかうと httpストリームで webブラウザから Raspberry pi のカメラ動画が見れるようになります。
しかし mjpg-streamer の場合だと、環境によってはストリーム動画がすごくカクカクになったり、見れなくなったりします。自分はできるだけリアルタイムで滑らかに動画をストリームしたかったので違う方法にすることにしました。

そこで今回は、 netcat というアプリケーションを使ったソケット通信による動画ストリームを試してみました。

必要なもの

  1. camera module ( Raspberry pi 対応カメラ )」:動画を撮るカメラ
  2. mplayer」:PC側のプレイヤー
  3. netcat」:ソケット通信

netcat とはソケット通信を簡単に行ってくれるアプリケーションです。
データをパイプで渡して、通信先の IP アドレスとポート番号を指定するだけでデータ送信を行ってくれます。データ受信側もポート番号を指定するだけでOK。受信したデータを受け渡すのもパイプ。

手順

PC は Mac OSX 10.9 を使用しているものとします。

まず Raspberry pi サイドです。
camera module をしっかりセットし (参考サイト) 、
apt-get で netcat をインストールします。
sudo apt-get install netcat
次に Mac サイドです。
brew で mplayer と netcat をインストールします。
brew install mplayer netcat

インストールしたら実際に動かします。
まず Mac 、次に Raspberry pi で以下のコマンドを順番に実行します。
Mac側:nc -l 5001 | mplayer -fps 31 -cache 1024 -
Raspberry pi側:raspivid -w 512 -h 512 -b 4000000 -fps 31 -t 999999 -o - | nc "IP address" 5001
上コマンドの"IP address"には、自分のPCのIPアドレスを入れます。

Raspberry pi 側のコマンドオプション
-w -h -b -fps
はそれぞれ、動画幅・高さ・ビットレート・フレームレートです。
ここらへんのオプションを任意の値に設定してPC側のプレイヤーで滑らかに動くようにしてください。
自分の環境では上記オプションで大変よく動いてくれました。

まとめ

netcat を使ったソケット通信での動画ストリームは、
簡単に導入でき、かつ、リアルタイムで滑らかに動いてくれました。
個人的にはなかなか満足です。次はこのストリーム動画を Python コードに取り込んで Python から処理できるようにしたいと思います。

Raspberry pi からのストリーム動画をPythonで処理 - teemaxの日記

参考文献

  1. http://neko-kousaku.hatenadiary.jp/entry/2014/05/26/183522
  2. http://d.hatena.ne.jp/seinzumtode/20130921/1379744532
  3. http://www.rs-online.com/designspark/electronics/jpn/knowledge-item/raspberry-pi-camera-setup?/designspark/electronics/knowledge-item/raspberry-pi-camera-setup=
  4. http://blog.livedoor.jp/victory7com/archives/28289703.html
  5. http://denshikousaku.net/raspberry-pi-camera-module-web-camera-streaming
  6. http://petrkout.com/electronics/low-latency-0-4-s-video-streaming-from-raspberry-pi-mjpeg-streamer-opencv/  
     
     

Raspberry Piで遊ぼう! 改訂第3版

Raspberry Piで遊ぼう! 改訂第3版

図解 エクストリーム工作ノ教科書 (三才ムック vol.629)

図解 エクストリーム工作ノ教科書 (三才ムック vol.629)

スポンサーリンク