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

はじめに

今回は以前より気になっていたAWS Answersにある”Video on Demand on AWS”をやってみました。
作成の詳細はAWS Answersのページ(英語)をご参考ください。
こちらはあくまで私個人が利用した感想となります。

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

環境

CloudFormationのテンプレからは上記の環境が作成されるようです。
注意としては全てのサービスが提供されているリージョンで作成が必要なようです。
東京リージョンは全部揃っているので東京リージョンで作成。

CloudFormation テンプレート

入手

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

デプロイ

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

とりあえずスタックの名前を決め、すぐ消す予定なのでGlacier送りをfalse、動画のフレームキャプチャーはみてみたいのでtrueにして”次へ”
後からわかったことですがadminのメールアド未入力だとエラーが出ますのでご入力ください。

ドキュメントにはオプションページは”次へ”を押下的な記述があるのでそのまま押すことにしました。
次ページでは”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,1920×1080,3.9mbps,fps 29.97) audio(AAC、48000hz、ステレオ) ファイルサイズ(141.2MB)

name コンテーナ video audio
demo_720p mp4 h.265,1280×720,fps 25 6.7mbps AAC、48000hz、ステレオ
demo_1080p mp4 h.265,1920×1080,fps 25 8.6mbps AAC、48000hz、ステレオ
demo.m3u8 HLS マスター
demo_270p.m3u8 HLS h.264,480×270, fps 14.985, 522kbs AAC、48000hz、ステレオ
demo_360p.m3u8 HLS h.264,640×360, fps 29.97, 1.4mbps AAC、48000hz、ステレオ
demo_540p.m3u8 HLS h.264,960×540, fps 29.97, 3.8mbps AAC、48000hz、ステレオ
demo_720p.m3u8 HLS h.264,1280×720, fps 29.97, 5.5mbps AAC、48000hz、ステレオ
demo_1080p.m3u8 HLS h.264,1920×1080, fps 29.97, 9.4mbps AAC、48000hz、ステレオ
demo.mpd DASH マスター
demo_270pinit.mp4 DASH h.264,640×360, fps 14.985, 400kbps
demo_360pinit.mp4 DASH h.264,640×360, fps 29.97, 1.2mbps
demo_540pinit.mp4 DASH h.264,960×540, fps 29.97, 3.5mbps
demo_720pinit.mp4 DASH h.264,1280×720, fps 29.97, 5mbps
demo_720pinit.mp4 DASH h.264,1280×720, fps 29.97, 5mbps
demo_audioinit.mp4 DASH AAC、48000hz、ステレオ 128kbps

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

削除

削除は簡単でCloudFormationのスタック削除でほぼ全て消えます。
消えないのは確認した限りですとs3バケットとその中身でした。

最後に

AWS Answersのテンプレを利用することで簡単にサーバーレスな環境ができるのがかなり便利でした。
そのまま使うのもありかもしれませんがソースコードも提供されているのでカスタマイズもできそうです。

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

元記事はこちら

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