SkyWayを使いラズパイに付けたカメラを遠隔監視カメラにしたかったけどできなかった話です。ちゃんと設定できれば動くと思いますが私にはできませんでした。いつか動かせると信じてここに失敗手順を残します。
構成
カメラモジュール | Raspberry Pi Camera Module V2 カメラモジュール |
ラズパイ | Raspberry Pi Type B |
- OSバージョン
$ lsb_release -a
No LSB modules are available.
Distributor ID: Raspbian
Description: Raspbian GNU/Linux 10 (buster)
Release: 10
Codename: buster
参考
-
SkyWay関連
-
ラズパイ関連
- モニタ/キーボードを接続しないでラズパイにOSをインストールする
-
ストリーミングサーバを構築してみた
- ラズパイに接続したカメラモジュールの有効化
やったこと
ではここからやったこと(動かない手順)をつらつらとかいていきます。
SkyWayアプリケーション登録した
SkyWayのサイトでアカウント登録し、新しくアプリケーションを追加する
ボタンをクリックします。
アプリケーションの説明
欄には、管理しやすい文字列を登録し、利用可能ドメイン名
には、アクセスを許可するドメインを登録します。後で、テストサイトで動作確認をするので、nttcom.github.io
とskyway.github.io
は登録しておくとよいと思います。
- APIキーは後で使うのでメモしておきます。
ラズパイにOSインストールと基本的なセットアップをした。
- 以下コマンドの実行以外にロケールの設定やカメラモジュールの有効化などいろいろやりました。
# パッケージ更新
$ sudo apt-get update
$ sudo apt-get upgrade -y
$ sudo apt-get dist-upgrade
# ファームウェアを更新
$ sudo rpi-update
カメラモジュールが認識していることを確認します。
$ vcgencmd get_camera
supported=1 detected=1
ラズパイにskyway-iot-sdkをインストールする
-
サイトに従い
Raspbian stretch
を実行する
curl https://nttcom.github.io/skyway-iot-sdk/install_scripts/raspbian_stretch/installer.sh | sudo -E bash -
インストール終了時の画面はこんな感じです。
-
ssg setup
を実行し、APIキーを設定する
$ ssg setup
Input your SkyWay API Key : XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
setup finished
これで、セットアップは完了です。念のため、ラズパイOSをリブートしました。
遠隔監視を開始してみる
ラズパイで3つのコマンドを実行するためssh接続のターミナルを3つ用意して、それぞれ以下のコマンドを実行します。
# 【ターミナル①】 Janus gatewayを動かす
$ /opt/janus/bin/janus
# 【ターミナル②】 SSGを動かす
$ ROOMNAME=testroom MQTT_URL=mqtt://localhost MQTT_TOPIC=testtopic/+ ssg start
# 【ターミナル③】 Video Streamingを動かす
gst-launch-1.0 videotestsrc is-live=true ! \
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 \
audiotestsrc ! \
audioconvert ! queue ! \
audioresample ! \
audio/x-raw,channels=1,rate=16000 ! \
opusenc bitrate=20000 ! \
rtpopuspay ! udpsink host=127.0.0.1 port=5002
ターミナル①(赤枠)とターミナル②(青枠)でコマンド実行したところ、ターミナル③(緑枠)は、まだ実行してません。
ターミナル③でもコマンドを実行したところ、ターミナル①に、New audio stream!
とNew video stream!
と表示されました。
SkyWayのサイトで確認した
ラズパイで遠隔監視を開始した状態で、SkyWayのアプリケーションの管理画面で状況を確認します。
登録したアプリケーション管理画面を開き、接続中のPeerIDを確認します。
何も接続していない場合は、このようになります。
テストサイトで確認した
確認サイト https://nttcom.github.io/skyway-siru-client/examples/で確認してみます。
apikey
に取得したAPIキーを設定し、start
ボタンをクリックします。成功例は、こちらのサイトで紹介されているような画面になるそうです。私は、以下のように中途半版な結果になりました。
stausは、connected
となったのですがvideoはidle
となりました。video映像がちゃんと取れてないようです。uuidも表示されてないです。
ブラウザのデバッグモードで確認したところエラーと警告が発生していました。
エラーメッセージ
Unchecked runtime.lastError: The message port closed before a response was received.
警告メッセージ
A cookie associated with a cross-site resource at was set without the
SameSite
attribute. A future release of Chrome will only deliver cookies with cross-site requests if they are set withSameSite=None
andSecure
. You can review cookies in developer tools under Application>Storage>Cookies and see more details at and .
警告メッセージの内容から、ブラウザ側のセキュリティにブロックされているような?ちがうような。。。この問題の対策がわからず断念しました。
Signalingが18回と増えているので、動いている感がある(?)んだけどなぁ~