Amazon Web Services ブログ

AWS Elemental MediaConvert のメディアメトリクスを使って動画コンテンツとエンコーディング品質を監視する

はじめに

ビデオオンデマンドのワークフローを大規模に設計・運用する場合、お客様はトランスコーディングパイプラインのパフォーマンスに関するインサイトを得るために豊富なメトリックデータを必要とします。AWS Elemental MediaConvert は、Amazon CloudWatch および Amazon EventBridge とネイティブに統合されており、Amazon Web Services (AWS) 上で実用的かつ観測可能なシステムを構築するために必要なツールをお客様に提供します。

MediaConvert では、オブザーバビリティのポートフォリオを拡張するメディアメトリクスの提供を開始しました。これにより、CloudWatch や EventBridge におけるメディア固有のメトリクスを監視するエクスペリエンスが向上しました。メディアメトリクスを活用することで、お客様は潜在的な問題を早期に特定し、必要な調整を行って動画品質および配信を最適化することができます。本ブログ記事では、MediaConvert で CloudWatch アラームと EventBridge ルールを使用してトランスコードの警告、ビデオコンテンツの黒味、字幕の欠落、エンコーディング品質スコアなどの要素に対して例外ベースの監視を構築する方法について説明します。

AWS Elemental MediaConvert イベント

AWS Elemental MediaConvert Events Diagram

MediaConvert のユーザーは、EventBridge イベントを使用して、ジョブのステータスや API コール、エラーに関する包括的な情報にアクセスすることができます。メディアメトリクスの公開に伴い、MediaConvert のジョブは、EventBridge を通じて警告コードやその他の動画品質に関する情報を発行できるようになります。これらの警告は、トランスコードの失敗につながるとは限らないものの、ジョブの出力に予期せぬ影響を及ぼしかねない事態がトランスコードで見つかったことを示します。発生する可能性のある警告の例としては、音声と映像の同期に関する問題、字幕の欠落、出力先 Amazon S3 バケットでのスロットリングなどがあります。お客様は、これらの警告を既存のジョブステータス変更イベントと組み合わせて使用することで、広範なイベント駆動型ワークフローを構築し、品質に影響を与えうるアラートについて詳細な通知を設定することができます。警告情報は AWS コンソールとジョブ (GetJob、ListJobs) の API レスポンスからも確認できます。警告コードの包括的なリストについては、こちらのリンクを参照してください。

EventBridge では、MediaConvert のイベントを他の AWS サービスやサードパーティアプリケーションと簡単に統合できます。以下に、ユニークな警告状態が初めて発生した際にNEW_WARNINGイベントとして受信され得るイベントパターンとイベントペイロードの例、およびジョブ COMPLETE イベントのイベントペイロードを示します。ジョブの COMPLETE および ERROR の CloudWatch イベントには、以下のようなさまざまな新しいイベントデータに加え、発生したすべてのユニークな警告の一覧も含まれます。

  • 出力の平均ビットレート
  • 出力の継続時間 (ミリ秒単位)
  • 出力グループの解像度の詳細
  • 連続ブラックフレームの開始/終了タイムスタンプ
  • 動画に挿入されたパディングの量
  • 品質指定可変ビットレート(QVBR)の品質レベルに関する統計データ

これらのサンプルを使用して、受信した警告イベントを照合してフィルタリングするための EventBridge ルールを作成し、それらを Amazon Simple Notification Service (Amazon SNS) などのターゲットに送信して処理することができます。イベント駆動型のアプローチをとることで、以下のようなさまざまな方法でアクションを自動化できます。

  • MediaConvert ジョブの状態変更や警告の通知を受け取る
  • AWS Lambda など他の AWS サービスを使って修復アクションを自動化する
  • サードパーティーのソリューションと連携して、実行可能なパイプラインを作成・拡張する

AWS Media Services 用に Amazon SNS で EventBridge 通知を設定する詳しい手順については、こちらのリンクを参照してください。

EventBridge イベントパターン

{
  "source": ["aws.mediaconvert"],
  "detail-type": ["MediaConvert Job State Change"],
  "detail": {
    "status": ["NEW_WARNING"]
  }
}                 

AWS Elemental MediaConvert NEW_WARNING のペイロード例

{
    "version": "0",
    "id": "1234abcd-12ab-34cd-56ef-1234567890ab",
    "detail-type": "MediaConvert Job State Change",
    "source": "aws.mediaconvert",
    "account": "111122223333",
    "time": "2018-01-07T23:35:20Z",
    "region": "us-west-2",
    "resources": ["arn:aws:mediaconvert:us-west-2:111122223333:jobs/1515368087458-qnoxtd"],
    "detail": {
        "timestamp": 1515368120764,
        "accountId": "111122223333",
        "queue": "arn:aws:mediaconvert:us-west-2:111122223333:queues/Default",
        "jobId": "1515368087458-qnoxtd",
        "status": "NEW_WARNING",
        "warningCode": "000000",
        "warningMessage": "Example warning message",
        "userMetadata": {}
    }
}

AWS Elemental MediaConvert COMPLETE のペイロード例

{
    "version": "0",
    "id": "1234abcd-12ab-34cd-56ef-1234567890ab",
    "detail-type": "MediaConvert Job State Change",
    "source": "aws.mediaconvert",
    "account": "111122223333",
    "time": "2022-12-19T19:07:12Z",
    "region": "us-west-2",
    "resources": [
        "arn:aws:mediaconvert:us-west-2::jobs/1671476818694-phptj0"
    ],
    "detail": {
        "timestamp": 1671476832124,
        "accountId": "111122223333",
        "queue": "arn:aws:mediaconvert:us-west-2:111122223333:queues/Default",
        "jobId": "1671476818694-phptj0",
        "status": "COMPLETE",
        "userMetadata": {},
        "warnings": [
            {
                "code": 000000,
                "count": 1
            }
        ],
        "outputGroupDetails": [
            {
                "outputDetails": [
                    {
                        "outputFilePaths": [
                            "s3://DOC-EXAMPLE-BUCKET/file/file.mp4"
                        ],
                        "durationInMs": 30041,
                        "videoDetails": {
                            "widthInPx": 1920,
                            "heightInPx": 1080,
                            "qvbrAvgQuality": 7.38,
                            "qvbrMinQuality": 7,
                            "qvbrMaxQuality": 8,
                            "qvbrMinQualityLocation": 2168,
                            "qvbrMaxQualityLocation": 25025
                        }
                    }
                ],
                "type": "FILE_GROUP"
            }
        ],
        "paddingInserted": 0,
        "blackVideoDetected": 10,
        "blackSegments": [
            {
                "start": 0,
                "end": 10
            }
        ]
    }
}

AWS Elemental MediaConvert のメトリクス

AWS Elemental MediaConvert は、トランスコーディングワークフローと動画コンテンツのパフォーマンスの監視に使用できる CloudWatch メトリクスを発行します。CloudWatch メトリクスを使用して MediaConvert のキュー、ジョブ、出力を監視する方法をいくつか紹介します。

  • プログラムエラーの監視:お客様は、CreateJob、GetJob、ListJob などの MediaConvert API を呼び出す際に発生したエラーを追跡できます。
  • キュー効率の監視:キューメトリクスを使用して、特定のキューのジョブ数やトランスコーディングジョブの完了に要する時間などの詳細を取得します。
  • エンコードパフォーマンスの監視:メディア固有のメトリクスにより、お客様は、ソースコンテンツの動画品質や MediaConvert 出力の動画品質を把握しやすくなります。

MediaConvert でメディアメトリクスを使用することで、お客様は、ソースコンテンツと出力に関する活用可能な情報量を増やすことができます。たとえば、入力アセットのブラックフレーム数や、トランスコードされたコンテンツのビットレートや映像品質スコアを監視することができます。以下は、MediaConvert 用に新たに導入されたメディア固有の CloudWatch メトリクスのリストです。MediaConvert メトリクスの包括的なリストについては、こちらのリンクを参照してください。

メトリクス名 説明 単位 ディメンション
VideoPaddingInserted ジョブの出力全体において、MediaConvert により挿入された空白フレームの合計時間(ミリ秒単位)。
動画のパディング処理では音声と映像の時間を揃えるために空白のフレームが挿入されます。VideoPaddingInserted の値が大きいと、より多くの空白フレームが挿入されたことを示しています。また、入力のオーディオトラックが、遅れて開始、早く終了、あるいはどちらも該当する場合、その程度を示します。
ミリ秒 Queue
VideoPaddingInsertedRatio

MediaConvert によって挿入された空白フレームと出力合計時間の比率。

この比率が高いと、入力の音声と映像の同期に問題がある可能性があります。

比率 Queue
QVBRAvgQualityHighBitrate 出力グループの最高ビットレート出力の平均 QVBR 品質スコア。 スコア Queue, Output Group Type
QVBRAvgQualityLowBitrate 出力グループの最低ビットレート出力の平均 QVBR 品質スコア。 スコア Queue, Output Group Type
QVBRMinQualityHighBitrate 出力グループの最高ビットレート出力の最小 QVBR 品質スコア。 スコア Queue, Output Group Type
QVBRMinQualityLowBitrate 出力グループの最低ビットレート出力の最小 QVBR 品質スコア。 スコア Queue, Output Group Type
BlackVideoDetected 入力側と共通して存在する出力側のブラックビデオフレームの合計時間(ミリ秒単位)。
BlackVideoDetected には、MediaConvert により挿入されたブラックフレームは含まれていないことに留意してください。
ミリ秒 Queue
BlackVideoDetectedRatio ブラックビデオフレームと出力合計時間の比率。
比率が高いほど、出力にブラックフレームが多いことを示します。
比率 Queue
LongestBlackSegmentDetected 最長の連続ブラックビデオフレームセグメントの出力位置(ミリ秒単位)。 ミリ秒 Queue
AvgBitrateTop 出力グループの最高ビットレート出力の平均ビットレート。 ビット毎秒 Queue, Output Group Type
AvgBitrateBottom 出力グループの最低ビットレート出力の平均ビットレート。 ビット毎秒 Queue, Output Group Type

MediaConvert Diagram

お客様は、CloudWatch Dashboards を使って CloudWatch メトリクスを一元的に表示し、トランスコーディングジョブのパフォーマンスと動画の品質を包括的に把握することで、MediaConvertジョブを常時監視することができます。より積極的なアプローチとしては、CloudWatch アラームの使用をおすすめします。このアラームを使用することで、特定のメトリクスが指定されたしきい値を超えた場合について、通知を受け取り、アクションを自動化することができます。MediaConvert のメディアメトリクスを使用すると、お客様はトランスコードアセットのブラックビデオフレームや、パディングされたビデオフレーム、ビットレート統計データ、映像品質スコアに関するしきい値のアラームを作成することができます。EventBridge と同様に、ユーザーはしきい値違反に対し、SNS を使用した通知の送信や、他の AWS サービスやサードパーティソリューションの呼び出しなど、さまざまなアクションを実行できます。CloudWatch Alarms を使うと、モニタリングのオーバーヘッドを削減し、トランスコーディングパイプラインの可視性を向上させることができるため、潜在的な問題に迅速かつ適切に対応することが可能になります。こちらのブログ記事では、Amazon CloudWatch を使用して AWS Elemental MediaConvert のダッシュボードとアラームを作成する詳細な手順を説明しています。

おわりに

メトリクスやイベントを使って AWS Elemental MediaConvert をモニタリングすることは、トランスコードされたコンテンツの映像と音声の詳細な品質メトリクスを取得し、お客様の体感品質 (QoE: Quality of Experience) に影響が出る前に問題を特定するうえで、非常に重要です。Amazon CloudWatch と Amazon EventBridge には、MediaConvert ワークフローに対するモニタリング・分析・アクションを行うための強力なツールセットが用意されているため、ユーザーは MediaConvert のパフォーマンスに関する貴重なインサイトを取得し、何か問題が発生した場合には迅速に解決することができます。MediaConvert のメディアメトリクスは、動画コンテンツとトランスコーディングジョブに関する豊富なデータを提供し、動画ワークフローと動画品質を最適化するために使用できます。トランスコードの警告、映像品質スコア、ブラックフレーム、ビットレート統計データなどの主要なメトリクスを追跡することで、十分な情報に基づいた意思決定を行い、動画アセットの全体的な品質を向上させることができます。今後も、MediaConvert のオブザーバビリティ機能をさらに強化する新たなイベントやメトリクスにご期待ください。


参考リンク

AWS Media Services
AWS Media & Entertainment Blog (日本語)
AWS Media & Entertainment Blog (英語)

AWS のメディアチームの問い合わせ先: awsmedia@amazon.co.jp
※ 毎月のメルマガをはじめました。最新のニュースやイベント情報を発信していきます。購読希望は上記宛先にご連絡ください。

翻訳は BD 山口、SA 井村が担当しました。原文はこちらをご覧ください。