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 でさらに何か処理することも可能です。

元記事はこちら

MediaConvertにて変換完了通知を受けとる方法