キャッチアップ! Windows Azure メディアサービス

第1回 Windows Azure メディアサービスを使って,HTML5へのストリーミング配信を実現する

この記事を読むのに必要な時間:およそ 5.5 分

はじめに

Windows Azure メディアサービスは,マルチデバイス向けの動画ストリーミングをPaaSという形で提供しています。現在はサポート外ですが,MPEG-DASHというHTML5と大変相性の良い標準仕様にも試していただけます。ここでは,どうやってMPEG-DASH向けの動画配信を行うのか,簡単なサンプルコードを元に説明します。

MPEG-DASHとは?

HTTPを前提にした動画配信の方式では,プログレッシブダウンロードと呼ばれる方式のみがサポートされていました。これは,HTTP GETリクエストに,Byte-Range指定をし,動画ファイルの中から断片的にデータを送信して,再生されるという仕組みです。サーバ側は,一般的なWeb Serverのみで動作します。

ですが,ライブ配信を行うようなストリーミング仕様はありません。また,データ保護の仕組みもありません。

多くの動画配信事業者は,上記2点を実現させるため,SilverlightやFlashをプラグインという形で提供しています。そして,Microsoft,Adobe,Appleなどがベンダ独自のHTTPストリーミング実装をしていました。

MPEG-DASHは,ISOで議論されている,ストリーミング用の動画データの構造になります。データ保護に関しても,同じくISOにてCommon Encryption(CENC)という仕様が議論されています。CENCは,DRMそのものではありませんし仕様と実装が異なりますので,その点はご留意ください。

画像

また,HTML5自身を拡張する形で,Media Source Extensions(MSE)とEncrypt Media Extensions(EME)という仕様がW3Cにて話されています。MSEは,Videoエレメントに動画データを追加させるAPI拡張です。EMEは,DRMシステムを呼び出すためのAPI拡張です。

これらによって,HTML5ブラウザの中でも,ストリーミング配信ができるようになりつつあります。

画像

MPEG-DASH対応Webブラウザ

執筆時点では,IE11(Windows 8.1限定)と,Chrome v23以降で,その動作確認ができます。以下のサイトにて,その動作を試せます。

また,DASH Industry Forumというフォーラムにて,具体的な仕様・ガイドラインについて話されていますが,そこではdash.js と呼ばれるJavaScriptベースのプレーヤライブラリも提供されています。

設計

プレーヤは,Windows 8.1のIE11を対象にdash.jsを組み込みます。

配信側は,任意の動画ファイルを,Windows Azure メディアサービスを使って,クラウド上でエンコードし,PlayReadyのDRM設定をし,配信時にMPEG-DASHとCENC+PlayReadyの形式で配信します。

Windows Azure メディアサービスには,Dynamic Packagingという機能が搭載されており,配信時に動的にSmooth StreamingのファイルをMPEG-DASHに変換することができます。コーデックを変換するいわゆるエンコード(トランスコード)はできませんのでご注意ください。

Dynamic Packaging
http://msdn.microsoft.com/ja-jp/library/jj889436.aspx

画像

一般的に,コーデック変換をトランスコード。ファイル形式の変換をパッケージングと呼んでいます。

事前準備

以下のものを用意します。

  • 動画ファイル:Windows Azure Media Encoderのサポートしているものから選んでください。
  • Windows Azure アカウント
  • Visual Studio 2012以降
Media Services SDK for .NET での開発のセットアップ
http://msdn.microsoft.com/ja-jp/library/jj129588.aspx

著者プロフィール

畠山大有(はたけやまだいゆう)

日本マイクロソフト株式会社

テクノロジーエバンジェリスト

バックナンバー

キャッチアップ! Windows Azure メディアサービス

コメント

コメントの記入