25
24

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

THETAライブストリーミング on レゴマインドストームEv3

Last updated at Posted at 2015-12-11

概要

全天球ライブストリーミング映像を見ながら運転する。
そんな楽しそうな未来に向けて、レゴマインドストームEv3にTHETA Sを載せて、Ev3を操作しながらTHETA Sのライブストリーミング映像を見られるようにしてみました。

※ お断り

今回はDualfishEye動画での配信になります。
参考画像

やること

  • レゴマインドストームEv3(以下Ev3)をROSで遠隔操作する
  • Ev3にTHETA Sを積んでライブストリーミング(DualfishEye)する
  • 将来的には全天球動画にしてHMDで見れるようにしたい
  • 配信されたライブストリーミング映像を見る
  • 視聴環境:Mac PC、iPhone、Android (4.x以上) のみ

実現方法

Ev3を遠隔操作

まずは操作する車の方です。

Ev3ハード設計

Ev3は車型にして、LiveShell2とTHETA Sを積みました。
(きちんと設計しないと、バランス崩して倒れたり、配線に失敗したりします。)

  • Ev3にUSB WiFiドングルをセット (遠隔操作の通信用)
  • LiveShell2とTHETA SをHDMIケーブルで結線
  • LiveShell2にUSB WiFiドングルをセット (配信サバとの通信用)

R0013519.JPG

Ev3ソフト環境構築

動画配信

  • LiveShell2からWiFiドングル経由で配信サバへ転送します
  • 配信サバからHLSで配信します

architecture.png

動画配信サバの設定

今回はAWS EC2インスタンス上に配信サバを構築しました。

EC2インスタンス

EC2インスタンスを起動する際、以下の点に注意してください。

  • EIPをつけない場合は"自動割り当てパブリック IP"を有効化して下さい
  • SecurityGroupで以下のようにRTMP, HTTP用の穴あけをして下さい
ポート プロトコル 送信元 補足
22 tcp 0.0.0.0/0 接続元IPに絞ってください
80 tcp 0.0.0.0/0 閲覧用HTML取得
443 tcp 0.0.0.0/0 同上
1935 tcp 0.0.0.0/0 RTMP用

nginx + rtmp_module インストール

こちらを参考にさせて頂きました。 => nginx-rtmp-moduleでお試しLive配信環境を作る

  • クライアントは前述のLiveShell2でやるのでスキップ。
  • nginxはyumからも取れますが、rtmp_module込みでビルドしないといけないのでソースから入れました。

HLS配信・閲覧用のHTML配信

こちらを参考にさせて頂きました。 => nginx-rtmp-moduleを使ってスマートフォンへの生放送配信を実験

  • iPhone, Mac, AndroidはHLS形式に対応しているため、デフォルトブラウザで閲覧ができるようになります。

nginxの設定

上記2つのqiitaを参考にして、以下のようになりました

LiveShell2の設定

初期セットアップについては省略。
配信サバへの転送設定について記載します。

  • 設定 (ダッシュボード右上)
  • 配信先サービス : その他配信サービス (サーバーアドレス入力)
  • 配信先URL : rtmp://[配信サバのPublicIP]/hls
  • ストリーム名 : 任意の文字列
  • カスタム (ダッシュボード右上)(設定のちょっと下辺り)
  • 平均ビットレート : 32Kbps
  • フレームレート : 1fps
  • 配信キューの長さ : 100
  • プロファイル : Baseline ( ※ Androidでは「Baseline」のみ対応のため)

閲覧

  1. 配信サバを起動(EC2/nginxを起動する)
  2. THETA Sをライブストリーミングモードで起動 (参考 : 起動方法)
  3. LiveShell2を起動する
  • ダッシュボードから配信を開始する
  1. ブラウザから配信サバのPublicIPにアクセスするとプレイヤーが表示されるので再生します。

見えました!
LiveStreaming.png

今後の課題

  • タイムラグの軽減
  • 回線が重いと結構なタイムラグが発生します
  • LiveShell2の設定の見直し
  • サーバーのスケールアップ
  • DualfishEye動画をスティッチして全天球動画に変換して配信したい
  • 全天球動画をHMDで見たい

関連記事(ご紹介)

25
24
0

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
25
24

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?