<初級> Windows Azure Media Services を活用したマルチデバイスへの動画配信 - Community OpenDay 2013

3,504 views

Published on

Published in: Technology
0 Comments
11 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,504
On SlideShare
0
From Embeds
0
Number of Embeds
91
Actions
Shares
0
Downloads
38
Comments
0
Likes
11
Embeds 0
No embeds

No notes for slide

<初級> Windows Azure Media Services を活用したマルチデバイスへの動画配信 - Community OpenDay 2013

  1. 1. <初級> Windows Azure Media Servicesを活用したマルチデバイスへの動画配信2013年05月11日(土)15:00-15:50Community Open Day 2013 東京会場せき@fullvirtue1Copyright © @fullvirtue. All rights reserved.
  2. 2. はじめにセッション概要(告知文)Windows Azure Media Services とは、ビデオの作成、管理、およびユーザーへの配信をだれでも簡単に利用できるようにした機能で、Windows Azure の中でも非常に注目を集めています。Windows Azure Media Services を使ったサービスを開発した経験から、開発方法や Tips を、デモを交えてお届けいたします。Copyright © @fullvirtue. All rights reserved. 2
  3. 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. 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. 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.aspxCopyright © @fullvirtue. All rights reserved. 5
  6. 6. WINDOWS AZURE 管理ポータルでの配信手順Copyright © @fullvirtue. All rights reserved. 6
  7. 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. 8. Windows Azure 管理ポータルでの配信手順(2/26)1. Windows Azure サブスクリプションのご用意1. Windows Azureのサブスクリプション購入2. Windows AzureのWebサイトおよびWindows Azureポータルのサブスクリプション購入の確認3. Windows Azure プレビュー機能のサインアップ[ご参考]– http://aka.ms/azure-subscriptionCopyright © @fullvirtue. All rights reserved. 8
  9. 9. Windows Azure 管理ポータルでの配信手順(3/26)2. Windows Azure Media Services アカウント作成Windows Azure 管理ポータルより以下を選択[新規]-[アプリ サービス]-[メディアサービス]-[簡易作成]Copyright © @fullvirtue. All rights reserved. 9
  10. 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. 11. Windows Azure Media Services 開発環境の準備(5/26)3. 動画ファイルのご用意– Windows Azure Media Encoder でサポートされているコーデックとファイルの種類» http://msdn.microsoft.com/ja-jp/library/hh973634Copyright © @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. 12. Windows Azure Media Services 開発環境の準備(6/26)3. 動画ファイルのご用意– Windows Azure Media Encoder でサポートされているコーデックとファイルの種類» http://msdn.microsoft.com/ja-jp/library/hh973634Copyright © @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. 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.aspxCopyright © @fullvirtue. All rights reserved. 13ファイル形式 ビデオ コーデック オーディオ コーデック•Windows メディア (*.wmv、.wma) •VC-1 (Advanced、Main、および SimpleProfile)•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. 14. Windows Azure Media Services 開発環境の準備(8/26)3. 動画ファイルのご用意[ご参考]– 動画のファイルをシステムの管理下に置く事を「インジェスト」と呼びます» Windows Azure はクラウド上にあるため、多くのシナリオではクラウドへのファイルのアップロードとなります– Windows Azure メディア サービスの内部では、動画のファイルは「アセット」という単位で管理されています» インジェストを行う際には、空のアセットを作成し、そこに「アセットファイル」を追加していく作業となります» アセット ファイルは実ファイルそのものです» ストリーミングの方式に由来し、複数のファイルが必要となりますCopyright © @fullvirtue. All rights reserved. 14
  15. 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. 16. Windows Azure Media Services 開発環境の準備(10/26)3. 動画ファイルのご用意[ご参考]– Smooth Streaming を実施する際の動画ファイル» .ismv が動画ファイルそのもの» HTML5 の VIDEO タグでは執筆時点では MP4 ファイルのプログレッシブダウンロードでしか配信が出来ないため、このような複数のビット レートのファイルは作成されませんCopyright © @fullvirtue. All rights reserved. 16
  17. 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 8http://playerframework.codeplex.com/releases/view/94684» Silverlighthttp://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. 18. Windows Azure 管理ポータルでの配信手順(12/26)Windows Azure 管理ポータルでの配信手順1. Ingest:ファイルのアップロード– 動画のファイルをシステムに取り込む(管理下に置く)2. Process:エンコード(正確にはトランスコード)– Windows Azure 管理ポータルの画面は「エンコード」と記載[参考:言葉の正確な定義]» エンコード:アナログ→デジタルの変換を行う» トランスコード:デジタル→デジタルの変換を行う Manage:管理– コンテンツの管理3. Delivery:配信– ダウンロード、ストリーミング等にて、動画の配信を行うCopyright © @fullvirtue. All rights reserved. 18
  19. 19. Windows Azure 管理ポータルでの配信手順(13/26)Windows Azure 管理ポータルでの配信手順Copyright © @fullvirtue. All rights reserved. 19ComputeStorageWindows Azure Media Services
  20. 20. Windows Azure 管理ポータルでの配信手順(14/26)1. Ingest:ファイルのアップロードWindows Azure 管理ポータルの、作成された Windows AzureMedia Servicesから [コンテンツ] タブに移動しますCopyright © @fullvirtue. All rights reserved. 20
  21. 21. Windows Azure 管理ポータルでの配信手順(15/26)1. Ingest:ファイルのアップロード[アップロード] をクリックして、ファイル アップロードの画面を表示させます[ローカルから] または [ストレージから(Windows Azure BlobStorage)] からファイルを選択し、決定するとアップロードを開始しますCopyright © @fullvirtue. All rights reserved. 21
  22. 22. Windows Azure 管理ポータルでの配信手順(16/26)1. Ingest:ファイルのアップロードアップロードが完了すると、[サイズ] にファイルサイズが表示されますCopyright © @fullvirtue. All rights reserved. 22
  23. 23. Windows Azure 管理ポータルでの配信手順(17/26)2. Process:エンコード(正確にはトランスコード)ファイルを選択したまま、管理ポータル下部にあるコマンドから[エンコード] を選択しますCopyright © @fullvirtue. All rights reserved. 23
  24. 24. Windows Azure 管理ポータルでの配信手順(18/26)2. Process:エンコード(正確にはトランスコード)[PC/Mac での再生] または [HTML5での再生]を実行しますCopyright © @fullvirtue. All rights reserved. 24[メモ]実際のエンコードでは、コーデック、画角などの細かい設定が必要です。これらをテンプレートとしてまとめたものを「プリセット」と呼びます。管理ポータルでは、[主なプリセット]と[詳細なプリセット]から選択可能です。APIを使うと、もっと細かい設定も可能となります。
  25. 25. Windows Azure 管理ポータルでの配信手順(19/26)2. Process:エンコード(正確にはトランスコード)管理ポータルで [ジョブ] に移動すると、実行中のエンコード処理の状況が確認できます– 処理の状況は、逐次確認が出来ます– 処理は、Windows Azure Media Servicesでは「ジョブ」という単位で管理されていますCopyright © @fullvirtue. All rights reserved. 25
  26. 26. Windows Azure 管理ポータルでの配信手順(20/26)2. Process:エンコード(正確にはトランスコード)– [進捗状況] が [Finished] となっていると、エンコード処理が正常に行われたことになります– エラーがあった場合は、ジョブを選択し、コマンドの [詳細] から、エラー内容を確認してください– 既定では、処理は 1 つずつしか行われません– 同時に複数のジョブを走らせたい場合は、管理ポータルの [スケール]から、ENCODING のユニット数を増やす必要があります» こちらはサービスを占有するため、日割りで追加の料金が発生する点をご留意ください。Copyright © @fullvirtue. All rights reserved. 26
  27. 27. Windows Azure 管理ポータルでの配信手順(21/26)2. Process:エンコード(正確にはトランスコード)– [進捗状況] が [Finished] となっていると、エンコード処理が正常に行われたことになります– エラーがあった場合は、ジョブを選択し、コマンドの [詳細] から、エラー内容を確認してください– 既定では、処理は 1 つずつしか行われません– 同時に複数のジョブを走らせたい場合は、管理ポータルの [スケール]から、ENCODING のユニット数を増やす必要があります» こちらはサービスを占有するため、日割りで追加の料金が発生する点をご留意ください。Copyright © @fullvirtue. All rights reserved. 27
  28. 28. Windows Azure 管理ポータルでの配信手順(22/26)3. Delivery:配信発行対象のコンテンツを選択し、画面下部の [発行] を選択します– 5 ~ 10 秒程度で、配信準備が終わります– エンコードしただけでは、動画の配信はされません– 「コンテンツを公開する」という手順を踏みます– Windows Azure Media Services では高いセキュリティを維持するため、指示が無い限りコンテンツは外部に出ていきませんCopyright © @fullvirtue. All rights reserved. 28
  29. 29. Windows Azure 管理ポータルでの配信手順(23/26)3. Delivery:配信発行が完了すると、[発行 URL] が出力されます– そのままプレイヤーのアプリケーションに設定する URL です– (未発行)のものは公開されていません– [発行 URL] の各データを選択すると、クリップ ボードにコピーするアイコンが表示されますCopyright © @fullvirtue. All rights reserved. 29
  30. 30. Windows Azure 管理ポータルでの配信手順(24/26)3. Delivery:配信コンテンツを選択して [再生] を選択すると、発行結果を確認できます– Windows Azure メディア サービスの管理ポータルには、Flash と HTML5 のプレイヤーが搭載されているため、結果をすぐ確認できます– Windows OS では、iOS用の動画は再生できませんCopyright © @fullvirtue. All rights reserved. 30
  31. 31. Windows Azure 管理ポータルでの配信手順(25/26)[参考]安定した実行・パフォーマンスのための 「占有」型[スケール] タブ内の [ON-DEMAND STREAMING]や[ENCODING] に割り当てるユニットを増やします– 反映にある程度時間がかかり、課金額も増えますCopyright © @fullvirtue. All rights reserved. 31
  32. 32. Windows Azure 管理ポータルでの配信手順(26/26)[参考]再生できなかった場合のトラブルシューティングIIS上で、MAXビットレートを1,600kbpsにする必要があります– Azureは1,600に設定されています再生ができなかったらファイルの詳細でビットレートを確認してくださいビットレートが大きすぎたら、エンコードでビットレートを下げてくださいCopyright © @fullvirtue. All rights reserved. 32
  33. 33. WINDOWS AZURE MEDIASERVICES 開発環境の準備Copyright © @fullvirtue. All rights reserved. 33
  34. 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.aspxCopyright © @fullvirtue. All rights reserved. 34
  35. 35. Windows Azure Media Services 開発環境の準備(2/11)1. SDKインストール【.NET の場合】– NuGetパッケージにて Windows Azure Media Services を追加Copyright © @fullvirtue. All rights reserved. 35
  36. 36. Windows Azure Media Services 開発環境の準備(3/11)1. SDKインストール【.NET の場合】– NuGetパッケージにて Windows Azure Media Services を追加Copyright © @fullvirtue. All rights reserved. 36「安定版パッケージのみ」「名前:降順」「Media」で検索すると探しやすいです
  37. 37. Windows Azure Media Services 開発環境の準備(4/11)1. SDKインストール【.NET の場合】– 既存の関連モジュールの確認作業が終わった後、[ライセンスの同意]画面が出てくるので、確認後[同意する]をクリックしますCopyright © @fullvirtue. All rights reserved. 37
  38. 38. Windows Azure Media Services 開発環境の準備(5/11)1. SDKインストール【.NET の場合】– インストールが正常に完了するとNuGet パッケージの管理画面のWindows Azure Media Services の右上に緑色のチェックアイコンが付きますCopyright © @fullvirtue. All rights reserved. 38
  39. 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/hh690946Copyright © @fullvirtue. All rights reserved. 39
  40. 40. Windows Azure Media Services 開発環境の準備(7/11)1. SDKインストール【Java の場合】– Windows Azure Library for Java の 参照設定適切なプロジェクトを作成後、プロジェクトの [プロパティー]を選択Copyright © @fullvirtue. All rights reserved. 40
  41. 41. Windows Azure Media Services 開発環境の準備(8/11)1. SDKインストール【Java の場合】– [Java のビルド・パス] – [ライブラリー] – [ライブラリーの追加] を選択しますCopyright © @fullvirtue. All rights reserved. 41
  42. 42. Windows Azure Media Services 開発環境の準備(9/11)1. SDKインストール【Java の場合】– [Package for Windows Azure Libraries for Java (by MS OpenTech)] を選択、ウィザードをそのまま進めて完了しますCopyright © @fullvirtue. All rights reserved. 42
  43. 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. 44. Windows Azure Media Services 開発環境の準備(11/11)ご参考:Windows Azure Media Services SDK for .NETCopyright © @fullvirtue. All rights reserved. 44Microsoft.WindowsAzure.MediaServices.Client.CloudMediaContext サービスとのセッションAsset / AssetFile コンテンツ(ファイル)Job / Task エンコードなどのメディア処理MediaProcessor メディア処理アプリ定義Locator 配布/配信ポイントAccessPolicy 配布/配信 公開ポリシー
  45. 45. WINDOWS AZURE MEDIASERVICES APIを使った配信手順Copyright © @fullvirtue. All rights reserved. 45
  46. 46. Windows Azure Media Services APIを使った配信手順(1/21)Windows Azure Media Services APIを使った配信手順Copyright © @fullvirtue. All rights reserved. 46ComputeStorageWindows Azure Media Services
  47. 47. Windows Azure Media Services APIを使った配信手順(2/21)コーディングの流れCopyright © @fullvirtue. All rights reserved. 47
  48. 48. Windows Azure Media Services APIを使った配信手順(3/21)コーディングの流れCopyright © @fullvirtue. All rights reserved. 48
  49. 49. Windows Azure Media Services APIを使った配信手順(4/21)Windows Azure Media Services接続Copyright © @fullvirtue. All rights reserved. 49Windows Azure Media Servicesとの全てのやりとりは、CloudMediaContext クラスを通じて行っています注意点 CloudMediaContext はスレッドセーフではありませんParalellTransferThreadCountは同時にファイル転送を行う上限値を設定しています 初期値が 10 です 適切な数に設定ください。 多すぎるとネットワーク帯域が不足する場合もありますので、ご注意くださいvar context = new CloudMediaContext(ConfigurationManager.AppSettings["accountName"],ConfigurationManager.AppSettings["accountKey"]);context.ParallelTransferThreadCount = 100;
  50. 50. Windows Azure Media Services APIを使った配信手順(5/21)Windows Azure Media Services接続引数になっているメディア サービスのアカウント名、アカウントキーは、Windows Azure 管理ポータルから取得しますCopyright © @fullvirtue. All rights reserved. 50
  51. 51. Windows Azure Media Services APIを使った配信手順(6/21)1. Ingest:ファイルのアップロードCopyright © @fullvirtue. All rights reserved. 51IngestAsset作成 = ファイルをWindows Azure Media Services 管理下に置く別の Blob からのコピーも可能 Asset に 書き込み可能な SAS URLを作成し、それを元にContainerを作成する http://social.msdn.microsoft.com/Forums/en-US/MediaServices/thread/be486bac-ac37-4984-87d0-20931fcb13282つの暗号化オプション: AES 256bit / Common Encryption途中経過取得のためには、非同期実行とBlobTransferClient
  52. 52. Windows Azure Media Services APIを使った配信手順(7/21)1. Ingest – sample code: 同期Copyright © @fullvirtue. All rights reserved. 52var 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. 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. 54. Windows Azure Media Services APIを使った配信手順(9/21)Manage:管理Copyright © @fullvirtue. All rights reserved. 54Asset / Job / AccessPolicy の管理 実際には Windows Azure SQL database 上で管理LINQ サポートIngest
  55. 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. 56. Windows Azure Media Services APIを使った配信手順(11/21)Manage: Assetの作成Copyright © @fullvirtue. All rights reserved. 56Windows Azure Blob コンテナアプリケーション的なメタは持っていない Asset. AlternateId にてCMS連携削除する際の注意点 関連する Locator は個別削除が必要 AssetCreationOptions.CommonEncryptionProtected 指定をしたAsset を削除する場合は、ContentsKey の個別削除が必須IngestId AlternateId Name<guid> 0001 contosoID Name Title Artist0001 Contoso Great Video Art #1
  57. 57. Windows Azure Media Services APIを使った配信手順(12/21)2. Process:エンコード(正確にはトランスコード)Copyright © @fullvirtue. All rights reserved. 57エンコードなどのメディア処理の実行単位Job に、n個 の Task を作成 Job が実行の単位。トランザクションではない 開始/キャンセル/終了/エラーなど 入力/出力ファイルを指定する ファイル同士の依存関係がないとTask は並列実行。あると直列実行途中経過取得のためには、以下を呼び出す job.GetExecutionProgressTaskIngestJobTaskInput AssetOutput AssetTaskInput AssetOutput Asset
  58. 58. Windows Azure Media Services APIを使った配信手順(13/21)2. Process:Windows Azure Media EncoderCopyright © @fullvirtue. All rights reserved. 58Expression 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. 59. Windows Azure Media Services APIを使った配信手順(14/21)2. Process:Windows Azure Media EncoderCopyright © @fullvirtue. All rights reserved. 59サポートしているファイルフォーマット: ImportIngestFile Format File Extensions3GPP, 3GPP2 .3gp, .3g2, .3gp2Advanced Systems Format (ASF) .asfAdvanced Video Coding HighDefinition (AVCHD) [MPEG-2Transport Stream].mts, .m2tsAudio-Video Interleaved (AVI) .aviDigital camcorder MPEG-2 (MOD) .modDigital video (DV) camera file .dvDVD transport stream (TS) file .tsDVD video object (VOB) file .vobExpression Encoder ScreenCapture Codec file.xescMP4 .mp4MPEG-1 System Stream .mpeg, .mpgMPEG-2 video file .m2vSmooth Streaming File Format(PIFF 1.3).ismvWindows Media Video (WMV) .wmvFile Format File ExtensionsAC-3 (Dolby Digital) audio .ac3Audio Interchange File Format(AIFF).aiffBroadcast Wave Format .bwfMP3 (MPEG-1 Audio Layer 3) .mp3MP4 audio .m4AMPEG-4 audio book .m4bWAVE file .wavWindows Media Audio .wmaVideo Audiohttp://msdn.microsoft.com/en-us/library/hh973634.aspx
  60. 60. Windows Azure Media Services APIを使った配信手順(15/21)2. Process:Windows Azure Media EncoderCopyright © @fullvirtue. All rights reserved. 60http://msdn.microsoft.com/en-us/library/hh973634.aspxサポートしているコーデック: ImportIngestH.264MPEG-1MPEG-2VC-1Windows Media VideoAC-3 (Dolby Digital audio)Advanced Audio Coding (AAC)MP3 (MPEG-1 Audio Layer 3)Windows Media AudioVideo Audio
  61. 61. Windows Azure Media Services APIを使った配信手順(16/21)2. Process:Windows Azure Media EncoderCopyright © @fullvirtue. All rights reserved. 61http://msdn.microsoft.com/en-us/library/hh973634.aspxサポートしているファイルフォーマット/コーデック:ExportIngestFile Format Video Codec Audio CodecWindows Media (*.wmv;*.wma)VC-1 (Advanced, Main, andSimple Profiles)WMA Standard, WMAProfessional, WMA Voice,WMA LosslessMP4 (*.mp4)H.264 (High, Main, andBaseline Profiles)AAC-LC, HE-AAC v1, HE-AAC v2Smooth Streaming FileFormat (PIFF 1.1) (*.ismv;*.isma)VC-1 (Advanced Profile)H.264 (High, Main, andBaseline Profiles)WMA Standard, WMAProfessionalAAC-LC, HE-AAC v1, HE-AAC v2
  62. 62. Windows Azure Media Services APIを使った配信手順(17/21)2. Process:Windows Azure Media Packager / EncryptorCopyright © @fullvirtue. All rights reserved. 62http://msdn.microsoft.com/en-us/library/hh973634.aspxIIS Transform Manager 1.1 がベース http://msdn.microsoft.com/en-us/library/hh973619.aspxMedia 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_processorIngest
  63. 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. 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.aspxbool 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. 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. 66. Windows Azure Media Services APIを使った配信手順(21/21)3. Delivery – sample codeCopyright © @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.AssetFileswhere 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)"
  67. 67. WINDOWS AZURE MEDIASERVICES コンセプトCopyright © @fullvirtue. All rights reserved. 67
  68. 68. Windows Azure Media Services コンセプト(1/35)動画配信を取り巻く環境Copyright © @fullvirtue. All rights reserved. 68
  69. 69. コンテンツをどこに届けたいですか?
  70. 70. ポケットには iPhone
  71. 71. リビングには iPad
  72. 72. 自宅の机はもちろんWindows PC
  73. 73. 電子書籍、いよいよ本格化?
  74. 74. All in One の新しい形
  75. 75. Windows Azure Media Services コンセプト(8/35)Copyright © @fullvirtue. All rights reserved. 7599%PC/MacNO PLUGINPROGRESSIVE DOWNLOADADAPTIVE STREAMINGRTSP/RTMPWeb とともに歩んだ動画配信
  76. 76. Windows Azure Media Services コンセプト(9/35)Copyright © @fullvirtue. All rights reserved. 76(standard) Streaming3MbpsStreaming ServerHTTP Progressive DownloadRTMP / RTSP / MMSetc …3MbpsWeb ServerHTTP CacheAdaptive bitrate Streaming over HTTP3MbpsStreaming ServerHTTP Cache1Mbps512 kbps256 kbpsNo Live!配信技術の変遷
  77. 77. 動画技術はどこへ向かっている?
  78. 78. Windows Azure Media Services コンセプト(11/35)見えてきた次世代技術Copyright © @fullvirtue. All rights reserved. 78Creation ConsumerCloud4K / 8KMPEG-DASH / CSFHEVC (H.265)2nd ScreenBig DataTabletSmartPhonePC
  79. 79. 8K UHD 4320p (7680 x 4320)Windows Azure Media Services コンセプト(12/35)高解像度が生む巨大なファイルCopyright © @fullvirtue. All rights reserved. 794K UHD2160p (3840 x 2160)HD1080i/1080p (1920 x1080)SD480i(720 x 480)10分約50MB約200MB約800MB約3.2GB ?
  80. 80. Windows Azure Media Services コンセプト(13/35)期待の圧縮技術 HEVC ですが…Copyright © @fullvirtue. All rights reserved. 80半分 500 – 1,000倍ファイルサイズ エンコード時間
  81. 81. Windows Azure Media Services コンセプト(14/35)HTML5Copyright © @fullvirtue. All rights reserved. 81
  82. 82. Windows Azure Media Services コンセプト(15/35)HTML5 に不足しているものCopyright © @fullvirtue. All rights reserved. 82Live配信システムネットワークストリーミングDRMコンテンツ保護MPEG-DASH CENC
  83. 83. Windows Azure Media Services コンセプト(16/35)MPEG-DASH – 標準規格となるかCopyright © @fullvirtue. All rights reserved. 83Dynamic Adaptive Streaming over HTTP (DASH)Also called MPEG-DASHSmooth Streaming Http Live Streaming Http Dynamic Streaming
  84. 84. Windows Azure Media Services コンセプト(17/35)動画ファイルの構造Copyright © @fullvirtue. All rights reserved. 84
  85. 85. Windows Azure Media Services コンセプト(18/35)Dynamic Packagingによる最適な動画配信Copyright © @fullvirtue. All rights reserved. 85StandardMP4OriginSourceMultiBitrate MP4SmoothFileHLS FileEncodePackagePackageSmoothHLSDynamic PackagingOrigin(Reserved)SourceMultiBitrateMP4EncodeSmoothHLS
  86. 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. 87. Windows Azure Media Services コンセプト(20/35)さらにリッチな体験を(日本では閲覧不可)Copyright © @fullvirtue. All rights reserved. 87
  88. 88. Windows Azure Media Services コンセプト(21/35)Microsoft MIX 2011 Ustream視聴者数を可視化した結果Copyright © @fullvirtue. All rights reserved. 88
  89. 89. Windows Azure Media Services コンセプト(22/35)Microsoft Media Platform: Video EditorWeb ベースのラフカット編集ツールオープンソースNBC Olympic など多くの利用実績リアルタイムのクリップ作成– マニフェスト/インデックスファイルの作成のみを行うCopyright © @fullvirtue. All rights reserved. 89
  90. 90. Windows Azure Media Services コンセプト(23/35)ブラウザーだけでも、ここまで出来る!という事例Copyright © @fullvirtue. All rights reserved. 90
  91. 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. 92. Windows Azure Media Services コンセプト(25/35)動画アプリのインフラはとても大変…Copyright © @fullvirtue. All rights reserved. 92ネットワーク/ストレージコンテンツ管理サービスインテグレーション突発的な高負荷ジョブ管理
  93. 93. Windows Azure Media Services コンセプト(26/35)現状のカバーエリアCopyright © @fullvirtue. All rights reserved. 93ネットワーク/ストレージコンテンツ管理サービスインテグレーション突発的な高負荷ジョブ管理
  94. 94. Windows Azure Media Services コンセプト(27/35)とある動画配信インフラ…Copyright © @fullvirtue. All rights reserved. 94
  95. 95. Windows Azure Media Services コンセプト(28/35)動画配信のワークフローCopyright © @fullvirtue. All rights reserved. 95Windows Azure Media Services(APIだけしかない)取り込み Encoding/Transcodingコンテンツ保護ストリーミングサーバーライブ中継 分析 広告差し込み
  96. 96. Windows Azure Media Services コンセプト(29/35)Windows Azure Media Services を取り巻く環境Copyright © @fullvirtue. All rights reserved. 96Media JobScheduling"Build-In"PartnerMediaProcessorsContentProtection AnalyticsIdentityManagementLiveEncoding"Build-On" Media Partners and CustomersSecureMediaIngestPartnerCDNsEncodingOn-DemandOrigin Live OriginAdInsertionLive IngestBlobsLoadBalancer
  97. 97. Windows Azure Media Services コンセプト(30/35)柔軟なカスタマイズMicrosoft または Microsoftパートナー企業のアプリケーションを自由に選択Copyright © @fullvirtue. All rights reserved. 97
  98. 98. Windows Azure Media Services コンセプト(31/35)パートナーエコシステムCopyright © @fullvirtue. All rights reserved. 98IngestEncoding/TranscodingContentProtectionOrigin &CDNISV
  99. 99. Windows Azure Media Services コンセプト(32/35)クラウドを活用した最適な動画配信Copyright © @fullvirtue. All rights reserved. 99権利所有読み取りアクセス権付与読み取りアクセス権付与コピー時間が”0”バックアップ不要CRMのスタート地点
  100. 100. Windows Azure Media Services コンセプト(33/35)自前で環境を用意する必要がなくなるCopyright © @fullvirtue. All rights reserved. 100圧倒的なコンピューター処理能力が容易に必要最低限のハードウェアワンソースマルチユース
  101. 101. Windows Azure Media Services コンセプト(34/35)料金プランCopyright © @fullvirtue. All rights reserved. 101MediaJobScheduling"Build-In"PartnerMediaProcessorsContentProtection"Build-On" Media Partners and CustomersSecureMediaIngestPartnerCDNsOn-DemandOriginパートナー様が決定Encoding処理データ量 /月料金 (GB)最初の5TB ¥165.255 – 15 TB ¥132.8715 - 30 TB ¥107.1330 – 50 TB ¥84.71100TB 以上 要ご相談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.089,000TB超 ご相談 ご相談量 / 月 (GB)最初の10TB ¥15.78-40TB ¥11.63-100TB ¥9.97-350TB ¥8.31-524TB ¥6.65-4096TB ¥5.825,120TB超 お問い合わせ量 / 月 (GB)最初の10TB ¥15.78-40TB ¥12.46-100TB ¥10.80-350TB ¥9.97500TB超 お問い合わせ料金 (Unit /月)¥16,524.87料金 (Unit / 月)¥8,220.92共有ユニット 占有ユニット 占有ユニット (のみ)
  102. 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)
  103. 103. まとめCopyright © @fullvirtue. All rights reserved. 103
  104. 104. Copyright © @fullvirtue. All rights reserved.今日お話したこと(1/1)Windows Azure 管理ポータルでの配信手順Windows Azure Media Services 開発環境の準備Windows Azure Media Services APIを使った配信手順Windows Azure Media Services コンセプトまとめ104
  105. 105. Copyright © @fullvirtue. All rights reserved. 105ご静聴ありがとうございました。

×