Nodeから定期的にシャッター切ってSocket.IOで配信してWebGLでビューア作ってライブカメラ化した


WEB+DB PRESS Vol.85
WEB+DB PRESS Vol.85
posted with amazlet at 15.03.06
菅原 元気 磯辺 和彦 山口 与力 澤登 亨彦 濱田 章吾 宮田 淳平 松本 亮介 海野 弘成 佐藤 歩 泉水 翔吾 佐藤 太一 hide_o_55 青木 良樹 武本 将英 道井 俊介 伊藤 直也 橋本 翔 渡邊 恵太 舘野 祐一 中島 聡 はまちや2 竹原 牧 大輔 工藤 春奈
技術評論社
売り上げランキング: 806

書いた


1週間前に発売のWeb+DB Press 85号で全天球カメラ RICOH THETAのAPIについて書きました。

  1. THETAのAPIをNode.jsのricoh-theta npmから使う
  2. 全天球画像をブラウザで見れるビューアをWebGL(Three.js)で作った
  3. 応用例:全天球Webカメラを作る

という話を書いた。


全天球Webカメラ

リモートから1分毎に撮影してその画像をPCに取り込み、Socket.IOでクライアント(webブラウザ)に配信して表示させるというもの。
こんな感じで撮影した画像をパラパラと切り替え、繰り返す。時間が立つとどんどん新しい写真が追加されてくるので面白い。視点もぐりぐり回せるし、Androidのchromeからも見れる。

ソースコードはここ
https://github.com/shokai/theta-live-viewer
サーバー・クライアント合わせてcoffeeで130行ぐらい(ライブラリは含まず)なので改造とかもしやすいと思う

不満

THETAは充電しながらWiFiからAPIを使うことができない。バッテリーだけでAPI使ってるとだいたい1〜2時間で電池が切れてしまう。

USBケーブル接続して充電するんだけど、ただのACアダプタに接続してもPCに接続された時の写真読み取り待ちモード(と言えばいいのかな?)になってしまい、APIが使えない。USB-ACアダプタ等を使って充電されている時はデータ線が結線されていないはずだから、そこを判別して写真読み取り待ちモードにならずにWiFi APIを有効にしてほしい。