こんにちは、オカザキです。
AWSの機能について調べているとサーバーレスで動画のストリーミング配信ができるという記事を見かけたので実際に自分でも環境構築をして配信サイトを作成しました。
その手順についての紹介を行いたいと思います。
使用サービス
今回は以下の3つのAWS内サービスを使用しました。
サービス名 | 説明 |
---|---|
Amazon S3 | ストレージサービス |
Amazon CloudFront | CDNサービス |
AWS Elemental MediaConvert | 動画変換サービス |
構築手順
注意点
今回の構築ではHLSというAppleが実装したプロトコルを使用したため、
対応しているブラウザはsafari限定となります。
Amazon S3バケットの作成
AWS管理コンソールより「S3」を選択し、バケットを作成します。
任意のバケット名を記載しリージョンを選択します。
作成したバケットに 元動画と変換後動画を格納するフォルダを作成します。
Amazon CloudFrontの設定
AWS管理コンソールより「CloudFront」を選択し、「Create Distribution」より
Webのデリバリーメソッドにて「 Get Start」を選択します。
OriginSettingの「Origin Domain Name」にて先ほど作成したバケットを選択します。
その他の項目は デフォルトのままにして「Create Distribution」を選択します。
ステータスが「Deployed」になるまで待ちます。(10分程度)
AWS Elemental MediaConvertの設定
MediaConvert操作前に予め、S3の元動画フォルダ内に配信をしたい動画ファイルを格納しておきます。
AWS管理コンソールより「MediaConvert」を選択し、ジョブを作成します。
・入力
入力1にて先ほど格納した動画ファイルを選択します。
・出力グループ
出力グループをApple HLSを選択します。
送信先に S3の変換後動画フォルダを指定します。
セグメントの長さを任意の秒数に指定します。
→ここの指定に応じて ストリーミングする際に、 動画を分割して読み込む回数が変わります。
出力の名前修飾子に任意の文字を入力します。
ビットレートにて任意のビットレートを指定します。
IAMロールにて「AmazonS3FullAccess]を持つIAMロールを指定します。
作成ボタンを押下し、変換が完了するのを待ちます。
変換が完了すると、S3の変換後フォルダに「m3u8」ファイルおよび「ts」ファイルが出力されます。
サイトの確認
ブラウザ(safari)にて 、サイトにアクセスします。
https://○○/S3変換後フォルダ名/m3u8ファイル名
〇〇=cloudfrontのディストリビューションが自動的に割り当てるドメイン名
1
|
例:xxxxxxxxx.cloudfront.net
|
アクセスすると、ストリーミング配信できていることがわかります。
これにて無事ストリーミング配信を行うことができました。
AWSにはさまざまなサービスがあるのでそれらを組み合わせて情報発信していけたらと思います。
参考サイト
- https://aws.amazon.com/jp/cdp/cdn/
- https://dev.classmethod.jp/cloud/mediaconvert-hls-cfn-template/
- https://video.j-creativeworks.co.jp/blog/?p=250
- https://qiita.com/kohatang/items/26d9df4a348d44bbb7d4
以上です。