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

Raspberry PiのカメラでAmazon Kinesis Video StreamsのWebRTCを使ってみる

Amazon Kinesis Video StreamがWebRTCをサポートしたので試してみました。

すでにiOS、Android、JavaScript,Cのクライアントライブラリとサンプルが提供されているので、今回はCのサンプルをRaspberry Piで試してみたいと思います。

https://github.com/awslabs/amazon-kinesis-video-streams-webrtc-sdk-c

使ったRaspberry Piは3 Model B。 RaspbianはStretch。

uname -aの結果

Linux raspberrypi 4.19.66-v7+ #1253 SMP Thu Aug 15 11:49:46 BST 2019 armv7l GNU/Linux

準備

一旦色々新しくして

sudo apt-get update
sudo apt-get upgrade
sudo apt-get clean
sudo reboot

サンプルをビルド&実行するのに必要なライブラリのインストール

sudo apt-get install pkg-config cmake libcap2 libcap-dev libssl-dev

最低限のサンプルはこれでビルドできますが、gstreamerを使ったサンプルに必要なライブラリも入れます。

sudo apt-get install gstreamer1.0-tools libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev gstreamer1.0-omx gstreamer1.0-plugins-good gstreamer1.0-plugins-ugly

カメラからの動画を表示してみる(Raspberry Pi上で作業)

今回はUSBカメラを使っているので、実際にカメラから画像を取り出せているか確認してみます。

gst-launch-1.0 autovideosrc ! autovideosink

これで、ウィンドーが開いてカメラからの画像が見れればOK。

Kinesis Video Streamのサンプルをビルド

https://github.com/awslabs/amazon-kinesis-video-streams-webrtc-sdk-c

このリポジトリにセットアップ方法が書かれているので、そのとおりにビルド。

cd ~
git clone --recursive https://github.com/awslabs/amazon-kinesis-video-streams-webrtc-sdk-c.git
mkdir -p amazon-kinesis-video-streams-webrtc-sdk-c/build; cd amazon-kinesis-video-streams-webrtc-sdk-c/build; cmake ..
make

これでいくつかのサンプルが使えるようになりました。

CMakeCache.txt  cmake_install.cmake    kvsWebrtcClientMasterGstSample  libkvsWebrtcClient.so
CMakeFiles      h264SampleFrames       kvsWebrtcClientViewer           libkvsWebrtcSignalingClient.so
Makefile        kvsWebrtcClientMaster  kvscproducer                    opusSampleFrames

サンプルの実行

kvsWebrtcClientMasterGstSampleが実際のサンプルプログラムですが、実行するにはAWSのクレデンシャルが必要なので、以下の環境変数を設定します。

  • AWS_ACCESS_KEY_ID
  • AWS_SECRET_ACCESS_KEY
  • AWS_DEFAULT_REGION(KVS使うregionに合わせる)

kvsWebrtcClientMasterGstSampleの引数は、1つ目がSignaling ChannelChannel Nameで、存在しなければ新規で作成し、すでにあればそれを使います。2つ目がvideo-onlyaudio-videoのどちらかを指定。

./kvsWebrtcClientMasterGstSample pi-camera video-only

これで、Raspberry Pi側はMasterとしてビデオのみを送ります。

送られてきた映像を見るのに、JavaScriptのサンプルで用意されている物を使います。
こちらのサンプルもAWSのクレデンシャル情報が必要になるので、以下の情報を入力します。

  • KVS EndpointのRegion(Raspberry Piと合わせる)
  • Access Key ID
  • Secret Access Key
  • Signaling ChannelのChannel Name

こんな感じで、左側にMacのカメラから入ってきている映像が表示され、右側にRaspberry Piからの映像が表示されます。
スクリーンショット 2019-12-30 15.51.20.png

Raspberry Piの負荷をみてみるとなかなか苦しそうですね。
スクリーンショット 2019-12-30 15.52.16.png

まとめ

サンプルが用意されているので、簡単にRaspberry Pi上で試すことが出来ました。

免責

発言内容は個人的な意見であり、所属する企業を代表するものではありません。
掲載しているソースコードは、サンプルレベルの物ですので動作を保証するものではありません。

後編 Amazon Kinesis Video StreamsのWebRTCとAlexaを組み合わせてドアホンみたいのを作る に続く

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
ユーザーは見つかりませんでした