windows azure bootcamp メディアサービス編

37
Windows Azure BootCamp JP ~メディアサービス編~ 2013年4月27日 #jazug 割と普通 @normalian

Upload: normalian

Post on 12-Nov-2014

1.628 views

Category:

Technology


2 download

DESCRIPTION

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

TRANSCRIPT

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

Windows Azure BootCamp JP~メディアサービス編~

2013年4月27日#jazug

割と普通@normalian

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

自己紹介

• 割と普通 ( @normalian )

– 普段は社蓄(キリッ

– Windows Azure と ASP.NET とか得意です

– JavaEE5 とか JavaEE6 とかも得意です

– JAZUG のコミュニティメンバになって 2年がたちました

– Microsoft MVP for Windows Azure 2010~

2

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

メディアサービスの全体像

3

http://www.microsoft.com/en-us/download/details.aspx?id=38195

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

TrainingKit にない…(´;ω;`)ブワッ

4

いっちがない…

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

コマンドラインツール にない… (´;ω;`)ブワッ

5

いっちがない…

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

6

この

はてしなく遠い

動画配信坂をよ・・・

オレは

ようやく

のぼりはじめた

ばかりだからな

未完

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

だが既に GA だ!

7

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

8

はじめに

メディアサービスとは

管理ポータルからの利用

ソースコードからの利用

まとめ

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

9

動画配信にまつわるエトセトラ

スマートフォン タブレット

PC

クライアント側 サーバ側

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

10

動画配信にまつわるエトセトラ

スマートフォン タブレット

PC

クライアント側 サーバ側

まずはクライアント側で

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

○ (一応)マルチデバイスで利用可能○ JavaScript プラグインが多々× ブラウザ毎に対応 codec が異なる× 暗号化が厳しい

○ ストリーミング再生/凝った再生系が対応可能(※注)

× iPhone/iPad で利用できず、Android 側も微妙

○ デバイスの隠された機能もフル活用× デバイス毎に頑張って実装が必要

11

クライアント側のおさらい 1/2

RIA

Native

機能低汎用高

機能高汎用低 ※注 HTTP Live Streaming の場合 HTML5 でも可能

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

クライアント側のおさらい 2/2

ブラウザ MP4(H.264) WebM Ogg

IE9 以降 ○ △

Firefox △ ○ ○

Chrome ○ ○ ○

Safari ○

Opera ○ ○

12

• HTML5 での動画再生– ブラウザ毎で対応 Codec がバラバラ– MP4 が良さげだが PC 向けだけなら RIA ?

△ …プラグインを別途インストールで再生可能

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

13

動画配信にまつわるエトセトラ

スマートフォン タブレット

PC

クライアント側 サーバ側

次はサーバ側で

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

14

動画配信サーバの課題

• 動画ファイルが重すぎ

– 一つのファイルが大きすぎて格納しきれない

– マルチデバイス向けに複数エンコードも…

• 配信サーバに負荷がかかりまくり

– 動画ファイルを大量に配信すると負荷が…

– エンコードの CPU 負荷が大きすぎ

• 通信回線が遅い

– 細い回線だとつらい

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

15

メディアサービス+αで解決!

• 動画ファイルが重すぎ

– クラウドストレージがあるよ!

※アップロードは無料ですし(/ω\)イヤン

• 配信サーバに負荷がかかりまくり

– クラウドの CPU リソースを使えばいいよ!

• 通信回線が遅い

– 容量小さめの動画エンコード+キャッシュ!

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

16

サーバ側の課題をクラウドで解決!

①配信制御&エンコーディング機能

– Windows Azure メディアサービス

• Silverlight + IIS Smooth Streaming でストリーム再生

② コンテンツキャッシュ機能

– ストレージサービス( BLOB )

– Windows Azure Contents Delivery Network

※注 メディアサービスはクライアント再生側の機能ではないのです

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

配信制御&エンコーディング機能

動画エンコード

iPhone 向け Android向け

• 色々なデバイスに対する動画が配信可能!

PC 向け

動画配信の制御

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

18

はじめに

メディアサービスとは

管理ポータルからの利用

ソースコードからの利用

まとめ

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

19

まずは弄ってみよう

管理ポータルで demo ...

• Windows Azure メディアサービス

① クラウドストレージに動画を格納

② クラウド上で動画をエンコード

③ エンコードした動画を公開&配信

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

管理ポータルからのアップロード

• ローカル or BLOB から動画をアップロード可能

20

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

管理ポータルでエンコード 1/2

• ローカル or BLOB から動画をアップロード可能

21

色々とエンコード対応可能

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

管理ポータルでエンコード 2/2

• [ジョブ] タブからエンコードの状態を確認

22

ジョブの状態

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

管理ポータルで配信

• [発行] ボタンで配信

23

• 発行 URL はストリーミング配信か否かで異なる

• https://<ストレージサービスアカウント名>.blob.core.windows.net/asset-<中略>

• http://<メディアサービスアカウント名>.origin.mediaservices.windows.net/<中略>.ism/Manifest

動画を選らんで [発行]ボタンを押下

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

管理ポータルでスケールアウト

• 「ストリーム配信」と「エンコード」のリソースを制御

24

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

25

はじめに

メディアサービスとは

管理ポータルからの利用

ソースコードからの利用

まとめ

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

26

ライブラリは NuGet で取得

• [NuGet パッケージ管理] から検索

「Media Service」で検索

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

27

エンコーディングの実装

ソースコードで demo ...

① クラウドストレージに動画を格納

② クラウド上で動画をエンコード

③ エンコードした動画を公開&配信※REST API + Java SDK も公開

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

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);

ストレージ暗号化もできるが、デバッグ時にはお勧めできない

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

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

プリセット文字列のみ利用可

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

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 ではここが異なる

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

地味に管理ポータル凄い

31

コピペ可能なスニペットが取得可能

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

32

はじめに

メディアサービスとは

管理ポータルからの利用

ソースコードからの利用

まとめ

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

33

まとめ

• そもそものターゲットを決めましょう

– マルチデバイスし過ぎは即死の元

• 高度な再生を求めなければ HTML5 で

– ストリーミング再生とかいるなら RIA で再生

• クラウドを利用して手間を減らそう

– 大きいファイル、一時的に大き目な CPU リソースはクラウドが得意

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

34

参考情報

• Building Applications with the Media Services SDK 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

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

参考情報( HTML5 向け)

• JavaScript プラグイン多め

35

VideoJsPlayer Framework

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

参考情報( RIA向け )

36

• RIA 向けの http://smf.codeplex.com/

<Core:SMFPlayer Name="SMFPlayer"><Core:SMFPlayer.Playlist><Media:PlaylistItem

DeliveryMethod=“AdaptiveStreaming”MediaSource=“http://<XXX>.origin.mediaservices.windows.net/bc13bfec-c83c-4307-8447-64f959bb9222/AGDRec.ism/Manifest"/>

</Core:SMFPlayer.Playlist></Core:SMFPlayer>

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

37

Q&A