Kodak PIXPRO sp360とは1ショットでレンズを中心とした全方位の画像を撮影できる非常に面白いカメラです。
撮影した動画や静止画は、PCやスマホ・タブレットで閲覧したり加工してYouTubeの360度コンテンツとしてシェアしたりして楽しむことができます。
またライブストリーム機能もあり、sp360にwifiでアクセスすることでリアルタイムの映像を見ることも可能です。ところがこの機能については、研究・開発を行ううえで次のような難点がありました。
(1) 公式のアプリを使用しないとリアルタイム動画は見られない
(2) カメラと一度に接続できる端末(スマホ・PCなど)は1台のみ
しかし、他を探すのが面倒くさかったためどうしてもこれを使いたいと思って調べていたところ、非公式な方法ではあるけども画像を取得できる事が分かりました。
要点をまとめると以下のとおり。
(ⅰ) SSID SP360_XXXXにwifi接続
(ⅱ) 172.16.0.254:9176にアクセスすれば動画が流れてくる
(ⅲ) 動画の形式はmjpeg(モーションJPEG)
つまり、(ⅱ)で指定したipアドレスにwi-fiでアクセスさえすれば全方位画像をリアルタイムに取得できるようになるとのこと。また上記サイトには記載されていませんが、カメラにアクセスするPC側は以下のように設定しておく必要があります。
IPアドレス:172.16.0.1 サブネットマスク:255.255.255.0
以上を参考にして試しにwebブラウザでカメラにアクセスした結果、これだけで動画が取得できることが確認できました。あとは、このモーションJPEGを受け取るプログラムがあれば自作のアプリ内で全方位の動画を活用できるようになります。
ということで早速、モーションJPEGを取得するプログラムを用いて、以下の動画のようなCardboardアプリを作ってみました。
カメラから流れてくる動画のフレームレートが10fps前後だったため、滑らかさに欠けますが一応画像を取得できています。また、スマホの姿勢を取得しているのでカメラを中心とした全方位の風景を自由に見ることも可能になりました。
さらに、走行する模型にsp360を載せてその様子を表示してみました。こちらも普段とは異なる視点で世界を見ることができて面白かったです。もちろんヘッドトラッキングに対応しているので好きな方向の景色を見ることが可能です。
今後は、sp360から受信した動画をさらに他の端末に配信することでその場にいる人全員で全方位のリアルタイム画像を共有できる楽しいコンテンツを作れないかなと考えているところです。