AWSのWowzaでVOD配信してみた
はじめに
清水です。AWS上でWowza Streaming Engine 4.5を構築してVOD配信をしてみました。
本エントリでは、以下についてまとめています。
- AWS MarketplaceでのWowza Streaming Engineのサブスクリプション
- Management ConsoleからWowza Streaming EngineのEC2インスタンスを起動
- Wowza Streaming Engine ManagerのTest Playerを利用したVOD配信
Wowza Streaming Engineとは
Adobe Media Server(AMS)のようなストリーミングサーバの1つで、Wowza Media Systemsにより開発されています。 多様な形式でのライブ、VODの配信が行えます。 もともとはAMSの互換製品ということでしたが、最近ではWowza Streaming Engine独自の機能や、MPEG-DASHなど最新形式にいち早く対応するなど、特徴的になっている印象です。 以前はWowza Media Serverという製品名でしたが、4.0のリリースに合わせてWowza Streaming Engineに名称変更したそうです。 単にWowza(ワウザ)と呼ぶこともあります。
現在の最新バージョンは2016/06/23にリリースされた4.5.0です。 今回はこの最新バージョン4.5.0を使用してVOD配信を行ってみます。
AWSでのWowza Streaming Engineの使用については、導入済みのAMIがWowza Media Systemにより準備されています。 AWS Marketplaceでサブスクリプションを購入することで、 月額費用 $15.00 と、EC2の利用時間に応じて課金されるHourly Feesでお気軽に利用できます!
以降、実際にサブスクリプション購入からEC2の起動、VODの配信までをやってみました!
AWS MarketplaceでのWowzaのサブスクリプション
まずは、AWS MarketplaceでWowza Streaming Engineのサブスクリプションを行ないます。
AWS Marketplace から、 wowzaをキーワードに検索します。 検索で出てくる以下2つ(Sold by Wowza Media Systems, LLC.となっているもの) がWowza Streaming Engine 4になります。
- Wowza Streaming Engine 4: Pro Edition (HVM)
- Wowza Streaming Engine 4: Bring Your Own License Pro Edition (HVM)
1.は先ほど述べました、月額費用とEC2の利用時間でAWS利用料に課金されるものです。
2.の方はライセンス持ち込み型(BYOL)になります。
(Monthly Subscription FeeとSoftware Hourly Feeがかからない分、2.の方が利用料が安いですが、ライセンスを持っていないと使用することはできません)
Wowza Streaming Engine 4: Pro Edition (HVM)のリンクを開き次のページに進みます。Subscription Fee等を確認して、Continueを押します。
サブスクリプションすることで、月額 $ 15.00 の費用が発生します。 これはWowza Streaminig EngineのEC2を起動しなくても毎月発生します。 使わなくなったらサブスクリプションを無効にしておきましょう。
1-Click Launch または Manual Launch を選択するページに進みます。今回は、Manual Launchを選択しました。
Accept Software Termsをクリックするまでは各リージョンの[Launch with EC2 Console]ボタンが有効になりません。
ライセンスなど確認して、[Accept Software Terms]ボタンを押します。
これでサブスクリプションできました。少しするとサブスクリプション完了のメールが届きます。またEC2が起動できるようになります。
Management ConsoleからWowzaの起動
サブスクリプションが完了したら、Wowza Streaming EngineのEC2インスタンスを起動してみます。
EC2のManagement Consoleから、[インスタンスの作成]ボタンで進みます。
「ステップ1: Amazon マシンイメージ(AMI) の選択」で、AWS Marketplaceを選択、wowzaで検索します。
先ほどサブスクリプションを終えた Wowza Streaming Engine 4: Pro Edition (HVM)が出てきますので、[選択]で進みます。
インスタンスタイプについては、一部利用できないインスタンスがあるので注意しましょう。
(t2.nano, t2.microなど、グレーアウトされているものは使用できません)
また、Wowza Streaming Engineはm3.large以上のスペックを推奨していますのでご注意ください。
また使用の際には、通常のEC2の料金のほか、MarketplaceのページにありましたSoftware Feeも発生します。
今回は、検証ということで最小のt2.smallを選択しました。
インスタンス詳細設定については、ネットワークなどを適切に設定します。
ストレージについては、デフォルトでルートに8GiBの汎用SSD、追加EBSに40GiBのマグネティックディスク、となっていました。今回はこのまま進めました。
ネームタグも適切に設定します。
セキュリティグループの設定については、今回は公式ドキュメントPDF(Wowza Streaming Engine for Amazo EC2 User Guide)も参考に以下としました。
HTTP(80), RTMP(1935)は公開用に全IP(0.0.0.0/0)に開放とします。
ポート8086-8088はWowza Streamign Enginie Managementとして使用されるので、特定の管理用IPに限定します。SSHについても同様です。(ほか、公式ドキュメントを参考に必要なポートは適宜開放してください。)
最後にインスタンス作成の確認、ならびにSSH鍵の確認をして、インスタンスを起動します。
Wowza Streaming Engine ManagerのTest Playerを利用したVOD配信
AWS Marketplaceでのサブスクリプション購入が完了し、 Wowza Streaming EngineのEC2インスタンスが起動できました。 続いてこのEC2から直接、Wowza Streaming Engine ManagerのTest Playerを使ってVOD配信を行ってみたいと思います。(CloudFrontは使用しない構成になります)
Wowza Streaming Engine Managerページへのアクセス
Wowza Streaming EngineのEC2インスタンスが起動できたら、Wowza Streaming Engine Managerにアクセスしてみます。 下記のURLをブラウザで開きます。
- http://[EC2のPublicDNSまたはパブリックIP]:8088/enginmanager
以下の様な画面が現れます。[Next->]で先に進みます。
Video Workflow OverviewのページもNextで進めます。
Please Sign Inとサインインを促すページになりますので、サインインします。
Usernameはwowza、Passwordは起動したEC2のインスタンスID(i-1234abcd)となります。
続いて、live streamをpublishするときの認証情報を入力する画面になりますが、今回はVOD配信を行うので空欄のまま次に進みます。 これで、Wowza Streaming Engine Managerのページにたどり着くことができました!
サンプルVODファイルの配信
続いてサンプルVODファイルを配信してみます。
Wowza Streaming Engine Managerのページにある、Test Videoの[|>Test Players...]のリンクを押してみます。
すると、Palyerが立ち上がります。
MPEG DASH、Apple HLS、Adobe RTMPなどなど、様々な種類のPlayerが準備されています。
再生したいフォーマットのタブを選択して、Media File Nameはそのまま、Startをクリックします。
サンプル動画のBig Buck BUNNY *1
の再生が始まります。
ただ、ブラウザにより再生できる形式が限らます。私が確認したところ、以下それぞれで再生ができました。(環境はMac OS X Yosemiteになります)
- Chrome (Mac OS X)
- MPEG DASH
- Adobe RTMP
- Adobe HDS
- Safari (Mac OS X)
- Apple HLS
独自ファイルのVOD配信
次にサンプルファイルでない独自のファイルをWowza Streaming Engineのサーバに追加して、VOD配信を行ってみます。
Wowza側のアプリケーションは、デフォルトで作成されているvodという名前のVOD APPLICATIONを使用します。こちらのアプリケーションのコンテンツディレクトリは、/home/wowza/conetentになっています。
配信するVODコンテンツとして今回は、 私のiPhone5Sで撮影した吉祥寺の町並みの風景の動画を、 ElasticTransocderの"System preset: Generic 720p" (mp4 Contanier)に 変換したものを使用します。 具体的には、以下のブログエントリで使用したものを使いました。
こちらを、上記/home/wowza/content ディレクトリにコピーします。
今回はWowzaにsshでログインして、Wowza上からwgetで取得しました。
$ ssh -i ~/[秘密鍵].pem ec2-user@[EC2のPublicDNSまたはパブリックIP] <WowzaのEC2にログイン> [ec2-user@ip-XXX-XXX-XXX-XXX ~]$ cd /home/wowza/content/ [ec2-user@ip-XXX-XXX-XXX-XXX content]$ pwd /home/wowza/content [ec2-user@ip-XXX-XXX-XXX-XXX content]$ ls sample.mp4 wowzalogo.png [ec2-user@ip-XXX-XXX-XXX-XXX content]$ sudo wget -O MySample.mp4 http://ダウンロードURL/パス <略> [ec2-user@ip-XXX-XXX-XXX-XXX content]$ ls MySample.mp4 sample.mp4 wowzalogo.png
必要でしたら読み取り権限など、適切に設定しておきます。
これを、さきほどと同様にTest Playerで再生してみます。 まず、Managerの上部のApplicationsの下向き三角形をクリックして、VOD APPLICATIONSの"vod"を選択します。 そして、画面右側のTest Players...のボタンを押すと、テストPlayerが立ち上がります。
Media File Nameのところのファイル名を変更します。今回は先ほどWowza上にコピーしたMySample.mp4というファイルを 再生したいので、mp4:MySample.mp4とします。 Startボタンを押すと再生が始まります。こちらはSafariでApple HLSを再生してみたところです。
また、TestPlayerではManifestファイルへのURLも生成されています。
このURLを他のPlayerへ渡すことでも再生することができます。
今回は、MPEG DASHのManifestファイルへのURLをMPEG-DASH Reference Clientへ渡して、再生してみました。
Test Playerで生成されていた、以下の形式のURLをCopyします。
- http://[EC2のPublic IP]:1935/vod/mp4:MySample.mp4/manifest.mpd
これを、Reference Clientのmanifest URL欄にPasteすると、再生できました!
まとめ
動画配信用ストリーミングサーバの1つであるWowza Streaming Engineについて、 AWS Marketplaceから購入、EC2インスタンスを起動してVOD配信を行ってみました。
私は同様のストリーミングサーバのひとつであるAdobe Media Server は割りと触ったことがあったのですが、Wowzaはほとんど触れたことがありませんでした。 だいぶ昔(2013年?まだWowza Media Server 3.5の時代)に触ったときは、 XMLを直接編集したりといろいろ大変なイメージがあったのですが、 現在の4.5.0ではWeb ManagerのGUIで操作することができ、 サーバにログインしたり、コマンドを叩くことになくVOD配信ができます。 (今回はVOD配信用のファイルコピーでSSH接続していますが、ここは工夫次第だと思います) 使いやすくなっていてびっくりしています!
引き続き、Wowza Streaming Engineのその他の機能や CloudFrontなど他のAWSサービスの連携についても確認していきたいと思います!
脚注
-
Big Buck Bunny
Copyright (C) 2008 Blender Foundation | peach.blender.org
Some Rights Reserved. Creative Commons Attribution 3.0 license.
http://www.bigbuckbunny.org/
↩