[UPDATE] AWS Elemental MediaConnectでコンテンツの品質メトリクスが利用可能になりました!

[UPDATE] AWS Elemental MediaConnectでコンテンツの品質メトリクスが利用可能になりました!

MediaConnectでもメディアコンテンツの品質にもとづいたメトリクス、Content quality analysisが利用可能になりました。より効果的な監視ができること請け合いです!意図的に品質を落とした際の挙動を確認してみました。
Clock Icon2025.01.31

はじめに

清水です。高品質で信頼性と安全性に優れたライブ動画伝送サービスであるAWS Elemental MediaConnectで、コンテンツの品質メトリクスが利用可能になるアップデートがありました。2025/01/27付けでWhat's New at AWSにポストされています。

AWS Media Servicesのライブ動画処理サービスでは昨年2024年11月に、MediaLiveとMediaPackage、そしてCloudFrontの連携でメディア・コンテンツの品質を考慮した障害対応が可能になるアップデートがありました。

MediaLiveやMediaPackageでMQCS (Media Quality Confidence Score)という品質スコアを計算、後続のサービスと連携することによりメディアコンテンツの品質を考慮した障害対策を行います。例えばMediaLiveでは、入力映像にBlack FramesやFreeze Framesなどがある場合にMQCSというメトリクスの値が下がります。

このような、ネットワーク的な障害のみではなく、そのメディアコンテンツ自体の品質にもとづいたメトリクスがAWS Elemental MediaConnectでも利用可能になりました!これまでもMediaConnectはSource stream monitoringInput thumbnailsなど、最近のアップデートでObservabilityが強化されてきましたが、それらに続きコンテンツの品質に基づく処理ができるようになります、嬉しいアップデートですね!

なおMediaConnect User GuideやAWS Management Consoleでは本機能を「Content quality analysis」と称していますので、本エントリ内でもこの Content quality analysisという名称で進めます。本エントリでは、このMediaConnectのContent quality analysisについて、有効化の方法や実際にどのように利用できるのかを確認してみたのでまとめてみたいと思います。

MediaConnectでContent quality analysisを有効にする

まずはMediaConnectのリソースを作成しつつ、このContent quality analysis機能を有効化する方法を確認していきます。User Guideの以下項目を参照しながら進めていきましょう。

MediaConnectのマネジメントコンソール、Flows一覧画面の(Create flow)ボタンを押下します。Create flowの画面で各種設定を行います。今回、Source typeはStandard source、またProtoclはSRT listenerとしました。Inboud portは5001を使用し、Allowlist CIDR blockについても適切に設定しておきます。暗号化は行いません。

cq02

さて、画面をさらに下にスクロールしてみましょう。最下部の(Create flow)ボタンの上、Souce monitoring configurationの項目に、 Content Quality Analysis state という項目が追加されていますね!(なお、Thumbnails stateは2024年9月のアップデートで追加された、入力映像のサムネイル画像表示の項目です。)

cp03

デフォルトでContent Quality Analysis stateはDisabledですが、これをEnabledにします。すると、Black Frames、Frozen Frames、Slient Audioの3つのMetricsと、それぞれのState、Thresholdの設定項目が現れます。3つのMetricsごと、有効/無効を切り替えることができますね。

cq04

今回は3つすべて有効Enabledにしました。Thresholdはデフォルトの30秒から、最短の10秒に変更しています。Thumbnails stateもContent Quality Analysis stateと同じくデフォルトでDisabledですがEnableとし、(Create flow)ボタンでFlowを作成します。

cq40

Flow作成後の詳細画面です。この画面のSource monitoring configurationにも、Content Quality Analysis stateの項目が追加されています。この画面ではEnabledの表示のみですが、右側にある(Edit)ボタンを押下することで各メトリクスの設定状況の確認、ならびに設定の変更が可能です。

cq06

cq20

さて、実際にMediaConnect FlowをStartさせる前に、動作確認用で映像を視聴するためのOutputリソースについても作成しておきます。Outputsのタブから(Add output)ボタンを押下し、各項目を設定します。ProtocolはSRT listenerとし、Portは5011としました。

cq08

cq09

MediaConnectへの入力映像品質を変えてContent quality analysisの動作を確認する

Content quality analysisを有効にしたMediaConnectリソースが準備できました。続いて、実際にMediaConnectに映像を入力し、その映像の品質を意図的に変えた際のContent quality analysisの動作を確認してみます。

動作確認のための準備

今回、映像はOBS StudioからSRTプロトコルでMediaConnectに入力します。OBS Studioの出力設定についてはデフォルト状態から変更していません。

cq10

配信の項目ではサービスでカスタム…を選択、サーバーでsrt://[MediaConnect SourceのInboudn IP address]:[Port](具体的にはsrt://18.XXX.XXX.79:5001)を設定します。

cq11

OBS Studio側の映像ソースですが、Big Buck Bunneyの映像を使用しました。ダウンロードした動画ファイル(Big Buck Bunny, Sunflower version、Standard 2D、Full HD (1920x1080)、30fps、bbb_sunflower_1080p_30fps_normal.mp4)をメディアソースとして追加、ループ(繰り返し)を有効にしておきます。

cq21

MediaConnect側でFlowをStartさせます。OBS Studio側から映像を打ち上げ、MediaConnectのOutput経由で問題なく映像が視聴できるか確認しておきます。映像の確認にはVLC media playerを使用しました。AWS Management ConsoleでInput thumbnailsなども確認しておきましょう。

cq23

cq22

Silent Audio発生時の挙動

まずは意図的にSilent Audioを発生させてみます。OBS Studioの音声ミキサーで音声をミュートすることで、意図的なSilent Audioを発生させます。音声ミキサー内のメディアソースのスピーカーマーク(🔊)をクリックしましょう。

cq24

OBS Studio側で音声がミュートになりました。

cq25

少しするとAWS Management ConsoleのAlertsのタブに変化が起こります。 「Alerts」という表記から「Alert (1)」という表記になりました。

cq26

Alertタブを確認してみましょう。 「Monitoring Stream Alert: Silent audio detected for more than 10 seconds. Please investigate the flow source.」というAlertが記載されていました。しっかりとSilent Auidoとなっていることを検知していますね。

cq27

OBS Studioの音声ミュートを解除しSilent Auido状態から復帰すると、このAlertも解決します。

cq28

Frozen Frames発生時の挙動

続いては意図的にFrozen Framesを発生させたときの挙動を確認してみます。OBS Studioのメディアソースを一時停止することで、意図的なFrozen Framesの発生としました。メディアソースを選択して一時停止ボタン(⏸️)を押下します。

cq29

OBS Studio側でメディアソースが一時停止され、Frozen Framesが発生しました。

cq30

Frozen Framesの場合でも、少しするとAWS Management ConsleのAlertsタブに変化が起こりました。確認してみると、以下のように「Monitoring Stream Alert: Silent audio detected for more than 10 seconds. Please investigate the flow source.」が記載されています。

cq31

そしてすぐに(スクリーンショットのInput thubmanils、PrevewのLast updateからわかるとおり1秒後とかです)、「Monitoring Stream Alert: Frozen frames detected for more than 10 seconds. Please investigate the flow source.」のAlertも追加されました。「Monitoring Stream Alert: Silent audio detected for more than 10 seconds. Please investigate the flow source.」と「Monitoring Stream Alert: Frozen frames detected for more than 10 seconds. Please investigate the flow source.」の2つのAlertsが発生している状態です。

cq32

OBS Studioでメディアソースを一時停止することでFrozen Framesを発生させましたが、同時にSilent Audioにもなっていますね。そのどちらも、MediaConnect側で正しく検知することができました。

Black Frames発生時の挙動

意図的にBlack Framesを発生させた際の挙動も確認してみます。OBS Studioメディアソース自体を一時的に非表示にすることでBlack Framesとしました。ソース一覧のメディアソースの項目で、目のマーク(👁️)をクリックします。

cq33

OBS Studio側でメディアソースが非表示となり、Black Framesの状態となりました。

cq34

Silent AudioやFrozen Framesと同様に、少しするとAWS Management ConsoleのAlertsタブに変化が起こります。まずは「Monitoring Stream Alert: Silent audio detected for more than 10 seconds. Please investigate the flow source.」のAlertが発生します。

cq35

続いて「Monitoring Stream Alert: Frozen frames detected for more than 10 seconds. Please investigate the flow source.」のAlertが発生します。

cq36

ほんの少しの間をおいて、「Monitoring Stream Alert: Black frames detected for more than 10 seconds. Please investigate the flow source.」のAlertも発生、以下3つのAlertが並びました。

  • Monitoring Stream Alert: Black frames detected for more than 10 seconds. Please investigate the flow source.
  • Monitoring Stream Alert: Frozen frames detected for more than 10 seconds. Please investigate the flow source.
  • Monitoring Stream Alert: Silent audio detected for more than 10 seconds. Please investigate the flow source.

cq37

Frozen Framesのときと同様ですが、OBS Studioでメディアソースを非表示にしてBlack Framesを発生させると、同時にSilent Audio、Frozen Framesの状態にもなります。3つのAlertsすべてをMediaConnectで検知している状態となりますね。

CloudWatchで各メトリクスを確認

MediaConnectへの入力映像の品質を意図的に変えた際、AWS Management ConsoleのAletsタブで検知されたコンテンツ品質の内容が表示されることが確認できました。User Guideによると、これらのイベントはEventBridgeへ連携可能で、EventBridgeからさらに別サービスをトリガしてContent quality analysisの結果を活用していくというかたちになります。

またCloudWatchのメトリクスでも、Content quality analysisの結果を確認することができます。User Guideの以下項目に記載されている、AudioSilentThresholdBreachingBlackFramesThresholdBreaching、そしてFrozenVideoThresholdBreachingの3つのメトリクスを実際にCloudWatchのコンソールで参照し確認してみました。(なおUser Guideの右側"Recently added to this guide"の表示から、このページについても2025/01に更新があったようです。今回のContent quality analysis関連のアップデートが追記されたものと理解しています。)

cq38

Silent Audio、Frozen Frames、Black Framesの順で動作確認をしてきましたが、それらそれぞれのタイミングで各メトリクスが変化していたことが確認できます。なお、Frozen Framesの際はSilent Audioが発生してからFrozen Framesの発生。またBlack Framesの場合は、Silent Auido、Frozen Frames、Brack Framesの順番でAlertsが発生していました。その順序についてもこのメトリクスから確認できます。わずかな時間ですが、検知にタイムラグが生じているのが興味深い点ですね。

cq39

まとめ

AWS Elemental MediaConnectで新たにサポートされたContet quality analysisについて、有効化の方法や意図的に入力映像ののコンテンツ品質を下げた際に発生するAlertなどについて確認してみました。MediaLiveやMediaPackageに続き、MediaConnectでもメディアコンテンツの品質にもとづいたメトリクスが利用可能になりました。入力映像の監視がより効果的になること請け合いです!今回は10秒のしきい値で確認を行いましたが、ユースケース等に応じて適宜調整を行いましょう。本エントリでは扱いませんでしたが、Content quality analysisのAmazon EventBridgeとの連携についても、今後確認していけたらと思います。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.