1. komasshu

    Posted

    komasshu
Changes in title
+続・SkyWay IoT SDKでのカスタム遠隔監視カメラ
Changes in tags
Changes in body
Source | HTML | Preview
@@ -0,0 +1,79 @@
+# これは何?
+
+以前書いた https://qiita.com/komasshu/items/5042c1e18eb4589b977a の続編。[SkyWay IoT SDK](https://github.com/nttcom/skyway-iot-sdk) がv0.1.0にあがって、使い方が若干変わったのでそれのイントロ
+
+# 構成
+
+全体構成はこんな感じ。グローバルなリレーサーバー使わなくても、宅内のカメラや MQTT 話すIoTデバイスをリモートからあれこれできるようになる。
+
+![image.png](https://qiita-image-store.s3.amazonaws.com/0/83466/b8483af4-e5b4-a85d-797a-558810a1d197.png)
+
+宅内の Linux Box(ラズパイとか)の中で以下が稼働。
+
+* [gstreamer](https://gstreamer.freedesktop.org/)
+ * 外部カメラ映像からRTPストリームを生成
+* [Janus-gateway](https://janus.conf.meetecho.com/)
+ * WebRTC ゲートウェイ。RTP映像ストリームや各種データをWebRTCに変換してくれる便利な子
+* SSG
+ * SkyWay Signaling Gateway。Janus-gatewayだけだと、NATとか越えてくれないので、SSGでSkyWayとのシグナリング変換処理をしてグローバルアクセス可能にする。今回からMQTT Proxy over WebRTC の機能もつけたので、宅内MQTT機器の制御が、リレーサーバー(グローバルなMQTTブローカー)なしで簡単に実現できるようになった。
+
+# SkyWay APIKEYの取得
+
+ここについては、[前回記事](https://qiita.com/komasshu/items/5042c1e18eb4589b977a#apikey%E3%81%AE%E5%8F%96%E5%BE%97)を参照ください。
+
+# SDKインストール
+
+以下のインストーラーを動かすだけ
+
+* Raspbian stretchの場合
+
+```bash
+$ curl https://nttcom.github.io/skyway-iot-sdk/install_scripts/raspbian_stretch/installer.sh | sudo -E bash -
+$ ssg setup # プロンプト表示されたら、上記で取得したAPIKEYを入力する
+```
+
+* Ubuntu 16.04の場合
+
+```bash
+$ curl https://nttcom.github.io/skyway-iot-sdk/install_scripts/debian_based/installer.sh | sudo -E bash -
+$ ssg setup # プロンプト表示されたら、上記で取得したAPIKEYを入力する
+```
+
+# プロセス起動
+
+Janus gateway と SSG を動かす
+
+* Janus gateway
+
+```bash
+$ /opt/janus/bin/janus
+```
+
+* SSG
+
+```bash
+$ ssg start
+```
+
+# gstreamerを起動する
+
+USBカメラの映像から RTP/H.264ストリームを生成
+
+```bash
+$ gst-launch-1.0 v4l2src device=/dev/video0 ! \
+ video/x-raw,width=640,height=480,framerate=30/1 ! \
+ videoscale ! videorate ! videoconvert ! timeoverlay ! \
+ omxh264enc target-bitrate=2000000 control-rate=variable ! \
+ h264parse ! rtph264pay config-interval=1 pt=96 ! \
+ udpsink host=127.0.0.1 port=5004
+```
+
+# サンプルWebアプリで見る
+
+https://nttcom.github.io/skyway-siru-client/examples/ で、`apikey`に取得したAPIKEYを入力後、`start` をクリックする
+
+![image.png](https://qiita-image-store.s3.amazonaws.com/0/83466/2c7f2667-39bc-913e-cee9-f1a091d49731.png)
+
+# MQTT Proxyは?
+
+これについては、次回記事として書きますー