More Related Content
Similar to <初級> Windows Azure Media Services を活用したマルチデバイスへの動画配信 - Community OpenDay 2013
Similar to <初級> Windows Azure Media Services を活用したマルチデバイスへの動画配信 - Community OpenDay 2013 (20)
<初級> Windows Azure Media Services を活用したマルチデバイスへの動画配信 - Community OpenDay 2013
- 1. <初級> Windows Azure Media Services
を活用したマルチデバイスへの動画配信
2013年05月11日(土)15:00-15:50
Community Open Day 2013 東京会場
せき@fullvirtue
1Copyright © @fullvirtue. All rights reserved.
- 2. はじめに
セッション概要(告知文)
Windows Azure Media Services とは、
ビデオの作成、管理、およびユーザーへの配信をだれでも簡単に
利用できるようにした機能で、Windows Azure の中でも非常に
注目を集めています。
Windows Azure Media Services を使ったサービスを開発した
経験から、開発方法や Tips を、デモを交えてお届けいたします。
Copyright © @fullvirtue. All rights reserved. 2
- 3. はじめに
本セッションのゴール
Windows Azure 管理ポータルから配信する手順を確認
Windows Azure Media Services の開発環境準備方法を確認
Windows Azure Media Services のAPIを使った配信手順を確認
Windows Azure Media Services の背景やコンセプトを確認
– 本セッションは、2012年12月リリースの public beta の仕様に
基づきます。
– 今後、予告なく変更される可能性がありますのでご注意ください。
Copyright © @fullvirtue. All rights reserved. 3
- 4. Copyright © @fullvirtue. All rights reserved.
今日のアジェンダ(1/1)
Windows Azure 管理ポータルでの配信手順
Windows Azure Media Services 開発環境の準備
Windows Azure Media Services APIを使った配信手順
Windows Azure Media Services コンセプト
まとめ
4
- 5. おことわり(1/1)
今回の資料について
本内容はMicrosoftより許可を得て、一部他資料をそのまま利用しています
今回の資料は、以下の資料を参考にしています。
私自身のオリジナルはほとんどありませんので、ご了承ください。
– はじめての Windows Azure メディア サービス
» http://msdn.microsoft.com/ja-jp/windowsazure/dn133199
– Media Services SDK for .NET を使用したアプリケーション構築
» http://msdn.microsoft.com/ja-jp/en-
us/library/windowsazure/hh973613.aspx
– msdn - Windows Azure Media Services
» http://msdn.microsoft.com/ja-jp/library/hh973629
– Windows Azure Media Services Poster
» http://www.microsoft.com/en-us/download/details.aspx?id=38195
– ScottGu’s Blog: Windows Azure Media Services and London 2012 Olympics
» http://weblogs.asp.net/scottgu/archive/2012/08/21/windows-azure-
media-services-and-the-london-2012-olympics.aspx
Copyright © @fullvirtue. All rights reserved. 5
- 7. Windows Azure 管理ポータルでの配信手順(1/26)
Windows Azure Media Service の用意
1. Windows Azure サブスクリプションのご用意
2. Windows Azure Media Services アカウント作成
3. 動画ファイルのご用意
4. Sample Playerの準備
Copyright © @fullvirtue. All rights reserved. 7
- 8. Windows Azure 管理ポータルでの配信手順(2/26)
1. Windows Azure サブスクリプションのご用意
1. Windows Azureのサブスクリプション購入
2. Windows AzureのWebサイトおよびWindows Azureポータル
のサブスクリプション購入の確認
3. Windows Azure プレビュー機能のサインアップ
[ご参考]
– http://aka.ms/azure-subscription
Copyright © @fullvirtue. All rights reserved. 8
- 9. Windows Azure 管理ポータルでの配信手順(3/26)
2. Windows Azure Media Services アカウント作成
Windows Azure 管理ポータルより以下を選択
[新規]-[アプリ サービス]-[メディアサービス]-[簡易作成]
Copyright © @fullvirtue. All rights reserved. 9
- 10. Windows Azure 管理ポータルでの配信手順(4/26)
2. Windows Azure Media Services アカウント作成
【ご参考】
– アカウント管理のAPI(RESTのみ)について
» Operations on Media Services (only English)
» http://msdn.microsoft.com/ja-jp/library/dn167014
» 使い道の例
Windows Azure Media Servicesの存在を意識させたくない場合
• →SaaS のような統合パッケージ等
マルチテナントでの課金などの簡易化
Copyright © @fullvirtue. All rights reserved. 10
- 11. Windows Azure Media Services 開発環境の準備(5/26)
3. 動画ファイルのご用意
– Windows Azure Media Encoder でサポートされている
コーデックとファイルの種類
» http://msdn.microsoft.com/ja-jp/library/hh973634
Copyright © @fullvirtue. All rights reserved. 11
ビデオコーデック •H.264 (Baseline、Main、および High Profile)
•MPEG-1
•MPEG-2 (Simple および Main Profile)
•MPEG-4 v2 (Simple Visual Profile および Advanced Simple Profile)
•VC-1 (Simple、Main、および Advanced Profile)
•Windows Media ビデオ (Simple、Main、および Advanced Profile)
•DV (DVC、DVHD、DVSD、DVSL)
ビデオファイル形式 ファイル形式 ファイル拡張子
•3GPP、3GPP2
•Advanced Systems Format (ASF)
•Advanced Video Coding High Definition (AVCHD) [MPEG-2 トランスポート ストリーム]
•Audio-Video Interleaved (AVI)
•Digital camcorder MPEG-2 (MOD)
•デジタル ビデオ (DV) カメラ ファイル
•DVD トランスポート ストリーム (TS) ファイル
•DVD ビデオ オブジェクト (VOB) ファイル
•Expression Encoder Screen Capture Codec ファイル
•MP4
•MPEG-1 システム ストリーム
•MPEG-2 ビデオ ファイル
•スムーズ ストリーミング ファイル形式 (PIFF 1.3)
•Windows Media ビデオ (WMV)
.3gp、.3g2、.3gp2
.asf
.mts、.m2ts
.avi
.mod
.dv
.ts
.vob
.xesc
.mp4
.mpeg、.mpg
.m2v
.ismv
.wmv
- 12. Windows Azure Media Services 開発環境の準備(6/26)
3. 動画ファイルのご用意
– Windows Azure Media Encoder でサポートされている
コーデックとファイルの種類
» http://msdn.microsoft.com/ja-jp/library/hh973634
Copyright © @fullvirtue. All rights reserved. 12
オーディオコーデック •AC-3 (Dolby Digital オーディオ)
•AAC (AAC-LC、HE-AAC v1 と AAC-LC コア、および HE-AAC v2 と AAC-LC コア)
•MP3
•Windows Media オーディオ (Windows Media オーディオ Standard、Windows Media オーディオ Professional、お
よび Windows Media オーディオ ロスレス)
オーディオファイル形式 ファイル形式 ファイル拡張子
•AC-3 (Dolby Digital) オーディオ
•Audio Interchange File Format (AIFF)
•Broadcast Wave Format
•MP3 (MPEG-1 Audio Layer 3)
•MP4 オーディオ
•MPEG-4 オーディオ ブック
•WAVE ファイル
•Windows Media オーディオ
.ac3
.aiff
.bwf
.mp3
.m4A
.m4b
.wav
.wma
画像ファイル形式 ファイル形式 ファイル拡張子
•ビットマップ
•GIF、アニメーション GIF
•JPEG
•PNG
•TIFF
•WPF Canvas XAML
.bmp
.gif
.jpeg、.jpg
.png
.tif
.xaml
- 13. Windows Azure Media Services 開発環境の準備(7/26)
3. 動画ファイルのご用意
– Windows Azure Media Encoder でエクスポート用に
サポートされているコーデックとファイルの種類
» http://msdn.microsoft.com/ja-jp/library/hh973634
» Media Servicesでサポートされているコーデックの詳細
http://msdn.microsoft.com/en-us/library/windows/desktop/ff819077.aspx
» Media Servicesでサポートされているフィルターの詳細
http://msdn.microsoft.com/en-us/library/windows/desktop/dd375464.aspx
Copyright © @fullvirtue. All rights reserved. 13
ファイル形式 ビデオ コーデック オーディオ コーデック
•Windows メディア (*.wmv、.wma) •VC-1 (Advanced、Main、および Simple
Profile)
•Windows Media オーディオ Standard
•Windows Media オーディオ Professional
•Windows Media オーディオ音声
•Windows Media オーディオ ロスレス
•MP4 (*.mp4) •H.264 (High、Main、および Baseline Profile) •AAC-LC
•HE-AAC v1
•HE-AAC v2
•スムーズ ストリーミング ファイル形
式 (PIFF 1.1) (*.ismv、*.isma)
•VC-1 (Advanced Profile)
•H.264 (High、Main、および Baseline Profile)
•Windows Media オーディオ Standard
•Windows Media オーディオ Professional
•AAC-LC
•HE-AAC v1
•HE-AAC v2
- 14. Windows Azure Media Services 開発環境の準備(8/26)
3. 動画ファイルのご用意
[ご参考]
– 動画のファイルをシステムの管理下に置く事を
「インジェスト」と呼びます
» Windows Azure はクラウド上にあるため、多くのシナリオでは
クラウドへのファイルのアップロードとなります
– Windows Azure メディア サービスの内部では、
動画のファイルは「アセット」という単位で管理されています
» インジェストを行う際には、空のアセットを作成し、そこに「アセット
ファイル」を追加していく作業となります
» アセット ファイルは実ファイルそのものです
» ストリーミングの方式に由来し、複数のファイルが必要となります
Copyright © @fullvirtue. All rights reserved. 14
- 15. Windows Azure Media Services 開発環境の準備(9/26)
3. 動画ファイルのご用意
[ご参考]
– よく利用される動画配信の方式には以下があります。
» Microsoft が開発して主に Silverlight、Windows Phone、Windows 8 な
どで利用されている Smooth Streaming
» Apple が開発して主に iOS で利用されている HTTP Live Streaming
(HLS)
新しい Android でも HLS サポートが始まっています。
» Adobe が開発して主に Flash で使われる HTTP Dynamic Streaming
(HDS)
– 動画のファイルは異なるビット レートごとに複数作成されます
» デバイスの CPU とネットワーク帯域を鑑みて、デバイス側で自動的にどの
ビット レートのファイルを再生するかを短期間で切り替えながら動画の再
生を行う方式です
» 「Adaptive Bitrate Streaming over HTTP」と呼ばれています
Copyright © @fullvirtue. All rights reserved. 15
- 16. Windows Azure Media Services 開発環境の準備(10/26)
3. 動画ファイルのご用意
[ご参考]
– Smooth Streaming を実施する際の動画ファイル
» .ismv が動画ファイルそのもの
» HTML5 の VIDEO タグでは執筆時点では MP4 ファイルのプログレッシブ
ダウンロードでしか配信が出来ないため、このような複数のビット レート
のファイルは作成されません
Copyright © @fullvirtue. All rights reserved. 16
- 17. Windows Azure Media Services 開発環境の準備(11/26)
4. Sample Playerの準備
Smooth Streaming
– HelthMonitor Tool サイト
» http://smf.cloudapp.net/healthmonitor
» 任意の場所にある ismファイル指定が出来る
– Microsoft Media Platform: Player Framework
» Windows 8
http://playerframework.codeplex.com/releases/view/94684
» Silverlight
http://smf.codeplex.com/releases/view/88970
HTML5 <video> (iOS用)
Copyright © @fullvirtue. All rights reserved. 17
<video width="640"
height="480"
src="http://<your url>/hogehoge.mp4"
autoplay controls >
ご利用の Web ブラウザー では再生できません
</video>
- 18. Windows Azure 管理ポータルでの配信手順(12/26)
Windows Azure 管理ポータルでの配信手順
1. Ingest:ファイルのアップロード
– 動画のファイルをシステムに取り込む(管理下に置く)
2. Process:エンコード(正確にはトランスコード)
– Windows Azure 管理ポータルの画面は「エンコード」と記載
[参考:言葉の正確な定義]
» エンコード:アナログ→デジタルの変換を行う
» トランスコード:デジタル→デジタルの変換を行う
Manage:管理
– コンテンツの管理
3. Delivery:配信
– ダウンロード、ストリーミング等にて、動画の配信を行う
Copyright © @fullvirtue. All rights reserved. 18
- 20. Windows Azure 管理ポータルでの配信手順(14/26)
1. Ingest:ファイルのアップロード
Windows Azure 管理ポータルの、作成された Windows Azure
Media Servicesから [コンテンツ] タブに移動します
Copyright © @fullvirtue. All rights reserved. 20
- 21. Windows Azure 管理ポータルでの配信手順(15/26)
1. Ingest:ファイルのアップロード
[アップロード] をクリックして、ファイル アップロードの画面を
表示させます
[ローカルから] または [ストレージから(Windows Azure Blob
Storage)] からファイルを選択し、決定するとアップロードを
開始します
Copyright © @fullvirtue. All rights reserved. 21
- 24. Windows Azure 管理ポータルでの配信手順(18/26)
2. Process:エンコード(正確にはトランスコード)
[PC/Mac での再生] または [HTML5での再生]を実行します
Copyright © @fullvirtue. All rights reserved. 24
[メモ]
実際のエンコードでは、コーデック、画
角などの細かい設定が必要です。これら
をテンプレートとしてまとめたものを
「プリセット」と呼びます。
管理ポータルでは、[主なプリセット]と
[詳細なプリセット]から選択可能です。
APIを使うと、もっと細かい設定も可能
となります。
- 25. Windows Azure 管理ポータルでの配信手順(19/26)
2. Process:エンコード(正確にはトランスコード)
管理ポータルで [ジョブ] に移動すると、実行中のエンコード処理
の状況が確認できます
– 処理の状況は、逐次確認が出来ます
– 処理は、Windows Azure Media Servicesでは「ジョブ」という単位
で管理されています
Copyright © @fullvirtue. All rights reserved. 25
- 26. Windows Azure 管理ポータルでの配信手順(20/26)
2. Process:エンコード(正確にはトランスコード)
– [進捗状況] が [Finished] となっていると、エンコード処理が正常に
行われたことになります
– エラーがあった場合は、ジョブを選択し、コマンドの [詳細] から、
エラー内容を確認してください
– 既定では、処理は 1 つずつしか行われません
– 同時に複数のジョブを走らせたい場合は、管理ポータルの [スケール]
から、ENCODING のユニット数を増やす必要があります
» こちらはサービスを占有するため、日割りで追加の料金が発生する点をご
留意ください。
Copyright © @fullvirtue. All rights reserved. 26
- 27. Windows Azure 管理ポータルでの配信手順(21/26)
2. Process:エンコード(正確にはトランスコード)
– [進捗状況] が [Finished] となっていると、エンコード処理が正常に
行われたことになります
– エラーがあった場合は、ジョブを選択し、コマンドの [詳細] から、
エラー内容を確認してください
– 既定では、処理は 1 つずつしか行われません
– 同時に複数のジョブを走らせたい場合は、管理ポータルの [スケール]
から、ENCODING のユニット数を増やす必要があります
» こちらはサービスを占有するため、日割りで追加の料金が発生する点をご
留意ください。
Copyright © @fullvirtue. All rights reserved. 27
- 28. Windows Azure 管理ポータルでの配信手順(22/26)
3. Delivery:配信
発行対象のコンテンツを選択し、画面下部の [発行] を選択します
– 5 ~ 10 秒程度で、配信準備が終わります
– エンコードしただけでは、動画の配信はされません
– 「コンテンツを公開する」という手順を踏みます
– Windows Azure Media Services では高いセキュリティを維持する
ため、指示が無い限りコンテンツは外部に出ていきません
Copyright © @fullvirtue. All rights reserved. 28
- 29. Windows Azure 管理ポータルでの配信手順(23/26)
3. Delivery:配信
発行が完了すると、[発行 URL] が出力されます
– そのままプレイヤーのアプリケーションに設定する URL です
– (未発行)のものは公開されていません
– [発行 URL] の各データを選択すると、クリップ ボードにコピーする
アイコンが表示されます
Copyright © @fullvirtue. All rights reserved. 29
- 30. Windows Azure 管理ポータルでの配信手順(24/26)
3. Delivery:配信
コンテンツを選択して [再生] を選択すると、
発行結果を確認できます
– Windows Azure メディア サービスの管理ポータルには、
Flash と HTML5 のプレイヤーが搭載されているため、
結果をすぐ確認できます
– Windows OS では、iOS用の動画は再生できません
Copyright © @fullvirtue. All rights reserved. 30
- 34. Windows Azure Media Services 開発環境の準備(1/11)
開発環境の事前準備
1. SDKインストール
– .NET の場合
– Java の場合
[ご参考]
– Windows 7, Windows 8, Windows 2008 R2
– .NET Framework 4.5 or 4.0
– Visual Studio 2012, Visual Studio 2010 SP1
– Windows Azure Media Services SDK 2.0.1.0
» http://msdn.microsoft.com/en-us/library/jj129588.aspx
Copyright © @fullvirtue. All rights reserved. 34
- 35. Windows Azure Media Services 開発環境の準備(2/11)
1. SDKインストール
【.NET の場合】
– NuGetパッケージにて Windows Azure Media Services を追加
Copyright © @fullvirtue. All rights reserved. 35
- 36. Windows Azure Media Services 開発環境の準備(3/11)
1. SDKインストール
【.NET の場合】
– NuGetパッケージにて Windows Azure Media Services を追加
Copyright © @fullvirtue. All rights reserved. 36
「安定版パッケージのみ」
「名前:降順」
「Media」
で検索すると探しやすいです
- 37. Windows Azure Media Services 開発環境の準備(4/11)
1. SDKインストール
【.NET の場合】
– 既存の関連モジュールの確認作業が終わった後、[ライセンスの同意]
画面が出てくるので、確認後[同意する]をクリックします
Copyright © @fullvirtue. All rights reserved. 37
- 38. Windows Azure Media Services 開発環境の準備(5/11)
1. SDKインストール
【.NET の場合】
– インストールが正常に完了するとNuGet パッケージの管理画面の
Windows Azure Media Services の右上に
緑色のチェックアイコンが付きます
Copyright © @fullvirtue. All rights reserved. 38
- 39. Windows Azure Media Services 開発環境の準備(6/11)
1. SDKインストール
【Java の場合】
– Windows Azure Media Services は、オープンな開発環境を提供
– .NET 以外の環境でも Windows Azure Media Services の開発が可能
– Windows Azure SDK for Javaの中に
Windows Azure Media Servicesも含まれています
[ご参考]
– Eclipse におけるWindows Azure SDK for Javaのインストール手順
» Installing the Windows Azure Plugin for Eclipse with Java
(by Microsoft Open Technologies)
» http://msdn.microsoft.com/en-us/library/windowsazure/hh690946
Copyright © @fullvirtue. All rights reserved. 39
- 40. Windows Azure Media Services 開発環境の準備(7/11)
1. SDKインストール
【Java の場合】
– Windows Azure Library for Java の 参照設定
適切なプロジェクトを作成後、プロジェクトの [プロパティー]を選択
Copyright © @fullvirtue. All rights reserved. 40
- 41. Windows Azure Media Services 開発環境の準備(8/11)
1. SDKインストール
【Java の場合】
– [Java のビルド・パス] – [ライブラリー] – [ライブラリーの追加] を
選択します
Copyright © @fullvirtue. All rights reserved. 41
- 42. Windows Azure Media Services 開発環境の準備(9/11)
1. SDKインストール
【Java の場合】
– [Package for Windows Azure Libraries for Java (by MS Open
Tech)] を選択、ウィザードをそのまま進めて完了します
Copyright © @fullvirtue. All rights reserved. 42
- 43. Windows Azure Media Services 開発環境の準備(10/11)
1. SDKインストール
【Java の場合】
– Eclipse の開発環境の中にも、
”com.microsoft.windowsazure.services.media” 以下に
Windows Azure Media Services のSDKがあることが確認できます
Copyright © @fullvirtue. All rights reserved. 43
- 44. Windows Azure Media Services 開発環境の準備(11/11)
ご参考:Windows Azure Media Services SDK for .NET
Copyright © @fullvirtue. All rights reserved. 44
Microsoft.WindowsAzure.MediaServices.Client.
CloudMediaContext サービスとのセッション
Asset / AssetFile コンテンツ(ファイル)
Job / Task エンコードなどのメディア処理
MediaProcessor メディア処理アプリ定義
Locator 配布/配信ポイント
AccessPolicy 配布/配信 公開ポリシー
- 46. Windows Azure Media Services APIを使った配信手順(1/21)
Windows Azure Media Services APIを使った配信手順
Copyright © @fullvirtue. All rights reserved. 46
ComputeStorage
Windows Azure Media Services
- 47. Windows Azure Media Services APIを使った配信手順(2/21)
コーディングの流れ
Copyright © @fullvirtue. All rights reserved. 47
- 48. Windows Azure Media Services APIを使った配信手順(3/21)
コーディングの流れ
Copyright © @fullvirtue. All rights reserved. 48
- 49. Windows Azure Media Services APIを使った配信手順(4/21)
Windows Azure Media Services接続
Copyright © @fullvirtue. All rights reserved. 49
Windows Azure Media Servicesとの全てのやりとりは、CloudMediaContext クラ
スを通じて行っています
注意点
CloudMediaContext はスレッドセーフではありません
ParalellTransferThreadCountは同時にファイル転送を行う上限値を設定しています
初期値が 10 です
適切な数に設定ください。
多すぎるとネットワーク帯域が不足する場合もありますので、ご注意ください
var context = new CloudMediaContext(
ConfigurationManager.AppSettings["accountName"],
ConfigurationManager.AppSettings["accountKey"]
);
context.ParallelTransferThreadCount = 100;
- 50. Windows Azure Media Services APIを使った配信手順(5/21)
Windows Azure Media Services接続
引数になっているメディア サービスのアカウント名、アカウント
キーは、Windows Azure 管理ポータルから取得します
Copyright © @fullvirtue. All rights reserved. 50
- 51. Windows Azure Media Services APIを使った配信手順(6/21)
1. Ingest:ファイルのアップロード
Copyright © @fullvirtue. All rights reserved. 51
Ingest
Asset作成 = ファイルをWindows Azure Media Services 管理下に
置く
別の Blob からのコピーも可能
Asset に 書き込み可能な SAS URLを作成し、それを元に
Containerを作成する
http://social.msdn.microsoft.com/Forums/en-
US/MediaServices/thread/be486bac-ac37-4984-87d0-
20931fcb1328
2つの暗号化オプション: AES 256bit / Common Encryption
途中経過取得のためには、非同期実行とBlobTransferClient
- 52. Windows Azure Media Services APIを使った配信手順(7/21)
1. Ingest – sample code: 同期
Copyright © @fullvirtue. All rights reserved. 52
var targetFile = new FileInfo(@"D:¥Demo¥Sample.wmv");
// 1. 空のAssetを作成
var ingestAsset = context.Assets.Create(
targetFile.Name,
AssetCreationOptions.StorageEncrypted);
// 2. 空のAssetFileを作成
var ingestAssetFile = ingestAsset.AssetFiles.Create(
targetFile.Name);
// 3. AccessPolicyを作成します。ここでは1時間のみ書き込み許可
var uploadAccessPolicy = context.AccessPolicies.Create(targetFile.Name,
TimeSpan.FromHours(1),
AccessPermissions.Write | AccessPermissions.List);
// 4. SAS Locatorを作成
var locator = context.Locators.CreateLocator(LocatorType.Sas,
ingestAsset,
uploadAccessPolicy);
// 2.5. Upload を実行します (同期実行)
ingestAssetFile.Upload(targetFile.FullName);
Ingest
- 53. Windows Azure Media Services APIを使った配信手順(8/21)
1. Ingest – sample code: 非同期
Copyright © @fullvirtue. All rights reserved. 53
// 2.5. Upload を実行します (非同期実行)
// ---- ファイル転送 途中経過取得用 ----
BlobTransferClient transferClient = new BlobTransferClient();
transferClient.TransferProgressChanged += transferClient_TransferProgressChanged;
// ----------------------------------
var uploadTask = ingestAssetFile.UploadAsync(
targetFile.FullName,
transferClient,
locator,
System.Threading.CancellationToken.None);
Ingest
//ファイルアップロードの状況確認
static void transferClient_TransferProgressChanged(object sender, BlobTransferProgressChangedEventArgs e)
{
Console.WriteLine(" 経過 {0}%", e.ProgressPercentage);
}
- 54. Windows Azure Media Services APIを使った配信手順(9/21)
Manage:管理
Copyright © @fullvirtue. All rights reserved. 54
Asset / Job / AccessPolicy の管理
実際には Windows Azure SQL database 上で管理
LINQ サポート
Ingest
- 55. Windows Azure Media Services APIを使った配信手順(10/21)
Manage: Assetの作成
アセットは言わば「器」です
– アップロード対象のファイル名を、アセットとアセット ファイル、そ
れぞれの名前とします
» Windows Azure メディア サービスは Contents Management System
(CMS) を併せ持っていません
» この名前でクエリーをかける事も可能ですが、コンテンツそのものの検索
はサーチ エンジンなどと合わせて CMS 側にて行ってください
» つまり、この名前は何でも良いのです
» アセット作成時に Id が発行されます
» Id は大変重要で、Primary Key として作用します
» 単一アセットの検索スピードが、最も速いのです。
– Asset オブジェクトには、Id 以外に AlternatedId というフィールド
があり、こちらは皆さんがお使いの CMS の ID を設定いただくことを
想定しています
Copyright © @fullvirtue. All rights reserved. 55
- 56. Windows Azure Media Services APIを使った配信手順(11/21)
Manage: Assetの作成
Copyright © @fullvirtue. All rights reserved. 56
Windows Azure Blob コンテナ
アプリケーション的なメタは持っていない
Asset. AlternateId にてCMS連携
削除する際の注意点
関連する Locator は個別削除が必要
AssetCreationOptions.CommonEncryptionProtected 指定を
したAsset を削除する場合は、ContentsKey の個別削除が必須
Ingest
Id AlternateId Name
<guid> 0001 contoso
ID Name Title Artist
0001 Contoso Great Video Art #1
- 57. Windows Azure Media Services APIを使った配信手順(12/21)
2. Process:エンコード(正確にはトランスコード)
Copyright © @fullvirtue. All rights reserved. 57
エンコードなどのメディア処理の実行単位
Job に、n個 の Task を作成
Job が実行の単位。トランザクションではない
開始/キャンセル/終了/エラーなど
入力/出力ファイルを指定する
ファイル同士の依存関係がないと
Task は並列実行。あると直列実行
途中経過取得のためには、以下を呼び出す
job.GetExecutionProgressTask
Ingest
Job
Task
Input Asset
Output Asset
Task
Input Asset
Output Asset
- 58. Windows Azure Media Services APIを使った配信手順(13/21)
2. Process:Windows Azure Media Encoder
Copyright © @fullvirtue. All rights reserved. 58
Expression Encoder 4 Pro SP2 がベース
Azure に最適化
Adaptive Bitrate Streamingでは、複数VMを使う
タスク プリセット 指定
http://msdn.microsoft.com/en-
us/library/jj129582.aspx
「現在」は、Expression Encoder 4 Pro SP2 の
カスタム タスク プリセット (XML文字列) も動作する!
サムネイル作成, 時間指定の切り出し など
Ingest
- 59. Windows Azure Media Services APIを使った配信手順(14/21)
2. Process:Windows Azure Media Encoder
Copyright © @fullvirtue. All rights reserved. 59
サポートしているファイルフォーマット: Import
Ingest
File Format File Extensions
3GPP, 3GPP2 .3gp, .3g2, .3gp2
Advanced Systems Format (ASF) .asf
Advanced Video Coding High
Definition (AVCHD) [MPEG-2
Transport Stream]
.mts, .m2ts
Audio-Video Interleaved (AVI) .avi
Digital camcorder MPEG-2 (MOD) .mod
Digital video (DV) camera file .dv
DVD transport stream (TS) file .ts
DVD video object (VOB) file .vob
Expression Encoder Screen
Capture Codec file
.xesc
MP4 .mp4
MPEG-1 System Stream .mpeg, .mpg
MPEG-2 video file .m2v
Smooth Streaming File Format
(PIFF 1.3)
.ismv
Windows Media Video (WMV) .wmv
File Format File Extensions
AC-3 (Dolby Digital) audio .ac3
Audio Interchange File Format
(AIFF)
.aiff
Broadcast Wave Format .bwf
MP3 (MPEG-1 Audio Layer 3) .mp3
MP4 audio .m4A
MPEG-4 audio book .m4b
WAVE file .wav
Windows Media Audio .wma
Video Audio
http://msdn.microsoft.com/en-us/library/hh973634.aspx
- 60. Windows Azure Media Services APIを使った配信手順(15/21)
2. Process:Windows Azure Media Encoder
Copyright © @fullvirtue. All rights reserved. 60http://msdn.microsoft.com/en-us/library/hh973634.aspx
サポートしているコーデック: Import
Ingest
H.264
MPEG-1
MPEG-2
VC-1
Windows Media Video
AC-3 (Dolby Digital audio)
Advanced Audio Coding (AAC)
MP3 (MPEG-1 Audio Layer 3)
Windows Media Audio
Video Audio
- 61. Windows Azure Media Services APIを使った配信手順(16/21)
2. Process:Windows Azure Media Encoder
Copyright © @fullvirtue. All rights reserved. 61http://msdn.microsoft.com/en-us/library/hh973634.aspx
サポートしているファイルフォーマット/コーデック:
Export
Ingest
File Format Video Codec Audio Codec
Windows Media (*.wmv;
*.wma)
VC-1 (Advanced, Main, and
Simple Profiles)
WMA Standard, WMA
Professional, WMA Voice,
WMA Lossless
MP4 (*.mp4)
H.264 (High, Main, and
Baseline Profiles)
AAC-LC, HE-AAC v1, HE-
AAC v2
Smooth Streaming File
Format (PIFF 1.1) (*.ismv;
*.isma)
VC-1 (Advanced Profile)
H.264 (High, Main, and
Baseline Profiles)
WMA Standard, WMA
Professional
AAC-LC, HE-AAC v1, HE-
AAC v2
- 62. Windows Azure Media Services APIを使った配信手順(17/21)
2. Process:Windows Azure Media Packager / Encryptor
Copyright © @fullvirtue. All rights reserved. 62http://msdn.microsoft.com/en-us/library/hh973634.aspx
IIS Transform Manager 1.1 がベース
http://msdn.microsoft.com/en-us/library/hh973619.aspx
Media Processor 定義 + 設定XML文字列
PlayReady Protection Task
MP4 to Smooth Streams Task
Smooth Streams to HLS Conversion Task
サムネイル作成
Storage Decryption
http://msdn.microsoft.com/en-
us/library/jj129580.aspx#get_media_processor
Ingest
- 63. Windows Azure Media Services APIを使った配信手順(18/21)
2. Process – sample code: エンコード
Copyright © @fullvirtue. All rights reserved. 63http://msdn.microsoft.com/en-us/library/hh973634.aspx
// 1. Job 作成
var job = context.Jobs.Create("WMVをSmooth StreamingとHLSにエンコード : " + DateTime.Now.ToLongTimeString());
var windowsAzureMediaEncoder = context.MediaProcessors
.Where(p => p.Name == "Windows Azure Media Encoder").
ToList().OrderBy(p => new Version(p.Version)).LastOrDefault();
// 2. タスクの作成
var WMS2SSTask = job.Tasks.AddNew("WMV to Smooth Streaming - " + DateTime.Now.ToLongTimeString(),
windowsAzureMediaEncoder,
"H264 Smooth Streaming SD 4x3",
TaskOptions.None);
// 3. 入出力Asset指定
WMS2SSTask.InputAssets.Add(ingestAsset);
var SSedAsset = WMS2SSTask.OutputAssets.AddNew(
string.Format("{0} - SmoothStreaming:{1}",
ingestAssetFile.Name,
DateTime.Now.ToLongTimeString()),
AssetCreationOptions.None);
// 4. ジョブ実行
job.Submit();
// ----- ジョブ実行の途中経過の取得をする設定 ---------------------
var progressJobTask = job.GetExecutionProgressTask(CancellationToken.None);
// ------------------------------------------------------------
Ingest
- 64. Windows Azure Media Services APIを使った配信手順(19/21)
2. Process – sample code: Job 状態確認
Copyright © @fullvirtue. All rights reserved. 64http://msdn.microsoft.com/en-us/library/hh973634.aspx
bool jobFinalize = false;
while (!jobFinalize) {
switch (job.State) {
case JobState.Finished:
jobFinalize = true;
Console.WriteLine(" 正常終了: {0}", job.RunningDuration);
break;
case JobState.Error:
jobFinalize = true;
Console.WriteLine(" エラー発生: {0}", job.Tasks[0].ErrorDetails);
StringBuilder errorDescription = new StringBuilder();
errorDescription.Append(" ** 詳細: ¥n");
foreach (var task in job.Tasks) {
foreach (ErrorDetail detail in task.ErrorDetails) {
errorDescription.AppendLine(" ** Task Id: " + task.Id);
errorDescription.AppendLine(" ** Error Code: " + detail.Code);
errorDescription.AppendLine(" ** Error Message: " + detail.Message +
"¥n");
}
}
Console.WriteLine(errorDescription);
break;
default:
Console.WriteLine(" 15秒間 待機します: {0}", DateTime.Now.ToLongTimeString());
System.Threading.Thread.Sleep(15000);
break;
}
}
Ingest
- 65. Windows Azure Media Services APIを使った配信手順(20/21)
3. Delivery:配信
Copyright © @fullvirtue. All rights reserved. 65http://msdn.microsoft.com/en-us/library/hh973634.aspx
ストリーミング / ダウンロード のオリジンサーバー
Locator に Asset 単位で割り当てる
1 つの Asset につき 5つの Locator が上限
AccessPolicyによって、時間単位での公開を設定
アクセス権設定ではない
占有型と共有型は一つのアカウントで同居できない
Dynamic Packaging を使う場合は、占有型でのみ対応。
Dynamic Packaging は Smooth Streaming, HLSのみ。
DRM未対応
Ingest
- 66. Windows Azure Media Services APIを使った配信手順(21/21)
3. Delivery – sample code
Copyright © @fullvirtue. All rights reserved. 66http://msdn.microsoft.com/en-us/library/hh973634.aspx
// 1. Access Policy 作成
var deliveryAccessPolicy = context.AccessPolicies.Create("Streaming",
TimeSpan.FromHours(3),
AccessPermissions.Read | AccessPermissions.List);
var SS_OutputAsset = job.OutputMediaAssets[0];
var SS_Manifest = (from f in SS_OutputAsset.AssetFiles
where f.Name.EndsWith(".ism")
select f).First();
// 2. Locator 作成
var SS_StreamingPointLocator = context.Locators.CreateLocator(
LocatorType.OnDemandOrigin,
SS_OutputAsset,
deliveryAccessPolicy,
DateTime.UtcNow.AddMinutes(-5));
// 3. プレイヤーに渡すURL生成 (ここではデスクトップに出力)
WriteToFile(Environment.GetEnvironmentVariable("USERPROFILE") +
@"¥Desktop¥SSPath.txt",
SS_StreamingPointLocator.Path + SS_Manifest.Name+ "/manifest");
Ingest
"/manifest(format=m3u8-aapl)"
- 68. Windows Azure Media Services コンセプト(1/35)
動画配信を取り巻く環境
Copyright © @fullvirtue. All rights reserved. 68
- 75. Windows Azure Media Services コンセプト(8/35)
Copyright © @fullvirtue. All rights reserved. 75
99%
PC/Mac
NO PLUGIN
PROGRESSIVE DOWNLOAD
ADAPTIVE STREAMING
RTSP/RTMP
Web とともに歩んだ動画配信
- 76. Windows Azure Media Services コンセプト(9/35)
Copyright © @fullvirtue. All rights reserved. 76
(standard) Streaming
3Mbps
Streaming Server
HTTP Progressive Download
RTMP / RTSP / MMS
etc …
3Mbps
Web ServerHTTP Cache
Adaptive bitrate Streaming over HTTP
3Mbps
Streaming ServerHTTP Cache
1Mbps
512 kbps
256 kbps
No Live!
配信技術の変遷
- 78. Windows Azure Media Services コンセプト(11/35)
見えてきた次世代技術
Copyright © @fullvirtue. All rights reserved. 78
Creation ConsumerCloud
4K / 8K
MPEG-DASH / CSF
HEVC (H.265)
2nd Screen
Big Data
Tablet
Smart
Phone
PC
- 79. 8K UHD 4320p (7680 x 4320)
Windows Azure Media Services コンセプト(12/35)
高解像度が生む巨大なファイル
Copyright © @fullvirtue. All rights reserved. 79
4K UHD
2160p (3840 x 2160)
HD
1080i/1080p (1920 x
1080)
SD
480i
(720 x 480)
10
分
約50MB
約200MB
約800MB
約3.2GB ?
- 80. Windows Azure Media Services コンセプト(13/35)
期待の圧縮技術 HEVC ですが…
Copyright © @fullvirtue. All rights reserved. 80
半分 500 – 1,000倍
ファイルサイズ エンコード時間
- 81. Windows Azure Media Services コンセプト(14/35)
HTML5
Copyright © @fullvirtue. All rights reserved. 81
- 82. Windows Azure Media Services コンセプト(15/35)
HTML5 に不足しているもの
Copyright © @fullvirtue. All rights reserved. 82
Live
配信システム
ネットワーク
ストリーミング
DRM
コンテンツ保護
MPEG-DASH CENC
- 83. Windows Azure Media Services コンセプト(16/35)
MPEG-DASH – 標準規格となるか
Copyright © @fullvirtue. All rights reserved. 83
Dynamic Adaptive Streaming over HTTP (DASH)
Also called MPEG-DASH
Smooth Streaming Http Live Streaming Http Dynamic Streaming
- 84. Windows Azure Media Services コンセプト(17/35)
動画ファイルの構造
Copyright © @fullvirtue. All rights reserved. 84
- 85. Windows Azure Media Services コンセプト(18/35)
Dynamic Packagingによる最適な動画配信
Copyright © @fullvirtue. All rights reserved. 85
Standard
MP4
Origin
Source
Multi
Bitrate MP4
Smooth
File
HLS File
Encode
Package
Package
Smooth
HLS
Dynamic Packaging
Origin
(Reserved)
Source
Multi
Bitrate
MP4
Encode
Smooth
HLS
- 86. Windows Azure Media Services コンセプト(19/35)
Dynamic Packagingによる最適な動画配信
サンプルソースコード
– http://daiyuhatakeyama.wordpress.com/2013/05/10/dynamic-packaging-
%E3%81%AB%E3%82%88%E3%82%8B%E3%82%A8%E3%83%B3%E3%82%B3%E3%83%BC%E3%83%
89%E3%81%AA%E3%81%97%E3%81%A7%E3%81%AE%E3%83%9E%E3%83%AB%E3%83%81%E3%83
%87%E3%83%90%E3%82%A4%E3%82%B9%E5%AF%BE/
注意事項
– [スケール]内の[ON DEMAND STREAMING]のユニットを1以上に
してください
Copyright © @fullvirtue. All rights reserved. 86
- 87. Windows Azure Media Services コンセプト(20/35)
さらにリッチな体験を(日本では閲覧不可)
Copyright © @fullvirtue. All rights reserved. 87
- 88. Windows Azure Media Services コンセプト(21/35)
Microsoft MIX 2011 Ustream視聴者数を可視化した結果
Copyright © @fullvirtue. All rights reserved. 88
- 89. Windows Azure Media Services コンセプト(22/35)
Microsoft Media Platform: Video Editor
Web ベースのラフカット編集ツール
オープンソース
NBC Olympic など多くの利用実績
リアルタイムのクリップ作成
– マニフェスト/インデックスファイルの作成のみを行う
Copyright © @fullvirtue. All rights reserved. 89
- 90. Windows Azure Media Services コンセプト(23/35)
ブラウザーだけでも、ここまで出来る!という事例
Copyright © @fullvirtue. All rights reserved. 90
- 91. Windows Azure Media Services コンセプト(24/35)
スマートフォンにおけるネイティブアプリの現状
Copyright © @fullvirtue. All rights reserved. 91
•固定的に設置された広告枠と異なり、ユーザー行動
の主眼であるコンテンツと同様の表示形式を持った
広告であること
ユーザー主体
•編集コンテンツに対し、その品質や表示トーンが一
致する、もしくは近似するコンテンツ性の高い広告
であること
融合
•ソーシャルやモバイルなど、読者のメディア接点の
変化や多様性に最適化した広告形式であること
マルチデザイン
•テクノロジーと人間の編集力が関与する余地のある
広告形式であること
“おもてなし”
• 雑多なノイズが抑制され、お目当
てのコンテンツに没頭できる
読者
• 読者が嫌うものとしての広告から、
コンテンツ同様の精読率で接して
くれる広告が生まれる
広告主
• 読者とのエンゲージメント強化を
第一義に広告を制作できる
メディア運営者の視点から
定義 メリット
Source: http://mediaprobe.co.jp/blog/digitalmedia/2012/12/17/2838/
- 92. Windows Azure Media Services コンセプト(25/35)
動画アプリのインフラはとても大変…
Copyright © @fullvirtue. All rights reserved. 92
ネットワーク/ストレージ
コンテンツ管理
サービス
インテグ
レーショ
ン突発的な
高負荷
ジョブ
管理
- 93. Windows Azure Media Services コンセプト(26/35)
現状のカバーエリア
Copyright © @fullvirtue. All rights reserved. 93
ネットワーク/ストレージ
コンテンツ管理
サービス
インテグ
レーショ
ン突発的な
高負荷
ジョブ
管理
- 94. Windows Azure Media Services コンセプト(27/35)
とある動画配信インフラ…
Copyright © @fullvirtue. All rights reserved. 94
- 95. Windows Azure Media Services コンセプト(28/35)
動画配信のワークフロー
Copyright © @fullvirtue. All rights reserved. 95
Windows Azure Media Services
(APIだけしかない)
取り込み Encoding/
Transcoding
コンテンツ
保護
ストリーミン
グサーバー
ライブ中継 分析 広告差し込み
- 96. Windows Azure Media Services コンセプト(29/35)
Windows Azure Media Services を取り巻く環境
Copyright © @fullvirtue. All rights reserved. 96
Media Job
Scheduling
"Build-In"
Partner
Media
Processors
Content
Protection Analytics
Identity
Managemen
t
Live
Encoding
"Build-On" Media Partners and Customers
Secure
Media
Ingest
PartnerCDNs
Encoding
On-
Demand
Origin Live Origin
Ad
InsertionLive Ingest
Blobs
Load
Balancer
- 97. Windows Azure Media Services コンセプト(30/35)
柔軟なカスタマイズ
Microsoft または Microsoftパートナー企業の
アプリケーションを自由に選択
Copyright © @fullvirtue. All rights reserved. 97
- 98. Windows Azure Media Services コンセプト(31/35)
パートナーエコシステム
Copyright © @fullvirtue. All rights reserved. 98
Ingest
Encoding/
Transcoding
Content
Protection
Origin &
CDN
ISV
- 99. Windows Azure Media Services コンセプト(32/35)
クラウドを活用した最適な動画配信
Copyright © @fullvirtue. All rights reserved. 99
権利所有
読み取り
アクセス権付与
読み取り
アクセス権付与
コピー時間
が”0”
バックアップ
不要
CRMのスタート
地点
- 100. Windows Azure Media Services コンセプト(33/35)
自前で環境を用意する必要がなくなる
Copyright © @fullvirtue. All rights reserved. 100
圧倒的な
コンピューター
処理能力が容易
に
必要最低限の
ハードウェア
ワンソース
マルチユース
- 101. Windows Azure Media Services コンセプト(34/35)
料金プラン
Copyright © @fullvirtue. All rights reserved. 101
Media
Job
Sched
uling
"Build-In"
Partner
Media
Processors
Content
Protection
"Build-On" Media Partners and Customers
Secur
e
Media
Ingest
PartnerCDNs
On-Demand
Origin
パートナー様が決定
Encoding
処理データ量 /
月
料金 (GB)
最初の5TB ¥165.25
5 – 15 TB ¥132.87
15 - 30 TB ¥107.13
30 – 50 TB ¥84.71
100TB 以上 要ご相談
Blobs Load Balancer
量 / 月 Geo Replica
(GB)
無し (GB)
最初の1TB ¥7.89 ¥5.82
- 49TB ¥6.65 ¥5.40
-450TB ¥5.82 ¥4.99
-500TB ¥5.40 ¥4.57
– 4,000TB ¥4.99 ¥3.74
- 9,000 TB ¥4.57 ¥3.08
9,000TB超 ご相談 ご相談
量 / 月 (GB)
最初の10TB ¥15.78
-40TB ¥11.63
-100TB ¥9.97
-350TB ¥8.31
-524TB ¥6.65
-4096TB ¥5.82
5,120TB超 お問い合わせ
量 / 月 (GB)
最初の10TB ¥15.78
-40TB ¥12.46
-100TB ¥10.80
-350TB ¥9.97
500TB超 お問い合わせ
料金 (Unit /
月)
¥16,524.87
料金 (Unit / 月)
¥8,220.92
共有ユニット 占有ユニット 占有ユニット (のみ)
- 102. Windows Azure Media Services コンセプト(35/35)
“動画配信” だけでサービスは成り立たない
Copyright © @fullvirtue. All rights reserved. 102
仮想マシン
(Virtual Machines)
クラウド サービス
(Cloud Services)
Web サイト
(Web Sites)
SQL データベース
(SQL Database)
ストレージ
(Storage)
トラフィック管理
(Traffic Manager)
仮想ネットワーク
(Virtual Network)
サービス バス
(Service Bus)
メディア配信
(Media)
コンテンツ配信
(CDN)
キャッシュ
(Caching)
アクセス制御&AD
(ACS & Active Directory)
- 104. Copyright © @fullvirtue. All rights reserved.
今日お話したこと(1/1)
Windows Azure 管理ポータルでの配信手順
Windows Azure Media Services 開発環境の準備
Windows Azure Media Services APIを使った配信手順
Windows Azure Media Services コンセプト
まとめ
104