WebRTC
IoT
SkyWay
janus-gateway

続・SkyWay IoT SDKでのカスタム遠隔監視カメラ

これは何?

以前書いた https://qiita.com/komasshu/items/5042c1e18eb4589b977a の続編。SkyWay IoT SDK がv0.1.0にあがって、使い方が若干変わったのでそれのイントロ

構成

全体構成はこんな感じ。グローバルなリレーサーバー使わなくても、宅内のカメラや MQTT 話すIoTデバイスをリモートからあれこれできるようになる。

image.png

宅内の Linux Box(ラズパイとか)の中で以下が稼働。

  • gstreamer
    • 外部カメラ映像からRTPストリームを生成
  • Janus-gateway
    • WebRTC ゲートウェイ。RTP映像ストリームや各種データをWebRTCに変換してくれる便利な子
  • SSG
    • SkyWay Signaling Gateway。Janus-gatewayだけだと、NATとか越えてくれないので、SSGでSkyWayとのシグナリング変換処理をしてグローバルアクセス可能にする。今回からMQTT Relay over WebRTC の機能もつけたので、宅内MQTT機器の制御が、リレーサーバー(グローバルなMQTTブローカー)なしで簡単に実現できるようになった。

SkyWay APIKEYの取得

ここについては、前回記事を参照ください。

SDKインストール

以下のインストーラーを動かすだけ

  • Raspbian stretchの場合
$ curl https://nttcom.github.io/skyway-iot-sdk/install_scripts/raspbian_stretch/installer.sh | sudo -E bash -
$ ssg setup # プロンプト表示されたら、上記で取得したAPIKEYを入力する
  • Ubuntu 16.04の場合
$ 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
$ /opt/janus/bin/janus
  • SSG
$ ssg start

gstreamerを起動する

USBカメラの映像から RTP/H.264ストリームを生成

$ 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

MQTT Relayは?

これについては、次回記事として書きますー