Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
16
Help us understand the problem. What is going on with this article?
@komasshu

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

More than 3 years have 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に変換 => ブラウザに送信 

16
Help us understand the problem. What is going on with this article?
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
komasshu
Technical Manager of SkyWay, Web Application Evangelist in NTT Communications
nttcommunications
NTTコミュニケーションズは、お客さまのデジタルトランスフォーメーション実現に貢献する「DX Enabler™」として、ICTの活用によるお客さまの経営課題の解決やスマートな社会の実現に取り組みます。

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
16
Help us understand the problem. What is going on with this article?