どうも、小野です。 今回はAWSが提供している動画配信サービスの「Amazon Kinesis Video Streams」(以下、KVS)を試していきます。 本記事では、余分な説明を極力省いているので、15分程度で動作確認までいけると思います。
KVSについて、詳しく知りたい人は以下のサイトを参考にしてください。 docs.aws.amazon.com
前準備
- AWSアカウントを取得していること
- Android Studioがインストールされていること
手順
手順については、以下のサイトにも記載されています。 docs.aws.amazon.com
Cognitoの設定
今回、Androidアプリから利用するので、アプリからKVSを利用するため認証認可が必要になります。一般的にスマホアプリではCognitoを利用することが好ましいです。もちろん、アクセスキー、シークレットキーを持たせて行うことも可能ですが、セキュリティの観点から非推奨とされています。
ユーザプールの作成










IDプールの作成



配信アプリの準備
公開されているサンプルアプリケーションのソースをダウンロードします。
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でデバイスを選択して実行し、アプリを起動させます。
配信側の画面





閲覧側の画面


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




