Download - Windows Azure Bootcamp メディアサービス編
Windows Azure BootCamp JP~メディアサービス編~
2013年4月27日#jazug
割と普通@normalian
自己紹介
• 割と普通 ( @normalian )
– 普段は社蓄(キリッ
– Windows Azure と ASP.NET とか得意です
– JavaEE5 とか JavaEE6 とかも得意です
– JAZUG のコミュニティメンバになって 2年がたちました
– Microsoft MVP for Windows Azure 2010~
2
メディアサービスの全体像
3
http://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 で利用できず、Android 側も微妙
○ デバイスの隠された機能もフル活用× デバイス毎に頑張って実装が必要
11
クライアント側のおさらい 1/2
RIA
Native
機能低汎用高
機能高汎用低 ※注 HTTP Live Streaming の場合 HTML5 でも可能
クライアント側のおさらい 2/2
ブラウザ MP4(H.264) WebM Ogg
IE9 以降 ○ △
Firefox △ ○ ○
Chrome ○ ○ ○
Safari ○
Opera ○ ○
12
• HTML5 での動画再生– ブラウザ毎で対応 Codec がバラバラ– MP4 が良さげだが PC 向けだけなら RIA ?
△ …プラグインを別途インストールで再生可能
13
動画配信にまつわるエトセトラ
スマートフォン タブレット
PC
クライアント側 サーバ側
次はサーバ側で
14
動画配信サーバの課題
• 動画ファイルが重すぎ
– 一つのファイルが大きすぎて格納しきれない
– マルチデバイス向けに複数エンコードも…
• 配信サーバに負荷がかかりまくり
– 動画ファイルを大量に配信すると負荷が…
– エンコードの CPU 負荷が大きすぎ
• 通信回線が遅い
– 細い回線だとつらい
15
メディアサービス+αで解決!
• 動画ファイルが重すぎ
– クラウドストレージがあるよ!
※アップロードは無料ですし(/ω\)イヤン
• 配信サーバに負荷がかかりまくり
– クラウドの CPU リソースを使えばいいよ!
• 通信回線が遅い
– 容量小さめの動画エンコード+キャッシュ!
16
サーバ側の課題をクラウドで解決!
①配信制御&エンコーディング機能
– Windows Azure メディアサービス
• Silverlight + IIS Smooth Streaming でストリーム再生
② コンテンツキャッシュ機能
– ストレージサービス( BLOB )
– Windows Azure Contents Delivery Network
※注 メディアサービスはクライアント再生側の機能ではないのです
配信制御&エンコーディング機能
動画エンコード
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://<メディアサービスアカウント名>.origin.mediaservices.windows.net/<中略>.ism/Manifest
動画を選らんで [発行]ボタンを押下
管理ポータルでスケールアウト
• 「ストリーム配信」と「エンコード」のリソースを制御
24
25
はじめに
メディアサービスとは
管理ポータルからの利用
ソースコードからの利用
まとめ
26
ライブラリは NuGet で取得
• [NuGet パッケージ管理] から検索
「Media Service」で検索
27
エンコーディングの実装
ソースコードで demo ...
① クラウドストレージに動画を格納
② クラウド上で動画をエンコード
③ エンコードした動画を公開&配信※REST API + Java SDK も公開
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
②クラウドでのエンコード
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
③動画の公開&配信
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
コピペ可能なスニペットが取得可能
32
はじめに
メディアサービスとは
管理ポータルからの利用
ソースコードからの利用
まとめ
33
まとめ
• そもそものターゲットを決めましょう
– マルチデバイスし過ぎは即死の元
• 高度な再生を求めなければ HTML5 で
– ストリーミング再生とかいるなら RIA で再生
• クラウドを利用して手間を減らそう
– 大きいファイル、一時的に大き目な CPU リソースはクラウドが得意
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
参考情報( HTML5 向け)
• JavaScript プラグイン多め
35
VideoJsPlayer Framework
参考情報( 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>
37
Q&A