【Media系】AWSだけでHLSのVOD配信をしてみた(ABRに対応)

1. 目次


 

2. 環境説明

2.1. 使用するAWSサービス一覧

  • Amazon Elastic Transcoder
  • Amazon S3
  • Amazon CloudFront

2.2. 使用する動画コンテンツ

今回は”Big Buck Bunny”コンテンツをダウンロードしました。

2.3. 使用するブラウザー

  • Safari
  • Microsoft Edge

 

3. S3の準備

作成したS3バケットは以下の通り
バケット名リージョン用途備考
vod-input-01アジアパシフィック(東京)元動画のアップロード用
vod-output-01アジアパシフィック(東京)ETS出力用設定は特に不要
  • vod-input-01
    • 事前に使用する動画コンテンツをアップロード
  • output-01
    • フォルダ作成を作成
バケット名フォルダ名
vod-output-v01outpu-01

 

4. CloudFrontの準備

作成したCloudFrontは以下の通り
Domain NameOrigin名
vod-test.cloudfront.netvod-output-01.s3.amazonaws.com

4.1. CloudFront 作成手順

Origin Settings 編
項目設定内容
Origin Domain Namevod-output-01.s3.amazonaws.com
Origin IDS3-vod-output-0
Restrict Bucket AccessYes
Origin Access IdentityCreate a New Identity
Grant Read Permissions on BucketYes, Update Bucket Policy
 
Default Cache Behavior Settings 編
項目設定内容備考
Viewer Protocol PolicyHTTPS OnlyアクセスをHTTPS限定にする
CloudFront Private Content Getting Started と表示されたら作成成功で、デプロイ中です。約15分程掛かる場合があります。

 

5. Amazon Elastic Transcoder の準備

5.1. Pipelines 作成手順

Create New Pipeline 編
項目設定内容
Pipeline Namevod-pipeline-test
Input Bucketvod-input-01
 
Configuration for S3 Bucket for Transcoded Files and Playlists 編
項目設定内容
Bucketvod-output-01
 
Configuration for S3 Bucket for Thumbnails 編
項目設定内容
Bucketvod-output-01

5.2. 単一出力 Jobs 作成手順

Create a New Transcoding Job 編
項目設定内容
Pipelinevod-pipeline-test
Output Key Prefixoutput-01/
 
Input Details (1 of 1) 編
項目設定内容
Input Keybbb_sunflower_1080p_30fps.mp4
 
Output Details (1 of 1) 編
項目設定内容備考
PresetSystem preset: HLS 2M
Segment Duration10任意の範囲は 1~60 秒
OutPut Keyvov_test
 
Job Status が Complete になったら出力成功です。
S3に行き、確認してみると出力されているかと思います。
 
本当に見れるかSafariやEdgeまたはiphoneで確認してみよう。
https://vod-test.cloudfront.net/output-01/vod_test.m3u8 作成した cloudfront の Domain Name に置き換えてください。

 

6. ABR出力 Jobs 作成手順

今回は Rotation の設定を行っています、理由としては、画面の回転度で現在使用しているプレイリストの確認をしやすくする為です。
Create a New Transcoding Job 編
項目設定内容備考
Pipelinevod-pipeline-test
Output Key Prefixoutput-02/事前にフォルダを作成
 
Input Details (1 of 1) 編
項目設定内容
Input Keybbb_sunflower_1080p_30fps.mp4
 
Output Details (1 of 3) 編
項目設定内容備考
PresetSystem preset: HLS 2M
Segment Duration10任意の範囲は 1~60 秒
OutPut Keyhigh_mid/high自動でフォルダを作成後その中に出力をしてくれる
Output Rotation (Clockwise)auto任意
 
Output Details (2 of 3) 編
項目設定内容備考
PresetSystem preset: HLS 1M
Segment Duration10任意の範囲は 1~60 秒
OutPut Keymid_dir/mid自動でフォルダを作成後その中に出力をしてくれる
Output Rotation (Clockwise)90任意
 
Output Details (3 of 3) 編
項目設定内容備考
PresetSystem preset: HLS 400k
Segment Duration10任意の範囲は 1~60 秒
OutPut Keylow_dir/low自動でフォルダを作成後その中に出力をしてくれる
Output Rotation (Clockwise)180任意
 
Playlist (1 of 1) 編
項目設定内容
Master Playlist Namemaster
Playlist FormatHLSv3
Outputs in Master Playlisthigh_dir/high
Outputs in Master Playlistmid_dir/mid
Outputs in Master Playlistlow_dir/low
 
Job Status が Complete になったら出力成功です。S3に行き、確認してみると出力されているかと思います。
 
本当に見れるかSafariやEdgeまたはiphoneで確認してみよう。
https://vod-test.cloudfront.net/output-02/master.m3u8 作成した CloudFront の Domain Name に置き換えてください。
 
low の180度バージョン
 
high の0度バージョン
以上で AWS だけで VOD 配信をしてみたでした。

 

7. 最後に

個人のドメインで配信などを行いたい際は、CloudFrontのDomainNameをRoute53などに登録すると出来ます。
使わなくなった S3 や CloudFront などは削除しましょう。