streampack の Tanaka です。
皆さんご存知のようにワールドカップ2018がやってますね。
グループリーグで結構波乱が起きてて、どの試合も見逃せない状況が続いおり、私は日々、寝不足と興奮が入り混じっている状態です。
また、NHKがライブ配信、ハイライト、見逃し配信を提供してて、さらにサッカー視点での選手のStatsや、いろんな角度からのカメラアングルをプレイヤー内で提供してて、いつもとは違う視点で映像を楽しめるようになってます。
今後、2020東京オリンピックありますので、映像関連技術も日頃からキャッチアップが必要ですね。
概要
MediaConvert を使って SQS,SNS に変換完了通知を受け取る設定方法です。
AWS ElasticTranscoder ではパイプライン設定時に SNS を通して通知を受け取ることが可能でしたが、
MediaConvert の場合は CloudWatch 経由での通知が可能です。
完了通知の設定方法
Step 1: SQS の登録
[Create New Queue] にて新規にキュー(**mediaconvert_demo)**作成します。
注意点として、CloudWatch のターゲットのリストに作成したキューを表示させるために、 AddPermission アクションを許可してます。
Step 2: CloudWatch イベントの登録
下記にアクセスして、ルールを作成します。
https://ap-northeast-1.console.aws.amazon.com/cloudwatch/home?region=ap-northeast-1#rules:action=create
まずは [イベントソース] の設定です。
変換が完了(COMPLETE)したら、ターゲットの SQS にジョブを投げるようにします。
{
"source": [
"aws.mediaconvert"
],
"detail": {
"status": [
"COMPLETE"
]
}
}
ステータスには、COMPLETE 以外にも、PROGRESSING, STATUS_UPDATE、 ERROR などもあります。
https://docs.aws.amazon.com/ja_jp/mediaconvert/latest/ug/mediaconvert_cwe_events.html
エラー通知やフレーム単位の状況を受け取ることも可能です。
次は**[ターゲット]**の設定で、は先ほど作成した、SQS Queue(mediaconvert_demo) を選択します。
ジョブを投げる - MediaConvert
事前に準備しておいた、MediaConvertにてジョブを投げます。下記はジョブを投げたデモ用の Summary です。
ジョブの Status が COMPLETE になったら SQS にて確認します。
SQS で確認する
SQS にメッセージが届いていれば、連携は完了です。
SQSのメッセージ内容。
{
"version": "0",
"id": "f9c8cc28-60e9-e64a-f55f-xxxxxx",
"detail-type": "MediaConvert Job State Change",
"source": "aws.mediaconvert",
"account": "5x16937xxxxx",
"time": "2018-06-26T02:37:00Z",
"region": "ap-northeast-1",
"resources": [
"arn:aws:mediaconvert:ap-northeast-1:591693767697:jobs/1529980602621-xxxxxxx"
],
"detail": {
"timestamp": 1529980620274,
"accountId": "5x16937xxxxx",
"queue": "arn:aws:mediaconvert:ap-northeast-1:5916937xxxxx:queues/Default",
"jobId": "1529980x0262x-xxxxx",
"status": "COMPLETE",
"userMetadata": {},
"outputGroupDetails": [
{
"outputDetails": [
{
"durationInMs": 39831,
"videoDetails": { "widthInPx": 1280, "heightInPx": 720 }
}
]
}
]
}
}
より詳細な情報を得るためには jobId から Summary を取得するしかなさそうです。もしくは Meta などが使えるかもですが。。
結論
CloudWatch を使って、 MediaConvertの変換完了通知を SQS を使って受け取る方法の説明でしたが、CloudWatch に精通していない自分でも意外と簡単にできました。 今回は SQS への通知でしたが、ターゲットを追加することによって、SNSを使ってメール通知や、Lambda でさらに何か処理することも可能です。