AWSのWowzaでVOD配信してみた

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

清水です。AWS上でWowza Streaming Engine 4.5を構築して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になります。

  1. Wowza Streaming Engine 4: Pro Edition (HVM)
  2. Wowza Streaming Engine 4: Bring Your Own License Pro Edition (HVM)

Wowza-001


1.は先ほど述べました、月額費用とEC2の利用時間でAWS利用料に課金されるものです。 2.の方はライセンス持ち込み型(BYOL)になります。 (Monthly Subscription FeeとSoftware Hourly Feeがかからない分、2.の方が利用料が安いですが、ライセンスを持っていないと使用することはできません)

Wowza Streaming Engine 4: Pro Edition (HVM)のリンクを開き次のページに進みます。Subscription Fee等を確認して、Continueを押します。

Wowza-002

サブスクリプションすることで、月額 $ 15.00 の費用が発生します。 これはWowza Streaminig EngineのEC2を起動しなくても毎月発生します。 使わなくなったらサブスクリプションを無効にしておきましょう。

1-Click Launch または Manual Launch を選択するページに進みます。今回は、Manual Launchを選択しました。
Accept Software Termsをクリックするまでは各リージョンの[Launch with EC2 Console]ボタンが有効になりません。
ライセンスなど確認して、[Accept Software Terms]ボタンを押します。

Wowza-003

これでサブスクリプションできました。少しするとサブスクリプション完了のメールが届きます。またEC2が起動できるようになります。

Wowza-004

Management ConsoleからWowzaの起動

サブスクリプションが完了したら、Wowza Streaming EngineのEC2インスタンスを起動してみます。
EC2のManagement Consoleから、[インスタンスの作成]ボタンで進みます。
「ステップ1: Amazon マシンイメージ(AMI) の選択」で、AWS Marketplaceを選択、wowzaで検索します。 先ほどサブスクリプションを終えた Wowza Streaming Engine 4: Pro Edition (HVM)が出てきますので、[選択]で進みます。

Wowza-010

インスタンスタイプについては、一部利用できないインスタンスがあるので注意しましょう。 (t2.nano, t2.microなど、グレーアウトされているものは使用できません)
また、Wowza Streaming Engineはm3.large以上のスペックを推奨していますのでご注意ください。
また使用の際には、通常のEC2の料金のほか、MarketplaceのページにありましたSoftware Feeも発生します。
今回は、検証ということで最小のt2.smallを選択しました。

Wowza-011

インスタンス詳細設定については、ネットワークなどを適切に設定します。
ストレージについては、デフォルトでルートに8GiBの汎用SSD、追加EBSに40GiBのマグネティックディスク、となっていました。今回はこのまま進めました。
ネームタグも適切に設定します。

セキュリティグループの設定については、今回は公式ドキュメントPDF(Wowza Streaming Engine for Amazo EC2 User Guide)も参考に以下としました。

Wowza-013

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->]で先に進みます。

Wowza-015

Video Workflow OverviewのページもNextで進めます。
Please Sign Inとサインインを促すページになりますので、サインインします。

Usernameはwowza、Passwordは起動したEC2のインスタンスID(i-1234abcd)となります。

続いて、live streamをpublishするときの認証情報を入力する画面になりますが、今回はVOD配信を行うので空欄のまま次に進みます。 これで、Wowza Streaming Engine Managerのページにたどり着くことができました!

Wowza-20

サンプルVODファイルの配信

続いてサンプルVODファイルを配信してみます。
Wowza Streaming Engine Managerのページにある、Test Videoの[|>Test Players...]のリンクを押してみます。
すると、Palyerが立ち上がります。

Wowza-021

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

Wowza-023

Wowza-024

独自ファイルの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が立ち上がります。

Wowza-025

Media File Nameのところのファイル名を変更します。今回は先ほどWowza上にコピーしたMySample.mp4というファイルを 再生したいので、mp4:MySample.mp4とします。 Startボタンを押すと再生が始まります。こちらはSafariでApple HLSを再生してみたところです。

Wowza-026

また、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すると、再生できました!

Wowza-027

まとめ

動画配信用ストリーミングサーバの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サービスの連携についても確認していきたいと思います!

脚注

  1. Big Buck Bunny
    Copyright (C) 2008 Blender Foundation | peach.blender.org
    Some Rights Reserved. Creative Commons Attribution 3.0 license.
    http://www.bigbuckbunny.org/