特集:Azureメディアサービスを利用したストリーミング配信(前編)
動画配信サービスの課題と、Azureメディアサービスの機能概要
デバイスに向けた動画配信サービスを容易に構築できるAzureメディアサービスを紹介。今回は、動画配信サービス構築時の課題とそれを解決するための機能を説明する。
今回は、Microsoft Azure(旧称:Windows Azure)が提供する動画配信向けサービスである「Azureメディア・サービス」(以下、「メディア・サービス」と記載する)について紹介する。メディア・サービスを利用することで、さまざまなデバイスに向けた動画配信サービスを容易に構築することが可能になる。
本稿の前編では、動画配信サービス構築時の課題を解説することでメディア・サービスを利用する必要性を述べ、メディア・サービスの機能について紹介する。次回後編では、サンプル・アプリケーションを開発してメディア・サービスの機能について学習する。
なお、本記事で説明するアプリケーションを利用する場合、事前にAzureのサブスクリプションを契約する必要がある。
- *注Windows、Microsoft Azureは、Microsoft Corporationの商標または登録商標です。
動画配信サービスを構築する際の課題
近年、YouTubeやニコニコ動画などの動画配信サービスは広く使われるようになってきており、電車内でもスマートフォンなどで動画配信サービスを利用している人を多数見かける。だが、デバイス/ブラウザーが多様化しているうえに、動画フォーマットが多数存在することにより、あらゆるデバイス/ブラウザーに対応した動画配信サービスの構築は困難になってきている。
以下の表は、現時点での主要なデバイスの例だ。この表からも、デバイスとブラウザーの組み合わせが多様化していることが理解できる。
デバイス | ブラウザー |
---|---|
Windows端末 | Chrome、Internet Explorer、Firefox、Safari |
Windows RT端末 | Internet Explorer |
Windows Phone端末 | Internet Explorer*1 |
Mac OS端末 | Chrome、Internet Explorer、Firefox、Safari |
iOS端末 | Safari*1、Chrome |
Android OS端末 | Androidブラウザー、Chrome*1 |
*1スマートフォン/タブレット端末には、モバイル向けに修正されたブラウザーが提供されている。
また、HTML5の仕様として動画再生は取り込まれているが、以下に記載するとおり、各ブラウザーに対応する動画再生用のコーデックも異なる。
ブラウザー | H.264 | WebM | Ogg |
---|---|---|---|
IE9以降 | ○ | △*2 | ‐ |
Firefox | ○*3 | ○ | ○ |
Chrome | ○ | ○ | ○ |
Safari | ○ | ‐ | ‐ |
Opera | ‐ | ○ | ○ |
*2Internet Explorerでも「WebM Video for Microsoft Internet Explorer 9+ 」をインストールすることでWebM形式の動画を再生することは可能だ。
*3Firefox ver.21より、Windows版でのみH.264動画が再生可能だ。
ブラウザーが対応する動画再生用のコーデックが分散化しているほかにも、以下の課題が存在する。
- 動画ファイルは容量が大きいため、大容量のデータを格納するストレージが必要となる
- 画面解像度の差異、利用する通信回線の差異により、端末ごとに配信する動画を変更する必要がある
- 「直接ダウンロードする場合」と「ストリーミング再生をする場合」で動画の配信方法が異なる
- 著作物の動画の場合はDRM(デジタル著作権管理)が必要になる
次節では、動画再生を行うクライアント側の再生方法について解説する。
動画配信の方法のメリット/デメリット
冒頭で述べたように、動画を再生するデバイスとブラウザーが多様化しており、全てのデバイスとブラウザーに対応することは難しい。また、ブラウザーの動画再生用のコーデックが分散化しているため、HTML5アプリケーションを利用せず、ネイティブ・アプリケーションやRIAアプリケーションを開発する方法も考えられる。まとめると、動画再生の実現方法として、以下3種類の方法が考えられることになる。
- ネイティブ・アプリケーションの開発
- RIA(Flash、Silverlight)アプリケーションの開発
- HTML5アプリケーションの開発
また、これらの方法に関しては、以下のメリットとデメリットが存在する。
方法 | メリット | デメリット |
---|---|---|
ネイティブ | ・ストリーミング再生などの高度な再生機能を利用できる ・デバイスの機能を利用できる |
・デバイスごとにアプリケーションを作成する必要がある |
RIA | ・ストリーミング再生などの高度な再生機能を利用できる | ・iOS端末では利用できない ・Android OS端末ではFlashのみ利用できる |
HTML5 | ・マルチデバイスで利用できる | ・ブラウザーごとに動画再生用のコーデックが異なる ・直接ダウンロードされるのを防げない ・ストリーミング再生の実現が難しい |
上記のとおり、RIAはiOS端末やAndroid OS端末では動作しない(Android BrowserでFlashは再生可能)。HTML5を利用すればどのデバイスでも動画再生可能だが、ブラウザーごとに対応する動画再生用のコーデックが異なるほか、動画の直接ダウンロードが防げないなどの問題がある。
また、次に示すとおり、動画のストリーミング再生についても複数の手法が存在する。HTML5を利用して実現する場合、現時点では対応するブラウザーが少ない。さらに、ストリーミング再生はサーバー側でもストリーミング配信機能を提供している必要がある*4。
- HTML5での実現(Http Live Streaming、MPEG-DASH)
- ネイティブ、RIAでの実現(Smooth Streaming、Flash Media Serverの機能を利用したストリーミング配信)
- *4メディア・サービスでは、Flash Media Serverの機能を利用したストリーミング配信を除くストリーミング再生が利用可能だ。
以上のように、マルチデバイス&マルチブラウザーに関する分散化の課題が存在し、そこで使われる動画配信手法においても複数を使い分ける必要があるわけだ。
メディア・サービスを使えば、これらの課題に対応可能である。次節以降、メディア・サービスが持つさまざま機能について、実際に触れながら解説していく。
Azureメディア・サービスの機能概要
本節では、上記で述べた課題に対応するメディア・サービスの機能を実際に利用する。
まず、メディア・サービスの機能を利用するために、Azureの管理ポータルにアクセスし、以下の画像例に従って管理ポータルの左下の[+新規]ボタンを押下し、[アプリケーション サービス]-[メディア サービス]-[簡易作成]を選択し、有効な[名前]を入力してメディア・サービスのアカウントを作成する。
メディア・サービスは、動画ファイルを格納するためにストレージ・サービスを別途必要とする。そのため、既存のストレージ・アカウントが存在しない場合は、ここで新規に作成する必要がある。そのストレージ・サービスは、メディア・サービスのアカウントと同一の地域に存在する必要がある点に注意が必要だ。
メディア・サービスの作成が完了すると、以下のように[状態]が「アクティブ」になる。
作成したメディア・サービスのアカウントを利用し、以下の機能について管理ポータルを操作しながら紹介する。
- 動画のアップロード機能
- 動画のエンコーディング機能
- 動画の配信機能
- スケール機能
まず、動画のアップロード処理について紹介する。
1. 動画のアップロード機能
メディア・サービスの[コンテンツ]タブを選択し、[コンテンツのアップロード]リンクを押下して動画アップロード用のダイアログを表示させ、以下の画像を参考に実際に動画をアップロードする。
2. 動画のエンコーディング機能
次に、動画のエンコーディング機能について紹介する。
[コンテンツ]タブからアップロード済みの動画ファイルを選択し、下部のメニューから[エンコード]ボタンを押下することで、以下の画像で示す[Windows Azure メディア エンコーダー]ダイアログが表示される。[プリセット]欄で動画のエンコーディング方式を選択する。この際、低回線向けの低画質動画やSmooth Streaming形式などの動画エンコーディングを指定できるため、複数のデバイスやブラウザー向けの動画ファイルを作成できる。
エンコーディングを実行することで、メディア・サービスのジョブとして登録される。[ジョブ]タブを選択すること、現状のエンコーディング状況を確認できる(次の画像を参照)。
エンコーディング完了後、以下に示すように[コンテンツ]タブで、エンコーディング後の動画ファイルが存在することを確認できる。
3. 動画の配信機能
次に、動画ファイルの配信方法について紹介する。
[コンテンツ]タブから公開したい(エンコーディング済みの)動画ファイルを選択して[発行]ボタンを押下すると、動画ファイルを公開できる(次の画像を参照)。
動画ファイルの[発行]が完了すると、[発行URL]が付与され、[再生]ボタンが有効化される。[再生]ボタンを押下することで、管理ポータル越しに動画ファイルを再生できる。
4. スケール機能
[プロセッサ]タブを選択することで、エンコーディングを行う場合に利用するクラウド・リソース(以下の画像の[ENCODING])が追加可能なことを確認できる。
ユニット数を増やすことで、動画エンコーディングを並列に実行することが可能となり、動画ファイルを複数同時にエンコードする場合は性能を向上させられる。最大で25までのユニットが割り当てが可能だ。
次に、[オリジン]タブから複数の配信用エンドポイントを制御できることを紹介する。[オリジン]タブにはデフォルトで[default]という名前のオリジンが存在する。管理ポータルから任意のオリジンを選択すると、以下の[構成]タブと[スケール]タブからオリジンごとの設定を行える(以下の画像の[オンデマンド ストリーミング])。
オリジンの[スケール]タブから、ストリーミング配信に利用するユニット数を指定できる。ユニットごとに200Mbpsの専用の送信容量を追加することが可能であり、オリジンごとに最大で5ユニットまで割り当てが可能だ。さらに、[構成]タブからはAkamaiを利用したキャッシュや配信制御を行えるようだが、現時点ではMSDNを含めたドキュメントにも記載が存在しない。
動画エンコーディングとストリーミング配信は占有ユニット数を増やすことで性能を向上することが可能だが、課金料金が増すので利用には注意が必要だ。メディア・サービスの利用料については、「メディア サービスの料金詳細」を参照すること。
最後に、ストリーミング形式の動画向け[発行URL]を追加する方法を記載する。まず、[オリジン]タブを選択し、[追加]ボタンから新しいオリジンを作成する。
新しいオリジンの作成後、[コンテンツ]タブにストリーミング形式の動画ファイル(Smooth Streaming形式など)が存在する場合、以下のように[発行URL]が複数存在することが確認できる。
■
このようにメディア・サービスを利用することで、動画配信サービス構築時の課題に対処できる。次回後編では、より実践的な内容として、メディア・サービスの機能を活用するサンプル・アプリケーションの開発を説明する。
1. 【現在、表示中】≫ 動画配信サービスの課題と、Azureメディアサービスの機能概要
デバイスに向けた動画配信サービスを容易に構築できるAzureメディアサービスを紹介。今回は、動画配信サービス構築時の課題とそれを解決するための機能を説明する。
2. Azureメディアサービスを利用したアプリケーション開発
デバイスに向けた動画配信サービスを容易に構築できるAzureメディアサービスを紹介。今回は、サンプル・アプリケーションを開発してメディア・サービスの機能について学習する。