Edited at

AWS Answers 提供の”Video on Demand on AWS”をやってみた

More than 1 year has passed since last update.

こんにちは!hagi@streampackです。


はじめに

今回は以前より気になっていたAWS Answersにある”Video on Demand on AWS”をやってみました。

作成の詳細はAWS Answersのページ(英語)をご参考ください。

こちらはあくまで私個人が利用した感想となります。

上記のページにはCloudFormationのテンプレートやドキュメントのリンクもあり、読む限り全てが準備されているようです。こちらで必要なのはAWS アカウントとコンテンツのみ。


環境

スクリーンショット 2018-03-14 15.40.31.png

CloudFormationのテンプレからは上記の環境が作成されるようです。

注意としては全てのサービスが提供されているリージョンで作成が必要なようです。

東京リージョンは全部揃っているので東京リージョンで作成。


CloudFormation テンプレート


入手

"Video on Demand on AWS”のページから"Deploy solution"をクリックすると簡単にデプロイできるページに飛ぶのですが、なんだか怖いのでテンプレートをダウンロードすることに。

**Launch Solutionのすぐ下からテンプレートをダウンロードすることができます。


デプロイ

CloudFormationでテンプレを読み込み"次へ"を押下。すると下記の画面が表示される。

スクリーンショット 2018-03-14 16.01.40.png

とりあえずスタックの名前を決め、すぐ消す予定なのでGlacier送りをfalse、動画のフレームキャプチャーはみてみたいのでtrueにして"次へ"

後からわかったことですがadminのメールアド未入力だとエラーが出ますのでご入力ください。

スクリーンショット 2018-03-14 16.10.19.png

ドキュメントにはオプションページは"次へ"を押下的な記述があるのでそのまま押すことにしました。

次ページでは"AWS CloudFormation によって IAM リソースが作成される場合があることを承認します。"にチェックマークを入れ"作成"を押下。


作成物

"作成"を押すと一気に色々な物が作成されます。

用途は勝手ながら私の名前からの推測です


s3

今回の設定で作成されるs3バケットは下記の通りでした。

バケット名
用途(推測)
備考

demo-source-xxxxxxx
元動画のアップロード用

demo-mp4destination-xxxxxx
変換されたmp4の出力用

demo-logs-xxxxx
ログ用

demo-abrdestination-xxxxx
HLS、DASH用
バケットポリシーも作成される


CloudFront

Name
用途(推測)
備考

demo-abrdestination-xxxxx
demo-abrdestination-xxxxxがオリジン


その他

たくさんのLambda関数やStep関数やIAMロールが作成されますが、CloudFormationスタック作成後興味がある方はご確認ください。

ソースコードはこちらで公開されています - https://github.com/awslabs/video-on-demand-on-aws


動画変換実行


  1. s3://demo-source-xxxxxxx に動画をアップロード

  2. email通知をもらう(Workflow started)

  3. 32分後完了email通知をもらう


成果物

元動画 - Video (h.264,1920x1080,3.9mbps,fps 29.97) audio(AAC、48000hz、ステレオ) ファイルサイズ(141.2MB)

name
コンテーナ
video
audio

demo_720p
mp4
h.265,1280x720,fps 25 6.7mbps
AAC、48000hz、ステレオ

demo_1080p
mp4
h.265,1920x1080,fps 25 8.6mbps
AAC、48000hz、ステレオ

demo.m3u8
HLS マスター

demo_270p.m3u8
HLS
h.264,480x270, fps 14.985, 522kbs
AAC、48000hz、ステレオ

demo_360p.m3u8
HLS
h.264,640x360, fps 29.97, 1.4mbps
AAC、48000hz、ステレオ

demo_540p.m3u8
HLS
h.264,960x540, fps 29.97, 3.8mbps
AAC、48000hz、ステレオ

demo_720p.m3u8
HLS
h.264,1280x720, fps 29.97, 5.5mbps
AAC、48000hz、ステレオ

demo_1080p.m3u8
HLS
h.264,1920x1080, fps 29.97, 9.4mbps
AAC、48000hz、ステレオ

demo.mpd
DASH マスター

demo_270pinit.mp4
DASH
h.264,640x360, fps 14.985, 400kbps

demo_360pinit.mp4
DASH
h.264,640x360, fps 29.97, 1.2mbps

demo_540pinit.mp4
DASH
h.264,960x540, fps 29.97, 3.5mbps

demo_720pinit.mp4
DASH
h.264,1280x720, fps 29.97, 5mbps

demo_720pinit.mp4
DASH
h.264,1280x720, fps 29.97, 5mbps

demo_audioinit.mp4
DASH

AAC、48000hz、ステレオ 128kbps

avc->hevc変換でなぜビットレートが上がるのか...


削除

削除は簡単でCloudFormationのスタック削除でほぼ全て消えます。

消えないのは確認した限りですとs3バケットとその中身でした。


最後に

AWS Answersのテンプレを利用することで簡単にサーバーレスな環境ができるのがかなり便利でした。

そのまま使うのもありかもしれませんがソースコードも提供されているのでカスタマイズもできそうです。

作成して内容を参考にするだけでも有益ですが。