革命のブログ

フレボワークスの社員がブログを通じて情報発信します。

Kinesis Video Streamsを使って、Androidスマホのカメラ映像を配信してみた

どうも、小野です。 今回はAWSが提供している動画配信サービスの「Amazon Kinesis Video Streams」(以下、KVS)を試していきます。 本記事では、余分な説明を極力省いているので、15分程度で動作確認までいけると思います。

KVSについて、詳しく知りたい人は以下のサイトを参考にしてください。 docs.aws.amazon.com

前準備

  • AWSアカウントを取得していること
  • Android Studioがインストールされていること

手順

手順については、以下のサイトにも記載されています。 docs.aws.amazon.com

Cognitoの設定

今回、Androidアプリから利用するので、アプリからKVSを利用するため認証認可が必要になります。一般的にスマホアプリではCognitoを利用することが好ましいです。もちろん、アクセスキー、シークレットキーを持たせて行うことも可能ですが、セキュリティの観点から非推奨とされています。

ユーザプールの作成

f:id:frevo-works:20220413132730p:plain

f:id:frevo-works:20220413132805p:plain

f:id:frevo-works:20220413132833p:plain

f:id:frevo-works:20220413132850p:plain

f:id:frevo-works:20220413134205p:plain

f:id:frevo-works:20220413134220p:plain

f:id:frevo-works:20220413134303p:plain

f:id:frevo-works:20220413134415p:plain

f:id:frevo-works:20220413134447p:plain

f:id:frevo-works:20220413134551p:plain

IDプールの作成

f:id:frevo-works:20220413134609p:plain

f:id:frevo-works:20220413134622p:plain

f:id:frevo-works:20220413134758p:plain

配信アプリの準備

公開されているサンプルアプリケーションのソースをダウンロードします。

git clone https://github.com/awslabs/aws-sdk-android-samples

Android Studioで「aws-sdk-android-samples/AmazonKinesisVideoDemoApp」を開きます。

AmazonKinesisVideoDemoApp/src/main/res/raw/awsconfiguration.json を編集します。 各番号にはCognitoの設定時に記載した番号と同じ内容を入力する。

{
  "Version": "1.0",
  "CredentialsProvider": {
    "CognitoIdentity": {
      "Default": {
        "PoolId": "④",
        "Region": "ap-northeast-1"
      }
    }
  },
  "IdentityManager": {
    "Default": {}
  },
  "CognitoUserPool": {
    "Default": {
      "AppClientSecret": "③",
      "AppClientId": "②",
      "PoolId": "①",
      "Region": "ap-northeast-1"
    }
  }
}

AmazonKinesisVideoDemoApp/src/main/java/com/amazonaws/kinesisvideo/demoapp/KinesisVideoDemoAppを編集します。

public class KinesisVideoDemoApp extends Application {
    public static final String TAG = KinesisVideoDemoApp.class.getSimpleName();
    public static Regions KINESIS_VIDEO_REGION = Regions.AP_NORTHEAST_1; // 変更

動作確認

※スマートフォンのダークモードが有効になっていると表示が見にくい箇所があるので、予め無効にしておいてください。

Android Studioでデバイスを選択して実行し、アプリを起動させます。

配信側の画面

f:id:frevo-works:20220413140624p:plain

f:id:frevo-works:20220413140636p:plain

f:id:frevo-works:20220413140647p:plain

f:id:frevo-works:20220413140659p:plain

f:id:frevo-works:20220413145159p:plain

閲覧側の画面

f:id:frevo-works:20220413145507p:plain

f:id:frevo-works:20220413145233p:plain

↑メディア再生のところです。

おわりに

サンプルアプリが提供されていたので、簡単に試すことができました。Rekognitionとも連携できるので、リアルタイムで顔検出などやってみたいですね。今回はAndroidアプリでしたが、他にもJava、C、C++のSDKが用意されているので、興味がある方は試してみてください。