こんにちは!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
動画変換実行
- s3://demo-source-xxxxxxx に動画をアップロード
- email通知をもらう(Workflow started)
- 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のテンプレを利用することで簡単にサーバーレスな環境ができるのがかなり便利でした。
そのまま使うのもありかもしれませんがソースコードも提供されているのでカスタマイズもできそうです。
作成して内容を参考にするだけでも有益ですが。