105
<初級> Windows Azure Media Services を活用したマルチデバイスへの動画配信 2013年05月11日(土)15:00-15:50 Community Open Day 2013 東京会場 せき@fullvirtue 1 Copyright © @fullvirtue. All rights reserved.

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

Embed Size (px)

DESCRIPTION

 

Citation preview

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

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

2013年05月11日(土)15:00-15:50

Community Open Day 2013 東京会場

せき@fullvirtue

1 Copyright © @fullvirtue. All rights reserved.

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

はじめに

セッション概要(告知文)

Windows Azure Media Services とは、 ビデオの作成、管理、およびユーザーへの配信をだれでも簡単に 利用できるようにした機能で、Windows Azure の中でも非常に 注目を集めています。

Windows Azure Media Services を使ったサービスを開発した 経験から、開発方法や Tips を、デモを交えてお届けいたします。

Copyright © @fullvirtue. All rights reserved. 2

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

はじめに

本セッションのゴール

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

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

Copyright © @fullvirtue. All rights reserved.

今日のアジェンダ(1/1)

Windows Azure 管理ポータルでの配信手順

Windows Azure Media Services 開発環境の準備

Windows Azure Media Services APIを使った配信手順

Windows Azure Media Services コンセプト

まとめ

4

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

おことわり(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

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

WINDOWS AZURE 管理ポータルでの配信手順

Copyright © @fullvirtue. All rights reserved. 6

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

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

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

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

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

Windows Azure 管理ポータルでの配信手順(3/26)

2. Windows Azure Media Services アカウント作成

Windows Azure 管理ポータルより以下を選択 [新規]-[アプリ サービス]-[メディアサービス]-[簡易作成]

Copyright © @fullvirtue. All rights reserved. 9

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

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

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

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

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

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

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

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

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

Windows Azure Media Services 開発環境の準備(8/26)

3. 動画ファイルのご用意 [ご参考]

– 動画のファイルをシステムの管理下に置く事を 「インジェスト」と呼びます

» Windows Azure はクラウド上にあるため、多くのシナリオでは クラウドへのファイルのアップロードとなります

– Windows Azure メディア サービスの内部では、 動画のファイルは「アセット」という単位で管理されています

» インジェストを行う際には、空のアセットを作成し、そこに「アセット ファイル」を追加していく作業となります

» アセット ファイルは実ファイルそのものです

» ストリーミングの方式に由来し、複数のファイルが必要となります

Copyright © @fullvirtue. All rights reserved. 14

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

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

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

Windows Azure Media Services 開発環境の準備(10/26)

3. 動画ファイルのご用意 [ご参考]

– Smooth Streaming を実施する際の動画ファイル

» .ismv が動画ファイルそのもの

» HTML5 の VIDEO タグでは執筆時点では MP4 ファイルのプログレッシブ ダウンロードでしか配信が出来ないため、このような複数のビット レートのファイルは作成されません

Copyright © @fullvirtue. All rights reserved. 16

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

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>

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

Windows Azure 管理ポータルでの配信手順(12/26)

Windows Azure 管理ポータルでの配信手順

1. Ingest:ファイルのアップロード

– 動画のファイルをシステムに取り込む(管理下に置く)

2. Process:エンコード(正確にはトランスコード)

– Windows Azure 管理ポータルの画面は「エンコード」と記載

[参考:言葉の正確な定義]

» エンコード:アナログ→デジタルの変換を行う

» トランスコード:デジタル→デジタルの変換を行う

Manage:管理

– コンテンツの管理

3. Delivery:配信

– ダウンロード、ストリーミング等にて、動画の配信を行う

Copyright © @fullvirtue. All rights reserved. 18

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

Windows Azure 管理ポータルでの配信手順(13/26)

Windows Azure 管理ポータルでの配信手順

Copyright © @fullvirtue. All rights reserved. 19

Com

pute

Sto

rage

Windows Azure Media Services

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

Windows Azure 管理ポータルでの配信手順(14/26)

1. Ingest:ファイルのアップロード

Windows Azure 管理ポータルの、作成された Windows Azure Media Servicesから [コンテンツ] タブに移動します

Copyright © @fullvirtue. All rights reserved. 20

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

Windows Azure 管理ポータルでの配信手順(15/26)

1. Ingest:ファイルのアップロード

[アップロード] をクリックして、ファイル アップロードの画面を表示させます

[ローカルから] または [ストレージから(Windows Azure Blob Storage)] からファイルを選択し、決定するとアップロードを 開始します

Copyright © @fullvirtue. All rights reserved. 21

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

Windows Azure 管理ポータルでの配信手順(16/26)

1. Ingest:ファイルのアップロード

アップロードが完了すると、[サイズ] にファイルサイズが表示されます

Copyright © @fullvirtue. All rights reserved. 22

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

Windows Azure 管理ポータルでの配信手順(17/26)

2. Process:エンコード(正確にはトランスコード)

ファイルを選択したまま、管理ポータル下部にあるコマンドから [エンコード] を選択します

Copyright © @fullvirtue. All rights reserved. 23

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

Windows Azure 管理ポータルでの配信手順(18/26)

2. Process:エンコード(正確にはトランスコード)

[PC/Mac での再生] または [HTML5での再生]を実行します

Copyright © @fullvirtue. All rights reserved. 24

[メモ] 実際のエンコードでは、コーデック、画角などの細かい設定が必要です。これらをテンプレートとしてまとめたものを「プリセット」と呼びます。 管理ポータルでは、[主なプリセット]と[詳細なプリセット]から選択可能です。APIを使うと、もっと細かい設定も可能となります。

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

Windows Azure 管理ポータルでの配信手順(19/26)

2. Process:エンコード(正確にはトランスコード)

管理ポータルで [ジョブ] に移動すると、実行中のエンコード処理の状況が確認できます

– 処理の状況は、逐次確認が出来ます

– 処理は、Windows Azure Media Servicesでは「ジョブ」という単位で管理されています

Copyright © @fullvirtue. All rights reserved. 25

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

Windows Azure 管理ポータルでの配信手順(20/26)

2. Process:エンコード(正確にはトランスコード) – [進捗状況] が [Finished] となっていると、エンコード処理が正常に

行われたことになります

– エラーがあった場合は、ジョブを選択し、コマンドの [詳細] から、 エラー内容を確認してください

– 既定では、処理は 1 つずつしか行われません

– 同時に複数のジョブを走らせたい場合は、管理ポータルの [スケール] から、ENCODING のユニット数を増やす必要があります

» こちらはサービスを占有するため、日割りで追加の料金が発生する点をご留意ください。

Copyright © @fullvirtue. All rights reserved. 26

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

Windows Azure 管理ポータルでの配信手順(21/26)

2. Process:エンコード(正確にはトランスコード) – [進捗状況] が [Finished] となっていると、エンコード処理が正常に

行われたことになります

– エラーがあった場合は、ジョブを選択し、コマンドの [詳細] から、 エラー内容を確認してください

– 既定では、処理は 1 つずつしか行われません

– 同時に複数のジョブを走らせたい場合は、管理ポータルの [スケール] から、ENCODING のユニット数を増やす必要があります

» こちらはサービスを占有するため、日割りで追加の料金が発生する点をご留意ください。

Copyright © @fullvirtue. All rights reserved. 27

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

Windows Azure 管理ポータルでの配信手順(22/26)

3. Delivery:配信

発行対象のコンテンツを選択し、画面下部の [発行] を選択します

– 5 ~ 10 秒程度で、配信準備が終わります

– エンコードしただけでは、動画の配信はされません

– 「コンテンツを公開する」という手順を踏みます

– Windows Azure Media Services では高いセキュリティを維持する ため、指示が無い限りコンテンツは外部に出ていきません

Copyright © @fullvirtue. All rights reserved. 28

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

Windows Azure 管理ポータルでの配信手順(23/26)

3. Delivery:配信

発行が完了すると、[発行 URL] が出力されます

– そのままプレイヤーのアプリケーションに設定する URL です

– (未発行)のものは公開されていません

– [発行 URL] の各データを選択すると、クリップ ボードにコピーするアイコンが表示されます

Copyright © @fullvirtue. All rights reserved. 29

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

Windows Azure 管理ポータルでの配信手順(24/26)

3. Delivery:配信

コンテンツを選択して [再生] を選択すると、 発行結果を確認できます

– Windows Azure メディア サービスの管理ポータルには、 Flash と HTML5 のプレイヤーが搭載されているため、 結果をすぐ確認できます

– Windows OS では、iOS用の動画は再生できません

Copyright © @fullvirtue. All rights reserved. 30

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

Windows Azure 管理ポータルでの配信手順(25/26)

[参考]安定した実行・パフォーマンスのための 「占有」型

[スケール] タブ内の [ON-DEMAND STREAMING]や [ENCODING] に割り当てるユニットを増やします

– 反映にある程度時間がかかり、課金額も増えます

Copyright © @fullvirtue. All rights reserved. 31

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

Windows Azure 管理ポータルでの配信手順(26/26)

[参考]再生できなかった場合のトラブルシューティング

IIS上で、MAXビットレートを1,600kbpsにする必要があります

– Azureは1,600に設定されています

再生ができなかったらファイルの詳細でビットレートを確認 してください

ビットレートが大きすぎたら、エンコードでビットレートを 下げてください

Copyright © @fullvirtue. All rights reserved. 32

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

WINDOWS AZURE MEDIA SERVICES 開発環境の準備

Copyright © @fullvirtue. All rights reserved. 33

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

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

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

Windows Azure Media Services 開発環境の準備(2/11)

1. SDKインストール

【.NET の場合】

– NuGetパッケージにて Windows Azure Media Services を追加

Copyright © @fullvirtue. All rights reserved. 35

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

Windows Azure Media Services 開発環境の準備(3/11)

1. SDKインストール

【.NET の場合】

– NuGetパッケージにて Windows Azure Media Services を追加

Copyright © @fullvirtue. All rights reserved. 36

「安定版パッケージのみ」 「名前:降順」 「Media」 で検索すると探しやすいです

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

Windows Azure Media Services 開発環境の準備(4/11)

1. SDKインストール

【.NET の場合】

– 既存の関連モジュールの確認作業が終わった後、[ライセンスの同意] 画面が出てくるので、確認後[同意する]をクリックします

Copyright © @fullvirtue. All rights reserved. 37

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

Windows Azure Media Services 開発環境の準備(5/11)

1. SDKインストール

【.NET の場合】

– インストールが正常に完了するとNuGet パッケージの管理画面の Windows Azure Media Services の右上に 緑色のチェックアイコンが付きます

Copyright © @fullvirtue. All rights reserved. 38

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

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

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

Windows Azure Media Services 開発環境の準備(7/11)

1. SDKインストール

【Java の場合】

– Windows Azure Library for Java の 参照設定 適切なプロジェクトを作成後、プロジェクトの [プロパティー]を選択

Copyright © @fullvirtue. All rights reserved. 40

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

Windows Azure Media Services 開発環境の準備(8/11)

1. SDKインストール

【Java の場合】

– [Java のビルド・パス] – [ライブラリー] – [ライブラリーの追加] を 選択します

Copyright © @fullvirtue. All rights reserved. 41

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

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

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

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

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

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 配布/配信 公開ポリシー

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

WINDOWS AZURE MEDIA SERVICES APIを使った配信手順

Copyright © @fullvirtue. All rights reserved. 45

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

Windows Azure Media Services APIを使った配信手順(1/21)

Windows Azure Media Services APIを使った配信手順

Copyright © @fullvirtue. All rights reserved. 46

Com

pute

Sto

rage

Windows Azure Media Services

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

Windows Azure Media Services APIを使った配信手順(2/21)

コーディングの流れ

Copyright © @fullvirtue. All rights reserved. 47

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

Windows Azure Media Services APIを使った配信手順(3/21)

コーディングの流れ

Copyright © @fullvirtue. All rights reserved. 48

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

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;

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

Windows Azure Media Services APIを使った配信手順(5/21)

Windows Azure Media Services接続

引数になっているメディア サービスのアカウント名、アカウント キーは、Windows Azure 管理ポータルから取得します

Copyright © @fullvirtue. All rights reserved. 50

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

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

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

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

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

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

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

Windows Azure Media Services APIを使った配信手順(9/21)

Manage:管理

Copyright © @fullvirtue. All rights reserved. 54

Asset / Job / AccessPolicy の管理

実際には Windows Azure SQL database 上で管理

LINQ サポート

Ingest

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

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

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

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

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

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

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

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

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

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

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

Windows Azure Media Services APIを使った配信手順(15/21)

2. Process:Windows Azure Media Encoder

Copyright © @fullvirtue. All rights reserved. 60 http://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

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

Windows Azure Media Services APIを使った配信手順(16/21)

2. Process:Windows Azure Media Encoder

Copyright © @fullvirtue. All rights reserved. 61 http://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

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

Windows Azure Media Services APIを使った配信手順(17/21)

2. Process:Windows Azure Media Packager / Encryptor

Copyright © @fullvirtue. All rights reserved. 62 http://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

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

Windows Azure Media Services APIを使った配信手順(18/21)

2. Process – sample code: エンコード

Copyright © @fullvirtue. All rights reserved. 63 http://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

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

Windows Azure Media Services APIを使った配信手順(19/21)

2. Process – sample code: Job 状態確認

Copyright © @fullvirtue. All rights reserved. 64 http://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

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

Windows Azure Media Services APIを使った配信手順(20/21)

3. Delivery:配信

Copyright © @fullvirtue. All rights reserved. 65 http://msdn.microsoft.com/en-us/library/hh973634.aspx

ストリーミング / ダウンロード のオリジンサーバー Locator に Asset 単位で割り当てる 1 つの Asset につき 5つの Locator が上限

AccessPolicyによって、時間単位での公開を設定 アクセス権設定ではない

占有型と共有型は一つのアカウントで同居できない Dynamic Packaging を使う場合は、占有型でのみ対応。 Dynamic Packaging は Smooth Streaming, HLSのみ。

DRM未対応

Ingest

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

Windows Azure Media Services APIを使った配信手順(21/21)

3. Delivery – sample code

Copyright © @fullvirtue. All rights reserved. 66 http://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)"

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

WINDOWS AZURE MEDIA SERVICES コンセプト

Copyright © @fullvirtue. All rights reserved. 67

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

Windows Azure Media Services コンセプト(1/35)

動画配信を取り巻く環境

Copyright © @fullvirtue. All rights reserved. 68

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

コンテンツを どこに届けたいですか?

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

ポケットには iPhone

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

リビングには iPad

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

自宅の机はもちろんWindows PC

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

電子書籍、いよいよ本格化?

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

All in One の新しい形

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

Windows Azure Media Services コンセプト(8/35)

Copyright © @fullvirtue. All rights reserved. 75

99% PC/Mac

NO PLUGIN

PROGRESSIVE DOWNLOAD

ADAPTIVE STREAMING RTSP/RTMP

Web とともに歩んだ動画配信

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

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 Server HTTP Cache

Adaptive bitrate Streaming over HTTP 3Mbps

Streaming Server HTTP Cache

1Mbps

512 kbps

256 kbps

No Live!

配信技術の変遷

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

動画技術は どこへ向かっている?

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

Windows Azure Media Services コンセプト(11/35)

見えてきた次世代技術

Copyright © @fullvirtue. All rights reserved. 78

Creation Consumer Cloud

4K / 8K

MPEG-DASH / CSF

HEVC (H.265)

2nd Screen

Big Data

Tablet

Smart Phone

PC

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

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 ?

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

Windows Azure Media Services コンセプト(13/35)

期待の圧縮技術 HEVC ですが…

Copyright © @fullvirtue. All rights reserved. 80

半分 500 – 1,000倍

ファイルサイズ エンコード時間

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

Windows Azure Media Services コンセプト(14/35)

HTML5

Copyright © @fullvirtue. All rights reserved. 81

<video>

<source src="/foo.mp4" />

<source src="/foo.webm" />

<source src="/foo.ogv" />

</video>

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

Windows Azure Media Services コンセプト(15/35)

HTML5 に不足しているもの

Copyright © @fullvirtue. All rights reserved. 82

Live 配信システム ネットワーク

ストリーミング

DRM

コンテンツ保護

MPEG-DASH CENC

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

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

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

Windows Azure Media Services コンセプト(17/35)

動画ファイルの構造

Copyright © @fullvirtue. All rights reserved. 84

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

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

(R

eserv

ed)

Source Multi

Bitrate MP4

Encode

Smooth

HLS

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

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

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

Windows Azure Media Services コンセプト(20/35)

さらにリッチな体験を(日本では閲覧不可)

Copyright © @fullvirtue. All rights reserved. 87

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

Windows Azure Media Services コンセプト(21/35)

Microsoft MIX 2011 Ustream視聴者数を可視化した結果

Copyright © @fullvirtue. All rights reserved. 88

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

Windows Azure Media Services コンセプト(22/35)

Microsoft Media Platform: Video Editor

Web ベースのラフカット編集ツール

オープンソース

NBC Olympic など多くの利用実績

リアルタイムのクリップ作成

– マニフェスト/インデックスファイルの作成のみを行う

Copyright © @fullvirtue. All rights reserved. 89

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

Windows Azure Media Services コンセプト(23/35)

ブラウザーだけでも、ここまで出来る!という事例

Copyright © @fullvirtue. All rights reserved. 90

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

Windows Azure Media Services コンセプト(24/35)

スマートフォンにおけるネイティブアプリの現状

Copyright © @fullvirtue. All rights reserved. 91

•固定的に設置された広告枠と異なり、ユーザー行動

の主眼であるコンテンツと同様の表示形式を持った

広告であること

ユーザー主体

•編集コンテンツに対し、その品質や表示トーンが一

致する、もしくは近似するコンテンツ性の高い広告

であること

融合

•ソーシャルやモバイルなど、読者のメディア接点の

変化や多様性に最適化した広告形式であること

マルチデザイン

•テクノロジーと人間の編集力が関与する余地のある

広告形式であること

“おもてなし”

• 雑多なノイズが抑制され、お目当

てのコンテンツに没頭できる

読者

• 読者が嫌うものとしての広告から、

コンテンツ同様の精読率で接して

くれる広告が生まれる

広告主

• 読者とのエンゲージメント強化を

第一義に広告を制作できる

メディア運営者の視点から

定義 メリット

Source: http://mediaprobe.co.jp/blog/digitalmedia/2012/12/17/2838/

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

Windows Azure Media Services コンセプト(25/35)

動画アプリのインフラはとても大変…

Copyright © @fullvirtue. All rights reserved. 92

ネットワーク/ストレージ

コンテンツ管理 サービス インテグレーション 突発的な

高負荷 ジョブ 管理

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

Windows Azure Media Services コンセプト(26/35)

現状のカバーエリア

Copyright © @fullvirtue. All rights reserved. 93

ネットワーク/ストレージ

コンテンツ管理 サービス インテグレーション 突発的な

高負荷 ジョブ 管理

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

Windows Azure Media Services コンセプト(27/35)

とある動画配信インフラ…

Copyright © @fullvirtue. All rights reserved. 94

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

Windows Azure Media Services コンセプト(28/35)

動画配信のワークフロー

Copyright © @fullvirtue. All rights reserved. 95

Windows Azure Media Services (APIだけしかない)

取り込み Encoding/ Transcoding

コンテンツ 保護

ストリーミングサーバー

ライブ中継 分析 広告差し込み

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

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 Management

Live Encoding

"Build-On" Media Partners and Customers

Secure Media Ingest

Part

ner C

DN

s

Encoding

On-Demand Origin Live Origin

Ad Insertion Live Ingest

Blobs Load Balancer

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

Windows Azure Media Services コンセプト(30/35)

柔軟なカスタマイズ

Microsoft または Microsoftパートナー企業の アプリケーションを自由に選択

Copyright © @fullvirtue. All rights reserved. 97

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

Windows Azure Media Services コンセプト(31/35)

パートナーエコシステム

Copyright © @fullvirtue. All rights reserved. 98

Ingest Encoding/

Transcoding Content

Protection Origin &

CDN

ISV

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

Windows Azure Media Services コンセプト(32/35)

クラウドを活用した最適な動画配信

Copyright © @fullvirtue. All rights reserved. 99

権利所有

読み取り アクセス権付与

読み取り アクセス権付与

コピー時間が”0”

バックアップ 不要

CRMのスタート地点

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

Windows Azure Media Services コンセプト(33/35)

自前で環境を用意する必要がなくなる

Copyright © @fullvirtue. All rights reserved. 100

圧倒的な コンピューター処理能力が容易に

必要最低限のハードウェア

ワンソース マルチユース

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

Windows Azure Media Services コンセプト(34/35)

料金プラン

Copyright © @fullvirtue. All rights reserved. 101

Media Job Scheduling

"Build-In" Partner Media Processors

Content Protection

"Build-On" Media Partners and Customers

Secure Media Ingest

Partner C

DNs

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

共有ユニット 占有ユニット 占有ユニット (のみ)

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

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)

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

まとめ

Copyright © @fullvirtue. All rights reserved. 103

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

Copyright © @fullvirtue. All rights reserved.

今日お話したこと(1/1)

Windows Azure 管理ポータルでの配信手順

Windows Azure Media Services 開発環境の準備

Windows Azure Media Services APIを使った配信手順

Windows Azure Media Services コンセプト

まとめ

104

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

Copyright © @fullvirtue. All rights reserved. 105

ご静聴ありがとうございました。