Bye Bye Moore

猫マンション建築の野望を胸に零細事業主として資本主義の荒波に漕ぎ出したアラサー男の技術メモ

Amazon Kinesis Video Streamsにアップロードする その1:環境の構築と反映。

以前の記事でOV5649とmjpg-streamerを使った配信をやってみました。
これだと機体に毎回接続しないといけないので負荷が大きいですし、保存も一苦労です。
そこで、AWS資源上にストリーミング環境つくって解析したり保存したりできるAmazon Kinesis Video StreamsをRasPi越しで使ってみることにしました。

実際のところ

カメラの用意

標準カメラではなくUSBカメラを使います。
shuzo-kino.hateblo.jp

IAM

Amazon Kinesis Video Streamsでルールを設定。
基本的つくりかたはこちらから。

環境のビルド

必要パッケージの導入。
笑えるほど多い。

$ sudo apt-get install libssl-dev libcurl4-openssl-dev liblog4cplus-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev gstreamer1.0-plugins-base-apps gstreamer1.0-plugins-bad gstreamer1.0-plugins-good gstreamer1.0-plugins-ugly gstreamer1.0-tools
$  git clone https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-cpp

公式でもなんの説明もなく配布される鍵

$ sudo curl https://
www.amazontrust.com/repository/SFSRootCAG2.pem -o /etc/ssl/cert.pem

ビルド

$ cd~/amazon-kinesis-video-streams-producer-sdk-cpp/build 
cmake .. -DBUILD_GSTREAMER_PLUGIN=ON -DBUILD_JNI=TRUE

ビルドは死ぬほど重いので覚悟をRasPi3B+でやるとOpenSSL関係がとくに。

$ gst-inspect-1.0 kvssink
Factory Details:
  Rank                     primary + 10 (266)
  Long-name                KVS Sink
  Klass                    Sink/Video/Network
  Description              GStreamer AWS KVS plugin
  Author                   AWS KVS <kinesis-video-support@amazon.com>

Plugin Details:
  Name                     kvssink
  Description              GStreamer AWS KVS plugin
  Filename                 /home/pi/amazon-kinesis-video-streams-producer-sdk-cpp/build/libgstkvssink.so
  Version                  1.0
  License                  Proprietary
  Source module            kvssinkpackage
  Binary package           GStreamer
  Origin URL               http://gstreamer.net/

...

AKVSのインスタンスを作成

f:id:shuzo_kino:20200921142315p:plain
インスタンスを作成
f:id:shuzo_kino:20200921143212p:plain

こんな画面。
デフォの動画保存は一日。
f:id:shuzo_kino:20200921143405p:plain

Amazon Kinesis Video Streamsのコンソールにログインしてみてみると、
大体二秒遅れくらいでのストリーミング配信がされてます。
f:id:shuzo_kino:20200921154259p:plain

ストリーミング画面では巻き戻ったり時間指定できたりするUIがついている他、
コーデック情報等々色々とみることができますね。
f:id:shuzo_kino:20200921154712p:plain
……すごいな魔界技術だ……

備考

cmakeについて

同じことをやろうとして記事でサブオプションのないコマンドをたたいてる
ブログ記事が散見されるものの、手元環境では明示的につけてやらないと

No such element or plugin 'kvssink'
|

がでてダメでした。