streampack の Tanaka です。
皆さんご存知のようにワールドカップ2018がやってますね。
グループリーグで結構波乱が起きてて、どの試合も見逃せない状況が続いおり、私は日々、寝不足と興奮が入り混じっている状態です。
また、NHKがライブ配信、ハイライト、見逃し配信を提供してて、さらにサッカー視点での選手のStatsや、いろんな角度からのカメラアングルをプレイヤー内で提供してて、いつもとは違う視点で映像を楽しめるようになってます。
https://www1.nhk.or.jp/sports/2018fifaworldcup/matches/
今後、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 でさらに何か処理することも可能です。