AWS MediaServicesについて


AWS Elemetnalとは

まずは一読
[初心者向け] AWS MediaServices の役割をライブ配信ワークフローと照らし合わせながら理解する
https://dev.classmethod.jp/articles/aws-mediaservices-role-with-live/
 

AWS MediaServices は、主に AWS 上で動画配信を行うために使用されるサービス

  • AWS Elemental MediaConnect
    • 信頼性と柔軟性が高く、安全なライブビデオの転送
  • AWSElemental MediaLive
    • ブロードキャストとマルチスクリーンビデオ配信のために入力をライブ出力に変換する
  • AWS Elemental MediaPackage
    • ライブおよびオンデマンドのビデオコンテンツの作成とパッケージ化
  • AWS Elemental MediaStore
    • ライブやオンデマンドのメディアワークフロー向けにビデオアセットを作成および保存する
  • AWS Elemental MediaTailor
    • サーバー側の広告挿入を使って、ビデオコンテンツをパーソナライズし、収益化する
  • AWS Elemental MediaConvert
    • オンデマンドブロードキャストとマルチスクリーン配信のためのファイルベースのビデオアセットを準備する

OTT(Over-The-Top)

インターネット経由で動画コンテンツ等のサービスを提供する企業の事を OTT(Over-The-Top)

動画配信ワークフローとは

1 エンコード
 撮影された生の動画ファイルはサイズが膨大であるため、それをユーザに届けるにはファイルサイズを適切に小さくする

圧縮する際のアルゴリズムの事をコーデックと呼びます。

また、ユーザがコンテンツを再生する環境は様々であるため、各環境に対応したコンテンツを生成する必要があります。

これをパッケージングと呼ぶことが多いです。

パッケージングには、各環境に対応する為のコンテンツ生成だけではなく、コンテンツを保護する為にDRMの仕組みを入れたり、広告のメタデータを埋め込むなど、様々な役割が内包されます。

  • DRM(Digital Rights Management, DRM)
    • デジタル著作権管理

ユーザからのリクエストに素早く応える為に、コンテンツを保管しておく場所も必要になってきます。これをオリジンと呼びます。

AWS MediaServices は、上記における各仕組みを AWS 上で提供し、動画配信ワークフローを実現するためのサービスとなります。

AWS 上でのライブ配信ワークフロー

動画配信のソースとしては、大きく分けてライブと VOD(Video on Demand)が挙げられる

コンテンツを AWS に転送

大抵のケースで生の撮影データはサイズが膨大な為、AWS にコンテンツを転送する前にオンプレミス側で圧縮(エンコード)する必要があります。

AWS に転送される前にオンプレでエンコードされたコンテンツについて、AWS ドキュメント上では Mezzanine Stream(メザニンストリーム)と表現される

Mezzanine」には「中間」といった意味合いがある

また、オンプレ側で使用するエンコーダーとして、AWS は Elemental Live と呼ばれる物理エンコーダーを提供しています。

ここで、オンプレから転送されて来る Mezzanine Stream を AWS 側で受ける際に使用できるサービスが AWS Elemental MediaConnect

エンコード〜パッケージング〜オリジン

AWS に動画を取り込んだら、ファイルを圧縮(エンコード)し、各再生環境に応じてコンテンツを変換(パッケージング)し、一連の処理が完了したコンテンツをオリジンに格納

AWS Elemental MediaLive

MediaLive によって、オンプレから来た動画ファイルが、私たちがよく目にする H.264 などのコーデックに変換されます。

また、MediaLive の主な役割はエンコードですが、HLS 形式で出力するなど、パッケージングも行う事が出来ます。

AWS Elemental MediaPackage

基本的に、MediaLive でエンコードされたファイルを受け取り、パッケージング処理を行います。

MediaPackage パッケージング処理
  • ジャストインタイム(JIT)パッケージング
  • DRM や 広告挿入との連携
ジャストインタイム(JIT)パッケージング

パッケージングによって、様々な再生環境に対応するコンテンツが生成

ただし、複数の再生環境に対応するパッケージングファイルを用意してしまうと、オリジンサーバーの容量を圧迫してしまいます。

そこで、パッケージング前のコンテンツのみを保持しておき、リクエストに応じて都度パッケージング処理をする事によってオリジンの負荷を下げる仕組みがジャストインタイムパッケージングです。

DRM や 広告挿入との連携

他にも、デジタル著作権保護(DRM)や、広告挿入なども MediaPackage はサポートしています。

今回は記事ボリュームの都合上取り上げていませんが、MediaTailor と連携する事で広告挿入の仕組みを実現できます

MediaStore は、ライブ動画の様に頻繁に更新&参照されるコンテンツに特化したオブジェクトストレージです。

AWS Elemental MediaStore

AWS 上でライブコンテンツのオリジン機能を提供するサービスが、AWS Elemental MediaStore です。

MediaStoreをS3よりも整合性の強いストレージとして理解する
https://dev.classmethod.jp/articles/aws-elemental-mediastore-mediastore-immediate-consistency/

MediaLive / MediaPackage / MediaStore 使い分け

MediaLive + MediaStore

ユースケースとしては、DRM や広告挿入などパッケージングに不要で、かつコンテンツの再生環境も限られている(HLSだけとか)場合にはこの構成で十分

MediaLive + MediaPackage

MediaLive にてエンコードのみを行い、パッケージングとオリジンの機能は MediaPackage で実現する構成

基本的には、MediaLive + MediaStore の構成をベース検討し、やりたい事(複数デバイス対応、DRM、広告挿入、etc)が達成出来ない場合には MediaPackage の使用を検討する、という流れが良いのではないでしょうか。

CDN