Windows Azure BootCamp JP~メディアサービス編~2013年4月27日#jazug割と普通@normalian
自己紹介• 割と普通 ( @normalian )– 普段は社蓄(キリッ– Windows Azure と ASP.NET とか得意です– JavaEE5 とか JavaEE6 とかも得意です– JAZUG のコミュニティメンバになって 2年が...
メディアサービスの全体像3http://www.microsoft.com/en-us/download/details.aspx?id=38195
TrainingKit にない…(´;ω;`)ブワッ4いっちがない…
コマンドラインツール にない… (´;ω;`)ブワッ5いっちがない…
6このはてしなく遠い動画配信坂をよ・・・オレはようやくのぼりはじめたばかりだからな未完
だが既に GA だ!7
8はじめにメディアサービスとは管理ポータルからの利用ソースコードからの利用まとめ
9動画配信にまつわるエトセトラスマートフォン タブレットPCクライアント側 サーバ側
10動画配信にまつわるエトセトラスマートフォン タブレットPCクライアント側 サーバ側まずはクライアント側で
○ (一応)マルチデバイスで利用可能○ JavaScript プラグインが多々× ブラウザ毎に対応 codec が異なる× 暗号化が厳しい○ ストリーミング再生/凝った再生系が対応可能(※注)× iPhone/iPad で利用できず、Andro...
クライアント側のおさらい 2/2ブラウザ MP4(H.264) WebM OggIE9 以降 ○ △Firefox △ ○ ○Chrome ○ ○ ○Safari ○Opera ○ ○12• HTML5 での動画再生– ブラウザ毎で対応 Cod...
13動画配信にまつわるエトセトラスマートフォン タブレットPCクライアント側 サーバ側次はサーバ側で
14動画配信サーバの課題• 動画ファイルが重すぎ– 一つのファイルが大きすぎて格納しきれない– マルチデバイス向けに複数エンコードも…• 配信サーバに負荷がかかりまくり– 動画ファイルを大量に配信すると負荷が…– エンコードの CPU 負荷が大...
15メディアサービス+αで解決!• 動画ファイルが重すぎ– クラウドストレージがあるよ!※アップロードは無料ですし(/ω\)イヤン• 配信サーバに負荷がかかりまくり– クラウドの CPU リソースを使えばいいよ!• 通信回線が遅い– 容量小さめ...
16サーバ側の課題をクラウドで解決!① 配信制御&エンコーディング機能– Windows Azure メディアサービス• Silverlight + IIS Smooth Streaming でストリーム再生② コンテンツキャッシュ機能– スト...
配信制御&エンコーディング機能動画エンコードiPhone 向け Android向け• 色々なデバイスに対する動画が配信可能!PC 向け動画配信の制御
18はじめにメディアサービスとは管理ポータルからの利用ソースコードからの利用まとめ
19まずは弄ってみよう管理ポータルで demo ...• Windows Azure メディアサービス① クラウドストレージに動画を格納② クラウド上で動画をエンコード③ エンコードした動画を公開&配信
管理ポータルからのアップロード• ローカル or BLOB から動画をアップロード可能20
管理ポータルでエンコード 1/2• ローカル or BLOB から動画をアップロード可能21色々とエンコード対応可能
管理ポータルでエンコード 2/2• [ジョブ] タブからエンコードの状態を確認22ジョブの状態
管理ポータルで配信• [発行] ボタンで配信23• 発行 URL はストリーミング配信か否かで異なる• https://<ストレージサービスアカウント名>.blob.core.windows.net/asset-<中略>• http://<メデ...
管理ポータルでスケールアウト• 「ストリーム配信」と「エンコード」のリソースを制御24
25はじめにメディアサービスとは管理ポータルからの利用ソースコードからの利用まとめ
26ライブラリは NuGet で取得• [NuGet パッケージ管理] から検索「Media Service」で検索
27エンコーディングの実装ソースコードで demo ...① クラウドストレージに動画を格納② クラウド上で動画をエンコード③ エンコードした動画を公開&配信※REST API + Java SDK も公開
28①クラウドストレージへの格納//Media Service 制御用のコンテキスト作成var context =new CloudMediaContext(_accountName, _accountKey);// 動画格納用のインスタンスを...
29②クラウドでのエンコードCloudMediaContext context = <略>;var asset = <略>;//ジョブの作成と実行var job = context.Jobs.Create("Encoding Job");var...
30③動画の公開&配信CloudMediaContext context = <略>;var asset = <略>;// 許可属性を作成IAccessPolicy accessPolicy =context.AccessPolicies.Cr...
地味に管理ポータル凄い31コピペ可能なスニペットが取得可能
32はじめにメディアサービスとは管理ポータルからの利用ソースコードからの利用まとめ
33まとめ• そもそものターゲットを決めましょう– マルチデバイスし過ぎは即死の元• 高度な再生を求めなければ HTML5 で– ストリーミング再生とかいるなら RIA で再生• クラウドを利用して手間を減らそう– 大きいファイル、一時的に大き...
34参考情報• Building Applications with the Media ServicesSDK for .NET– http://msdn.microsoft.com/en-us/library/windowsazure/hh...
参考情報( HTML5 向け)• JavaScript プラグイン多め35VideoJsPlayer Framework
参考情報( RIA向け )36• RIA 向けの http://smf.codeplex.com/<Core:SMFPlayer Name="SMFPlayer"><Core:SMFPlayer.Playlist><Media:Playlist...
37Q&A
Upcoming SlideShare
Loading in …5
×

Windows Azure Bootcamp メディアサービス編

1,382
-1

Published on

2013年4月28日に行われた Windows Azure BootCamp のメディアサービス編です。

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,382
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
10
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Windows Azure Bootcamp メディアサービス編

  1. 1. Windows Azure BootCamp JP~メディアサービス編~2013年4月27日#jazug割と普通@normalian
  2. 2. 自己紹介• 割と普通 ( @normalian )– 普段は社蓄(キリッ– Windows Azure と ASP.NET とか得意です– JavaEE5 とか JavaEE6 とかも得意です– JAZUG のコミュニティメンバになって 2年がたちました– Microsoft MVP for Windows Azure 2010~2
  3. 3. メディアサービスの全体像3http://www.microsoft.com/en-us/download/details.aspx?id=38195
  4. 4. TrainingKit にない…(´;ω;`)ブワッ4いっちがない…
  5. 5. コマンドラインツール にない… (´;ω;`)ブワッ5いっちがない…
  6. 6. 6このはてしなく遠い動画配信坂をよ・・・オレはようやくのぼりはじめたばかりだからな未完
  7. 7. だが既に GA だ!7
  8. 8. 8はじめにメディアサービスとは管理ポータルからの利用ソースコードからの利用まとめ
  9. 9. 9動画配信にまつわるエトセトラスマートフォン タブレットPCクライアント側 サーバ側
  10. 10. 10動画配信にまつわるエトセトラスマートフォン タブレットPCクライアント側 サーバ側まずはクライアント側で
  11. 11. ○ (一応)マルチデバイスで利用可能○ JavaScript プラグインが多々× ブラウザ毎に対応 codec が異なる× 暗号化が厳しい○ ストリーミング再生/凝った再生系が対応可能(※注)× iPhone/iPad で利用できず、Android 側も微妙○ デバイスの隠された機能もフル活用× デバイス毎に頑張って実装が必要11クライアント側のおさらい 1/2RIANative機能低汎用高機能高汎用低 ※注 HTTP Live Streaming の場合 HTML5 でも可能
  12. 12. クライアント側のおさらい 2/2ブラウザ MP4(H.264) WebM OggIE9 以降 ○ △Firefox △ ○ ○Chrome ○ ○ ○Safari ○Opera ○ ○12• HTML5 での動画再生– ブラウザ毎で対応 Codec がバラバラ– MP4 が良さげだが PC 向けだけなら RIA ?△ …プラグインを別途インストールで再生可能
  13. 13. 13動画配信にまつわるエトセトラスマートフォン タブレットPCクライアント側 サーバ側次はサーバ側で
  14. 14. 14動画配信サーバの課題• 動画ファイルが重すぎ– 一つのファイルが大きすぎて格納しきれない– マルチデバイス向けに複数エンコードも…• 配信サーバに負荷がかかりまくり– 動画ファイルを大量に配信すると負荷が…– エンコードの CPU 負荷が大きすぎ• 通信回線が遅い– 細い回線だとつらい
  15. 15. 15メディアサービス+αで解決!• 動画ファイルが重すぎ– クラウドストレージがあるよ!※アップロードは無料ですし(/ω\)イヤン• 配信サーバに負荷がかかりまくり– クラウドの CPU リソースを使えばいいよ!• 通信回線が遅い– 容量小さめの動画エンコード+キャッシュ!
  16. 16. 16サーバ側の課題をクラウドで解決!① 配信制御&エンコーディング機能– Windows Azure メディアサービス• Silverlight + IIS Smooth Streaming でストリーム再生② コンテンツキャッシュ機能– ストレージサービス( BLOB )– Windows Azure Contents Delivery Network※注 メディアサービスはクライアント再生側の機能ではないのです
  17. 17. 配信制御&エンコーディング機能動画エンコードiPhone 向け Android向け• 色々なデバイスに対する動画が配信可能!PC 向け動画配信の制御
  18. 18. 18はじめにメディアサービスとは管理ポータルからの利用ソースコードからの利用まとめ
  19. 19. 19まずは弄ってみよう管理ポータルで demo ...• Windows Azure メディアサービス① クラウドストレージに動画を格納② クラウド上で動画をエンコード③ エンコードした動画を公開&配信
  20. 20. 管理ポータルからのアップロード• ローカル or BLOB から動画をアップロード可能20
  21. 21. 管理ポータルでエンコード 1/2• ローカル or BLOB から動画をアップロード可能21色々とエンコード対応可能
  22. 22. 管理ポータルでエンコード 2/2• [ジョブ] タブからエンコードの状態を確認22ジョブの状態
  23. 23. 管理ポータルで配信• [発行] ボタンで配信23• 発行 URL はストリーミング配信か否かで異なる• https://<ストレージサービスアカウント名>.blob.core.windows.net/asset-<中略>• http://<メディアサービスアカウント名>.origin.mediaservices.windows.net/<中略>.ism/Manifest動画を選らんで [発行]ボタンを押下
  24. 24. 管理ポータルでスケールアウト• 「ストリーム配信」と「エンコード」のリソースを制御24
  25. 25. 25はじめにメディアサービスとは管理ポータルからの利用ソースコードからの利用まとめ
  26. 26. 26ライブラリは NuGet で取得• [NuGet パッケージ管理] から検索「Media Service」で検索
  27. 27. 27エンコーディングの実装ソースコードで demo ...① クラウドストレージに動画を格納② クラウド上で動画をエンコード③ エンコードした動画を公開&配信※REST API + Java SDK も公開
  28. 28. 28①クラウドストレージへの格納//Media Service 制御用のコンテキスト作成var context =new CloudMediaContext(_accountName, _accountKey);// 動画格納用のインスタンスを作成var asset = context.Assets.Create("某店舗動画",AssetCreationOptions.None);// 実ファイルを取得var assetFile =asset.AssetFiles.Create(Path.GetFileName(filePath));// 動画のアップロードassetFile.Upload(filePath);ストレージ暗号化もできるが、デバッグ時にはお勧めできない
  29. 29. 29②クラウドでのエンコードCloudMediaContext context = <略>;var asset = <略>;//ジョブの作成と実行var job = context.Jobs.Create("Encoding Job");var task = job.Tasks.AddNew("Encoding Task",GetMediaProcessor("Windows Azure Media Encoder",context),"H264 Broadband SD 4x3",TaskOptions.None);task.InputAssets.Add(asset);task.OutputAssets.AddNew(“動画 – エンコード版",AssetCreationOptions.None);job.Submit();※参考 http://msdn.microsoft.com/en-us/library/windowsazure/jj129582.aspxプリセット文字列のみ利用可
  30. 30. 30③動画の公開&配信CloudMediaContext context = <略>;var asset = <略>;// 許可属性を作成IAccessPolicy accessPolicy =context.AccessPolicies.Create("30日読みとり許可",TimeSpan.FromDays(30),AccessPermissions.Read);// 配置情報の付与ILocator locator =context.Locators.CreateLocator(LocatorType.Sas,asset,accessPolicy,DateTime.UtcNow.AddDays(-1));ストリーミング再生用のlocator ではここが異なる
  31. 31. 地味に管理ポータル凄い31コピペ可能なスニペットが取得可能
  32. 32. 32はじめにメディアサービスとは管理ポータルからの利用ソースコードからの利用まとめ
  33. 33. 33まとめ• そもそものターゲットを決めましょう– マルチデバイスし過ぎは即死の元• 高度な再生を求めなければ HTML5 で– ストリーミング再生とかいるなら RIA で再生• クラウドを利用して手間を減らそう– 大きいファイル、一時的に大き目な CPU リソースはクラウドが得意
  34. 34. 34参考情報• Building Applications with the Media ServicesSDK for .NET– http://msdn.microsoft.com/en-us/library/windowsazure/hh973613.aspx• はじめての Windows Azure メディア サービス– http://msdn.microsoft.com/ja-jp/windowsazure/dn133199.aspx• Windows Azure Media Services Poster– http://www.microsoft.com/en-us/download/details.aspx?id=38195
  35. 35. 参考情報( HTML5 向け)• JavaScript プラグイン多め35VideoJsPlayer Framework
  36. 36. 参考情報( RIA向け )36• RIA 向けの http://smf.codeplex.com/<Core:SMFPlayer Name="SMFPlayer"><Core:SMFPlayer.Playlist><Media:PlaylistItemDeliveryMethod=“AdaptiveStreaming”MediaSource=“http://<XXX>.origin.mediaservices.windows.net/bc13bfec-c83c-4307-8447-64f959bb9222/AGDRec.ism/Manifest"/></Core:SMFPlayer.Playlist></Core:SMFPlayer>
  37. 37. 37Q&A
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×