Azureあの機能この機能:メディアサービス

こんにちは。日山(@hiiyan0402)です。

今回は Azureメディアサービス でできることについて説明します。

メディアサービスとは

Microsoft Azure の動画配信基盤サービスです。メディアサービスでできることは以下の通りです。

  • 動画のエンコーディング
  • 動画のストリーミング配信
  • ライブ配信
  • コンテンツ保護
  • インデックス作成

動画のエンコーディング

エンコーディングとは?

メディアサービスでは動画のエンコーディングを行うことができます。

そもそもエンコーディングとは?というとザックリ説明すると「ビデオフォーマットの変換」です。

なぜエンコーディングが必要か?というと、デバイスごとに再生可能なフォーマットがバラバラであるため、デバイスごとに再生できるように動画をエンコーディングする必要があるのです。

ストリーミング配信で言えば、Silverlight、Windows Storeアプリケーション、Xbox では Smooth Streaming が推奨であり、また iOS では HTTPライブストリーミング(HLS) が推奨となります。また、デバイスのCPUやネットワーク帯域に応じて、視聴し続けられるビデオのビットレートも変わってくる場合があります。

つまりストリーミング配信を行うにあたり、1つの動画に対して、少なくとも、Smooth Streaming 用と、HTTPライブストリーミング用の、2種類のエンコーディングが必要になります。また、再生デバイスの回線速度を考慮するため、複数のビットレートでのエンコーディングも必要になります。


3

エンコーディングについての詳しい説明については、以下のサイトでの解説が非常にわかりやすかったので、こちらをご参照ください。

なぜ動画ファイルにはエンコードが必要か

http://thinkit.co.jp/article/153/1/

動的パッケージング

メディアサービスには 動的パッケージング(Dynamic Packaging)という機能があります。

動的パッケージングでエンコーディングした動画については、再生デバイスの環境(ストリーミング形式、利用できるCPU&ネットワーク状況)に応じて、動画を動的にエンコーディングして、ストリーミング配信することができます。

従来のエンコーディング技術とは違い、事前に大量の形式でエンコーディングする必要がなくなります。

つまり「エンコーディング方式がうんぬん・・・」といった専門的な知識を必要とせずに、気軽に動画を配信することを可能にします。

4

大量の動画のエンコーディング

メディアサービスでは「エンコード占有ユニット」を要することで、より高速で並列的な、動画のエンコーディングを可能にします。エンコード占有ユニットはの数を1つ以上とすることで利用可能です。

占有ユニットの数は、エンコーディングを同時で行うことができる数です。占有ユニットの数が10個の場合、同時に10個のエンコーディングができます。大量の動画をエンコーディングする必要があるのであれば、占有ユニットの数を増やします。

占有ユニットの種類は、エンコーディングの速度に影響します。エンコードユニットの種類は「BASIC」「STANDARD」「PREMIUM」の3種類あります。「STANDARD」は「BASIC」の約2倍、「PREMIUM」は約4倍の早さでエンコーディングできます。大きいサイズのビデオをエンコーディングする場合は、エンコードユニットの種類を「PREMIUM」に変更すると、短時間でエンコーディングすることができます。

1

動画のストリーミング配信

ストリーミングサーバの構築

メディアサービスでは簡単にストリーミングサーバ(ストリーミングユニット)を構築することができます。

ストリーミングユニットのネットワークの帯域幅は、1ユニット200Mbpsであり、デフォルトでは10ユニット(2Gbps)まで増加させることができます。(サポートに連絡することで上限数を増やすことができます)

CDNとの連携

2015年3月から、Azure CDN との連携が可能となりました。Azure CDN と連携することで、動画の配信を世界各地に配置されたエッジサーバから行うことができます。ユーザは最も近いエッジサーバから動画を受信するため、快適な動画再生ができるようになります。これは世界中に対して動画配信を行う場合に、非常に効果があります。

Azure CDN の詳しい説明については、以下の記事をご参照ください。

http://www.cloud-config.jp/28231

ライブ配信

いわゆる、USTREAMとか、ニコニコ生放送とか、YouTube Liveでできる、撮影した映像をリアルタイムで配信する、ライブ配信ができます。配信した映像はアーカイブ(保存)され、そのままストリーミング配信することができます。

コンテンツ保護

Microsoft PlayReady Digital Rights Management、またはAES暗号化を使って、ビデオを暗号化して格納&配信することができます。ビデオ配信を一部の認証された人だけに行いたい場合は、コンテンツ保護を行わなければなりません。

インデックス作成

Azure Media Indexer により、動画内で喋っている言葉の内容を解析して、字幕用ファイル(.ttml, .vtt)、キーワードファイル(.kw.xml)、Microsoft SQL Server にてフルテキスト検索をするためのオーディオインデックスBLOB(AIB)ファイルを出力してくれます。

字幕用ファイルを使うこと、動画に対して字幕をつけることができます。また検索したテキストに関して話しているシーンへ移動する、といったことも実現できます。

2

ttmlファイルの例は以下の通りです。

https://gist.github.com/hiiyan0402/c5d906176fdb7d440402.js

Azure Media Indexer は、現在、英語のみ対応しています。

(参考資料)

Azure Media Indexer によるメディア ファイルのインデックス作成

https://msdn.microsoft.com/ja-jp/library/azure/dn783455.aspx

メディアサービスお役立ちリンク集

Azure Media Services Explorer

メディアサービスはあくまで動画配信基盤であり、コンテンツ管理システムが提供されていません。

メディアサービス内のコンテンツ管理は、「Azure Media Services Explorer」というアプリケーションを使うと非常に便利です。

https://github.com/Azure/Azure-Media-Services-Explorer/releases/tag/v3.10.0.1

Azure Media Services Player

メディアサービスで出力されたストリーミングエンドポイントから、HTMLに埋め込むためのコード(Flash、Silverlight, HTML5)を出力してくれるWebサイトです。手っ取り早くWebページに組み込みたいときに活用できます。

http://amsplayer.azurewebsites.net/

今回も最後までご覧いただきありがとうございました!