これは何?
以前書いた https://qiita.com/komasshu/items/5042c1e18eb4589b977a の続編。SkyWay IoT SDK がv0.1.0にあがって、使い方が若干変わったのでそれのイントロ
構成
全体構成はこんな感じ。グローバルなリレーサーバー使わなくても、宅内のカメラや MQTT 話すIoTデバイスをリモートからあれこれできるようになる。
宅内の 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
をクリックする
MQTT Relayは?
これについては、次回記事として書きますー