[アップデート] AWS Elemental MediaConvert で ABR パッケージ設定を自動で生成できる様になりました
こんにちは、大前です。
今日は AWS Elemental MediaConvert(以下 MediaConvert)に関する以下アップデートをお届けします。
Automated ABR (Adaptive Bit Rate) Configuration now available in AWS Elemental MediaConvert
TL;DR
- MediaConvert において ABR 設定を自動で行ってくれる機能が追加されました
- QBVR を使用して品質を保ちつつ最適なビットレートでの出力設定をしてくれる
- 料金は上がるケースがあるので注意
どんなアップデートか
MediaConvert で ABR(Adaptive Bit Rate)を生成する際に、ABR 構成を自動で設定してくれる機能が追加されました。
そもそも 「ABR ってなんぞ?」 という方は以下リンクなどを参照ください。
嬉しい点
通常、ABR 構成を設定する場合には解像度とビットレートの組み合わせを複数用意しそれぞれ出力設定を行う必要がありますが、なにぶん設定項目が多い事もあり、設定や最適化に手間がかかる部分でもありました。
今回のアップデートにより追加された自動 ABR 構成機能を使用する事により、細かい事を考えずにサクッと ABR 出力設定を行う事ができる様になります。
また、自動 ABR 構成機能は QVBR(Quality-DefinedVariable Bitrate)を使用しているため、コンテンツの内容に応じて最適なビットレートを割り当ててくれます。
これにより、品質を保ちつつ、ファイルサイズを最適化する事も可能です。
対応フォーマット
本機能は以下フォーマットに対して使用可能との事ですので、主要なストリーミング配信形式には対応している様です。
- HLS
- DASH
- CMAF
- Smooth Streaming
料金
本機能はプロフェッショナル階層での機能となります。
AWS Elemental MediaConvert 料金 - プロフェッショナル階層
かつ、品質チューニングレベルとしてマルチパス HQが使用されます。
Quality tuning level: MediaConvert encodes all renditions with Multi pass HQ. (品質調整レベル。品質調整レベル: MediaConvert では、すべてのレンディションをマルチパス HQ でエンコードします。)
そのため、ベーシック階層やシングルパスで MediaConvert を使用している場合には料金レートが上がる形となりますのでご注意ください。
また、生成されるレンディション(=ABR 内の1つの出力を表す単位)の数が多ければ多いほどエンコード費用も発生するため、無闇に多くのレンディションを生成しない様に注意する必要はありそうです。
やってみた
では、実際に追加された自動 ABR 構成機能を使ってみたいと思います。
機能の使用にあたっては、以下公式ドキュメントを参考にしました。
Using automated ABR in AWS Elemental MediaConvert
1. 出力グループを作成する
MediaConvert のジョブ作成画面を開き、入力ソースを指定した後に出力グループを追加します。
本機能は HLS / DASH / Smooth Streaming / CMAF に対応しているので、今回は HLS を選択して行きます。
2. 自動 ABR 機能を有効化する
出力グループを追加すると、少し下に「自動化 ABR」という項目が追加されていますので、こちらを有効化していきます。
有効化すると、以下の項目が表示されます。
各項目の概要は以下になります。
- 最大レンディション
- 生成されるレンディション(ABR の設定数)の上限を設定できます
- 最大/最小 ABR ビットレート
- 設定されるビットレートの上限/下限を設定できます
今回は、以下の設定としてみました。
自動 ABR 機能を有効化すると、出力グループ配下に「自動化 ABR ベース出力」という出力が生成される事が確認できます。
この出力内で細かい設定を行う事もできますが、今回はこのままジョブを実行していきます。
3. ジョブ結果を確認する
しばらく待つとジョブが完了しました。
今回は検証のため高速トランスコードを無効化せずに実行しましたが、短い動画でもそれなりに時間がかかったので、自動化 ABR 機能を使用する場合は高速トランスコードを有効にしましょう。
ジョブが完了すると、ジョブの詳細画面から生成された各レンディションの情報を確認できます。
上限として指定した 5種類のレンディションが生成された様です。
4. 生成されたマスターマニフェストファイルをみてみる
MediaConvert から S3 に吐き出されたマスターのマニフェストファイルをみてみます。
#EXTM3U #EXT-X-VERSION:3 #EXT-X-INDEPENDENT-SEGMENTS #EXT-X-STREAM-INF:BANDWIDTH=5376173,AVERAGE-BANDWIDTH=2951368,CODECS="avc1.4d4028,mp4a.40.2",RESOLUTION=1920x1080,FRAME-RATE=30.000 sample_1.m3u8 #EXT-X-STREAM-INF:BANDWIDTH=3630405,AVERAGE-BANDWIDTH=2003757,CODECS="avc1.4d4028,mp4a.40.2",RESOLUTION=1600x900,FRAME-RATE=30.000 sample_2.m3u8 #EXT-X-STREAM-INF:BANDWIDTH=2702061,AVERAGE-BANDWIDTH=1581381,CODECS="avc1.4d4028,mp4a.40.2",RESOLUTION=1600x900,FRAME-RATE=30.000 sample_3.m3u8 #EXT-X-STREAM-INF:BANDWIDTH=2080658,AVERAGE-BANDWIDTH=992534,CODECS="avc1.4d401f,mp4a.40.2",RESOLUTION=960x540,FRAME-RATE=30.000 sample_4.m3u8 #EXT-X-STREAM-INF:BANDWIDTH=1470034,AVERAGE-BANDWIDTH=766030,CODECS="avc1.77.30,mp4a.40.2",RESOLUTION=768x432,FRAME-RATE=30.000 sample_5.m3u8
#EXT-X-STREAM-INF が MediaConvert のジョブ結果で確認したレンディション数と同じ 5つ生成されている事が確認できますね。
#EXTM3U #EXT-X-VERSION:3 #EXT-X-INDEPENDENT-SEGMENTS #EXT-X-STREAM-INF:BANDWIDTH=5376173,AVERAGE-BANDWIDTH=2951368,CODECS="avc1.4d4028,mp4a.40.2",RESOLUTION=1920x1080,FRAME-RATE=30.000 sample_1.m3u8 #EXT-X-STREAM-INF:BANDWIDTH=3630405,AVERAGE-BANDWIDTH=2003757,CODECS="avc1.4d4028,mp4a.40.2",RESOLUTION=1600x900,FRAME-RATE=30.000 sample_2.m3u8 #EXT-X-STREAM-INF:BANDWIDTH=2702061,AVERAGE-BANDWIDTH=1581381,CODECS="avc1.4d4028,mp4a.40.2",RESOLUTION=1600x900,FRAME-RATE=30.000 sample_3.m3u8 #EXT-X-STREAM-INF:BANDWIDTH=2080658,AVERAGE-BANDWIDTH=992534,CODECS="avc1.4d401f,mp4a.40.2",RESOLUTION=960x540,FRAME-RATE=30.000 sample_4.m3u8 #EXT-X-STREAM-INF:BANDWIDTH=1470034,AVERAGE-BANDWIDTH=766030,CODECS="avc1.77.30,mp4a.40.2",RESOLUTION=768x432,FRAME-RATE=30.000 sample_5.m3u8
おわりに
MediaConvert のアップデートで追加された機能である自動 ABR 機能を使用してみました。
ABR を構成するために複数の出力設定を考える必要がなくなるので、結構便利な機能だと思いました。
ABR を構成する必要がある場合にはまず本機能の使用を検討してみましょう。
以上、AWS 事業本部の大前でした。