Help us understand the problem. What is going on with this article?

SkyWay IoT SDK + ラズパイでカスタム遠隔監視カメラを作ってみる

More than 1 year has passed since last update.

本記事は、SkyWay IoT SDKがv0.1.0にあがったのに伴い古いものになりました。続編記事、 "続・SkyWay IoT SDKでのカスタム遠隔監視カメラ" を参照ください。

これは何?

SkyWay IoT SDK 1 とラズパイを使って、カスタムメイドな遠隔監視カメラを作ってみる

構成

全体構成はざっくりこんな感じ

image.png

  • gstreamer
    • USBカメラの映像からRTP/H.264の映像ストリームを生成する
  • Janus-gateway
    • RTP/H.264の映像ストリームなんかをWebRTCに変換して、ブラウザへ送信する
  • SkyWay
    • Janus-gatewayとブラウザ間のWebRTCのつなぎこみ(シグナリング)を行なう
  • Browser
    • 監視カメラのWebアプリを動かす

APIKEYの取得

まず、SkyWayのAPIKEYを https://console-webrtc-free.ecl.ntt.com/users/login から取得する。

image.png

Application SettingsAvailable Settings で、

  • localhost
  • nttcom.github.io

を登録する(Permissionsのチェックは全てはずしてOK)

SDK インストール

Raspbian jessieを推奨(stretchは、apt-getで入る gstreamer が現状イマイチなので)。Jessieのイメージはここからゲットできる。

以下のコマンドでインストールする

$ curl https://nttcom.github.io/skyway-iot-sdk/install_scripts/debian_based/installer.sh > installer.sh; sudo -E bash - installer.sh
#(最初にAPIKEYを聞かれるので、上の手順で取得したAPIKEYを入力する)
...

$ rm installer.sh; chown -R ${USER}:${USER} skyway-iot

各種プロセス起動

SDKのプロセスを起動する

  • Janus (映像ストリームをWebRTCに変換)
$ /opt/janus/bin/janus
  • SkyWay Signaling Gateway (JanusとSkyWayのつなぎこみ)
node skyway-signaling-gateway/app
  • sample app(ラズパイ側のサンプルアプリ)
node skyway-siru-device/examples/metrics

gstreamerを起動する

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

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-sample/dist/
(最初にAPIKEYが聞かれるので、上述のAPIKEYを入力する。room nameはデフォルトの testroom のままにする)

image.png

カメラ映像が見れる。あと、ラズパイのCPUや温度などのリアルタイムデータも表示される。

Janusだけ&ラズパイがNAT配下にあると、VPNでも貼らない限りインターネット経由でみれないが、このSDKを使うと可能なのが嬉しいところ。あと、CPU情報なんかも、DataChannelで取得するようになっていて All WebRTC な世界を満喫できる。


  1. ブラウザを使わずに Linux でヘッドレス動作する SkyWay の SDK(βバージョン)。WebRTCスタックとして Janus gatewayを利用している。 

  2. Janusでは、これを受信して、WebRTCに変換 => ブラウザに送信 

komasshu
Technical Manager of SkyWay, Web Application Evangelist in NTT Communications
nttcommunications
NTTコミュニケーションズは、お客さまのデジタルトランスフォーメーション実現に貢献する「DX Enabler™」として、ICTの活用によるお客さまの経営課題の解決やスマートな社会の実現に取り組みます。
https://www.ntt.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした