どうも、小野です。 今回は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が用意されているので、興味がある方は試してみてください。