36
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

posted at

updated at

2台の Raspberry Pi を無線でつないで 一台のカメラで撮影した映像を家の TV にフルハイビジョンで中継(ちょっと遅延あり)

始めに

某所での発表の準備として用意させていただいた内容なのですが、私自身の参照の便も含めて誠に僭越ではございますがこちらに公開させていただきました次第です。すみませんがよろしくおねがいいたします

内容

 一万円以下で作れる、簡易監視カメラのソリューションです。2台の Raspberry Pi を用意し、一台にカメラモジュールを接続して撮影した映像をストリーミング配信、もう一台はテレビに接続して、受信したストリーミング映像をTVに映します。受信側 Raspberry Pi を例えば xbmc とかの media renderer にして、UPnP のPULL なり PUSH なり(要するに DLNA)で配信する方法もあると思いますが、映像だけでなく例えばセンサーのデータとかも映像の横とか表示することも可能にしておきたいので送受信両方を Raspbian で実装します

スクリーンショット 2015-02-06 21.59.46.png

完成図

 下記はその様子で、右下の iPad で動かしているカンファレンスクロックの映像を 1台の Raspberry Pi で撮影して rtsp で 配信しています。それを、TV につないだもう一台の Raspberry Pi と、Mac の VLC で受信しています。MJPEG とかで配信するのとくらべるとちょっと遅延がおおきいですがフルハイビジョンはちょっと魅力です。配信中継の様子をこちらに動画で用意しました。

スクリーンショット 2015-01-29 23.53.20.png

実装

配信側

raspivid で撮影した h.264 の映像を vlc で配信します
vlc がまだインストールされていないのであれば以下のようにインストールします

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install vlc

そして、以下のようにraspivid で撮影して配信します。尚、私の使い方ではカメラがひっくり返っているので -hf -vf で画像を反転させています

raspivid -o - -t 0 -hf -vf -w 1920 -h 1080 -fps 30 | cvlc -vvv stream:///dev/stdin --sout '#rtp{sdp=rtsp://:8554}' :demux=h264

受信側

受信側は配信側の Raspberry Pi の IP アドレス(以下、例として 192.168.11.16 としています。ご自身の環境での IP アドレスに置き換えて実行してください)を指定して rtsp で omxplayer で受信して再生します

omxplayer -o local rtsp://192.168.11.16:8554/

参考文献

こちらの記事を参考にさせて頂きました

また、Raspberry Pi でのストリーミング中継一般についてこちらの本の8章 “Chapter 8. Streaming Live HD Video” が大変詳しく、参考になりました。尚、Packet Pub の本ではいつもの事なのですがサンプルコードに typo が沢山あって緊張感がありました

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
36
Help us understand the problem. What are the problem?