![[アップデート] AWS Elemental MediaConvert で VP9 ビデオ等による WebM 出力が可能になりました!](https://devio2023-media.developers.io/wp-content/uploads/2019/05/aws-elemental-mediaconvert.png)
[アップデート] AWS Elemental MediaConvert で VP9 ビデオ等による WebM 出力が可能になりました!
こんにちは、大前です。
本日は、以下のアップデートを紹介したいと思います。
WebM outputs with VP8 and VP9 video now available with AWS Elemental MediaConvert
どんなアップデートか
AWS Elemental MediaConvert(以下 MediaConvert)で、VP8 または VP9 ビデオ、Vorbis または Opus オーディオを使用した WebM 出力が可能となりました。
これにより、MediaConvert によるトランスコードの選択肢がより広がりました。
前提知識
WebM とは
MP4(.mp4)や QuickTime(.mov) の様な動画のコンテナフォーマットの一種です。
VP8 / VP9 とは
AVC(H.264)や AV1(AOMedia Video 1) のような動画圧縮コーデックの一種です。
開発元は Google で、HEVC(H.265)よりも高効率な圧縮を目指して開発が行われたコーデックです。
オープンなロイヤリティフリーである部分も特徴の1つです。
VP9 が最新で、その全世代的な立ち位置が VP8 になります。
あまり見かけないコーデックかもしれませんが、Google が開発元なので、Youtube にアップロードした動画は VP9 でエンコードされていることがあります。(AVC でエンコードされているものもあったので、動画の内容によってYoutube 側でコーデックを変えていそうです)
Vorbis / Opus とは
Vorbis は Xiph.org という団体、Opus は IETF という団体によって開発されたコーデックで、共にオープンフォーマットになります。
Vorbis は MP3 のライセンス問題に対して開発されたフォーマットなので、MP3 同等の品質を持ちながらオープンフォーマットである点が特徴です。
Opus は高い音質を実現する仕組みを持っている為、音質向上や、音質を保った状態でのビットレート削減が実現できるコーデックです。
料金について
従来の料金テーブルに、VP8 と VP9 使用時の料金レートが追加されている形になります。
参考までに、東京リージョンでの VP9 の料金レートのみ記載します。
ベーシック階層
Resolution | <=30 fps | >30 fps and <=60 fps | >60 fps and <=120 fps |
SD | $0.017 | $0.02975 | $0.034 |
HD | $0.034 | $0.0595 | $0.068 |
4K | $0.068 | $0.119 | $0.136 |
プロフェッショナル階層
2 pass (speed optimized) | 2 pass (quality optimized) | ||||||
---|---|---|---|---|---|---|---|
Resolution | <=30 fps | >30 fps and <=60 fps | >60 fps and <=120 fps | <=30 fps | >30 fps and <=60 fps | >60 fps and <=120 fps | |
SD | $0.0595 | $0.104125 | $0.119 | $0.08925 | $0.156187 | $0.1785 | |
HD | $0.119 | $0.20825 | $0.238 | $0.1785 | $0.312375 | $0.357 | |
4K | $0.238 | $0.4165 | $0.476 | $0.357 | $0.62475 | $0.714 |
ベーシック階層での AVC コーデックの最低レートが $0.0085
、
プロフェッショナル階層での AVC コーデックの最低レートが $0.0136
である事からも、当然それなりに料金レートは上がりますので、闇雲に使用する事は避けましょう。
やってみた
では、実際に新機能を試していきたいと思います。今回は、VP9 + Opus でのエンコードを MediaConvert でやってみます。
元ファイルとしては、Big Buck Bunny の動画を使用しました。
Blender Foundation | www.blender.org
元ファイル情報
MediaInfo を使いました。
- Video
- ビットレート : 3000k bps
- 解像度 : 1080p
- フレームレート : 30fps
- コーデック : AVC
- Audio
- ビットレート : 160k bps
- サンプルレート : 48.0k Hz
- コーデック : MP3
本当は音質の比較を Audacity などで視覚化したかったのですが、手元に使えそうなファイルがなかった為、断念しました。。
MediaConvert ジョブ作成
S3 に元ファイルをアップロードしたら、MediaConvert のジョブを作成していきます。
出力グループはファイルグループを選択
ビデオコーデックは VP9
を選択し、ビットレート等は元ファイルに合わせます。
オーディオコーデックに Opus
を選択し、ビデオと同様に他パラメータは元ファイルに合わせます。
コンテナで WebM を選択したら、ジョブを実行します。
ジョブが完了しました。
1080p, 30fps, 3000k bps, 10分程度の動画で約1時間かかりました。想像以上に時間がかかったのでビビってました。
Accelerated Video Transcoding を使用すればトランスコーディングの時間を短く出来るそうですが、それはまた別の機会に検証してみたいと思います。
変換後の動画を MediaInfo で確認してみるとこんな感じ。
ちゃんと VP9 + Opus でエンコードされてますね!
AAC よりも圧縮効率が高い事もあり、ファイルサイズも 263 MiB → 220 MiB と減っていました。
おわりに
AWS Elemental MediaConvert で VP8、VP9、Vorbis、Opus が使用できる様になりました。
特に、高音質を実現できる Opus が使用できる様になったのは嬉しい方もいるのではないでしょうか。
エンコード時間が非常に長かったので、Accelerated Video Transcoding は試してみたいと思います。
この記事がどなたかのお役に立てば幸いです。
以上、AWS 事業本部の大前でした。