17
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

MediaLive->MediaStoreでライブ配信するには

Posted at

こんにちはhagi@streampackです。
今回はMediaStoreを利用したMediaLive配信につきまして記述します。

MediaStoreとは?

AWSではこのように説明しています。

AWS Elemental MediaStore は、メディア向けに最適化された AWS ストレージサービスです。このサービスにより、ライブストリーミングによる動画コンテンツ配信に必要なパフォーマンス、整合性、低レイテンシーを実現できます。

MediaPackageとの違いは?

MediaPackageはMediaLiveからのHLSストリームを受けて複数の他のフォーマットで配信したり場合によっては提供するストリームを変えたりすることが可能です。
いわゆるパッケジングをするサービスとなります。
MediaStoreはストレージなのでMediaLiveの出力を変えず、MediaStore直またはCloudFrontなどから配信するために利用します。
イメージとしてはs3に格納するのと同じです。

はじめに

MediaLive+MediaPackageとセットアップ方法は似ているのでMediaLiveの説明は非常に簡易になっております。

構成

MediaLive + MediaStore

MediaStore

MediaLiveでデスティネーションが2つ必要なのでまずはMediaStoreのコンテナーを作成。
MediaPackageの時はchannelが2つ必須でしたがMediaStoreのコンテナーは1つでも可能。

コンテナー作成

AWSのコンソールにログインを行い右上に表示された、”Create Storage Container”で作成したいコンテナー名を入れ"Create Container"を押下。

スクリーンショット 2018-02-16 16.03.59.png

以上!

といいたいとこですが実はこれではアクセスができない。

Container Policyの編集

Containerをクリック

スクリーンショット 2018-02-16 16.13.53.png

Container Policyを編集

例など詳細はこちらをご参考ください。

誰でもhttpsで見れるようにしたいのでExample Container Policy: Public Read Access over HTTPSを利用
”region"、"owner acct number"、"container name"は環境に合わせてご設定ください。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "PublicReadOverHttps",
      "Effect": "Allow",
      "Action": ["mediastore:GetObject", "mediastore:DescribeObject"],
      "Principal": "*",
      "Resource": "arn:aws:mediastore:<region>:<owner acct number>:container/<container name>/*",
      "Condition": {
        "Bool": {
            "aws:SecureTransport": "true"
        }
      }
    }
  ]
}

MediaLive 設定

MediaLiveはここの設定を行い、HLS Group Destination A/Bの設定はMediaStoreのコンテナーにする。

設定を先出しすると下記のような形となります。
スクリーンショット 2018-02-16 17.04.52.png

URL

URLはMediaStoreのコンテナーのData Endpointを利用。

test.png

さらに、httpsではなくmediastoresslにする必要があります。

Destination A mediastoressl://XXXXXXXXXXXXXX.data.mediastore.ap-northeast-1.amazonaws.com/destA/test
Destination B mediastoressl://XXXXXXXXXXXXXX.data.mediastore.ap-northeast-1.amazonaws.com/destB/test

上記設定の場合配信先は下記となります。

Destination A https://XXXXXXXXXXXXXX.data.mediastore.ap-northeast-1.amazonaws.com/destA/test.m3u8
Destination B https://XXXXXXXXXXXXXX.data.mediastore.ap-northeast-1.amazonaws.com/destB/test.m3u8

同一のendpointを指定できないのでフォルダーを指定することでDestination AとBを別にしつつマニフェストを同じ名前の”test”としています。

最後に

これでMediaLive+MediaStoreの設定は完了です。
今回はMediaStoreのコンテナーを一つにしましたがこれには利点がいくつかあると思います。
例えば、

  • CloudFront ディストリビューションは一つでいい
  • MediaStoreはAWSのダッシュボードからもファイルを確認したり削除することができるので管理がしやすいかもしれない
  • Liveのデータファイルが全て入っているのでVODとしても提供可能だがライブごとにコンテナーを分ければ管理がしやすい

などなど

ちなみにコンテナーはファイルが入った状態では削除できないかつファイルを一気に削除することができないのでスクリプトなどを利用するかダッシュボードで一ずつポチポチするしかないです。

17
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?