ADOBE®   MEDIA SERVER 5.0.3

デベロッパーズガイド


翻訳:株式会社サムライズ

 

注意

Adobe Media Server® バージョン 5についての本ドキュメントは第三者によって翻訳されたものであり、Adobe Systems Incorporated(アドビ システムズ社)は本翻訳物の正確性や完全性を査閲していません。

 

HTTP Dynamic Streaming および HTTP Live Streamingの設定

 

HTTP DynamicStreaming および HTTP Live Streaming の概要

 

HTTP を介したメディアのストリーミング

HTTP経由でコンテンツを配信することを通常「プログレッシブダウンロード」といいます。コンテンツは、サーバーからクライアントに、ファイルの最初から最後まで連続して転送する必要があります。クライアントが前方の場所をシークするには、その場所およびそれより前のすべてのデータがダウンロードされている必要があります。

 

RTMP経由でコンテンツを配信すること「ストリーミングといいますクライアントはサーバー (Adobe Media Server など ) に対するソケット接続を作成し、それを通してコンテンツが連続したストリームで送信されます。クライアントは、転送が済んだデータの量に関係なく、コンテンツ内の任意の点をすぐにシークできます。

Adobe HTTP DynamicStreaming はこれらの方法を組み合わせて、Flash プラットフォームで HTTP ストリーミングを実現します。HTTP Dynamic Streamingは、Flash Player クライアントがファイル全体をダウンロードせずにすぐアクセスできるフラグメントにメディアファイルをパッケージ化しますAdobe HTTP Dynamic Streaming に含まれる複数のコンポーネントが連携してメディアをパッケージ化しHTTP 経由で Flash Player および AIR にストリーミングします。 HTTP Dynamic StreamingマルチビットレートストリーミングDVRおよび Adobe® Flash® Access 保護をサポートします。

 

Adobe Media Server 5 では、Adobe HTTP Dynamic Streaming Apple HTTP Live Streamingのサポートが追加されています同じ HTTP DynamicStreaming ワークフローを使用してライブコンテンツおよびオンデマンドコンテンツをパッケージ化しApple HTTP Live StreamingをサポートするすべてのデバイスにストリーミングしますApple HTTP Live Streamingには、ライブメディアおよびオンデマンドメディアが含まれます。

注意Adobe Media Server は、HTTP Live Streaming 用の Timed Metadata の追加をサポートしていません。

 

HTTP Dynamic Streaming のコンポーネント

Adobe HTTP Streaming ソリューションには次のコンポーネントが含まれます。

Live PackagerLive Packagerrootinstall/applications/livepkgr にインストールされる Adobe Media Server アプリケーションですサーバーが RTMP 経由でライブストリームを取り込みLive Packagerがそれをリアルタイムで F4F ファイルと MPEG-2 TS ファイルに変換します。

F4F HTTP Module  ファイルを Flash Player および AIR に配信する Apache HTTP Server モジュール。F4F ModuleHTTP Origin Module とも呼ばれる)は、ライブコンテンツを配信します。また、File Packagerツールを使用してオフラインでパッケージ化されたオンデマンドのコンテンツも配信します。

 

F4F HTTP Module は、Flash Media Server 4 以降と共に rootinstall/Apache2.2/modules/mod_f4fhttp.so にインストールされます。このモジュールは、adobe.com からスタンドアロンの Apache モジュールとして入手することもできます。

HLS HTTP Module  ファイルを iOS デバイスと Mac OS に配信する Apache HTTP Server モジュール。

HTTP HLS Module Adobe Media Server 5 以降と共に rootinstall/Apache2.2/modules/mod_hlshttp.so にインストールされます。これは、スタンドアロンの Apache モジュールとしては入手できません。

JIT HTTP Module オンデマンドファイルをジャストインタイムでパッケージ化し、それらを Flash Player および AIR に配信する Apache HTTP Server モジュール「ジャストインタイム」とは、クライアントでメディアファルを要求すると、リアルタイムでメディアファイルがパッケージ化されることを意味します。

JIT HTTP Module は、Adobe Media Server 5 以降と共に rootinstall/Apache2.2/modules/mod_jithttp.so にインストールされます。これは、スタンドアロンの Apache モジュールとしては入手できません。

 

File Packager  オンデマンドメディアを F4F フラグメントに変換するコマンドラインのオフラインツールFile Packagerは、rootinstall/tools/f4fpackager フォルダーにあり、adobe.com から入手できます。

OSMF Media Player Flash Player および AIR への HTTP Dynamic Streaming をサポートするOpen Source Media FrameworkOSMF)に基づいて構築された複数の Media Player があります。「構築済みの Media Player」を参照してください。

F4F ファイル形式の仕様  F4F ファイル形式では、メディアコンテンツをセグメントとフラグメントに分割する方法が説明されていますLive PackagerFile Packagerおよび JIT HTTP モジュールはこの仕様に基づいたコンテンツを出力します。各フラグメントには、キャッシュ管理と高速シークを提供する固有のブートストラップ情報があります。詳細についてはF4F ファイル形式の仕様」を参照してください。

F4M ファイル形式の仕様  Flash Media Manifest ファイル形式にはHTTP Origin Module が提供できるファイルのパッケージについての情報が含まれます。マニフェスト情報には、複数のビットレートでエンコードされたファイルのコーデック、解像度および可用性が含まれます。また、マニフェスト情報には DRM データも含まれます。Media Player F4M ファイルを使用して、1 つのメディアを再生します。詳細についてはF4M ファイル形式の仕様」を参照してください。

Adobe Access  Adobe Access は保護されたメディアを Flash Player に配信します。Adobe Access HTTP Dynamic Streamingを使用するにはFile Packager Adobe Media Server を使用してコンテンツのパッケージ化と暗号化の両方を行います。詳細についてはProtecting content with Adobe Access」を参照してください。

Adobe Media Server 5 では、Adobe Access Server を使用せずに Adobe Access レベルを保護するサポートが追加されています。

 

HTTP 経由でのライブメディアのストリーミングのワークフロー

ライブ HTTPストリーミングのワークフローを体験するための最も良い方法は、チュートリアルを完了することです。「ライブメディアのストリーミング(HTTP」を参照してください。

Adobe HTTP Dynamic Streamingおよび Apple HTTP Live Streamingのすべての使用法でのワークフローを次に示します。

 デフォルトのライブイベントを使用するか、ライブイベントを作成します。

デフォルトのライブイベントは rootinstall/applications/livepkgr/events/_definst_/liveevent です。各ライブイベントには、1 セットのコンテンツの設定内容が含まれます。詳細については、「ライブイベントの作成および設定」を参照してください。

2 (オプションマルチビットレートストリーミングを設定するにはSet-level F4M/M3U8File Generator ツールを使用してセットレベルマニフェストファイルを生成します。セットレベルマニフェストファイルには、各ストリームに関する情報が含まれています。「HTTP経由でのライブマルチビットレートストリームのパブリッシュおよび再生」を参照してください。

3 (オプションAdobe HTTP Dynamic Streaming用に DVR を設定するにはセットレベルマニフェストファイルを作成します。

Apple HTTP Live Streaming用にスライディングウィンドウを設定するには、httpd.confApplication.xml またはEvent.xml ファイルを設定します。

DVR の設定 (HDS)」および スライディングウィンドウの設定(HLS」を参照してください。

4 (オプション — Adobe HTTP Dynamic Streaming)保護された HDS のコンテンツを暗号化する方法については、「HDSのコンテンツ保護の設定」を参照してください。

Adobe Access 用にコンテンツを暗号化するにはEvent.xml ファイルを編集しますAdobe Access 保護用のコンテンツの暗号化」を参照してください。

5   (オプション — Apple HTTP Live StreamingApple HTTP Live Streamingのコンテンツを暗号化する方法についてはHLSのコンテンツ保護の設定」を参照してください。

6   crossdomain.xml ファイルを作成し、rootinstall\webroot フォルダーにコピーします。

crossdomain.xml ファイルを使用することで、他のドメインでホストされている Flash Player クライアントがこのドメインのデータにアクセスできます詳細についてはActionScript 3.0 デベロッパーズガイド』のWebサイトのコントロール(ポリシーファイル」を参照してください。

 ストリームをサーバーにパブリッシュします。

8   Adobe HTTP Dynamic StreamingStrobe Media Playback を使用してメディアを再生します。Strobe Media Playback は、Adobe Media Server と共にインストールされます。

9   Apple HTTP Live Streaming)コンテンツを iOS または MacOS で再生します。サポートされているデバイスについてはApple HTTP Live Streamingdocumentation」を参照してください。

 

HTTP 経由でのオンデマンドメディアのストリーミングのワークフロー

オンデマンド HTTPストリーミングのワークフローを体験するための最も良い方法は、チュートリアルを完了することです。オンデマンドメディアのストリーミングHTTP」を参照してください。

Adobe HTTP DynamicStreaming および Apple HTTP Live Streamingの使用法のワークフローを次に示します。

1    メディアファイルをエンコードしそれらを Adobe Media Server 上の rootinstall/webroot/vod ディレクトリにコピーします。

この場所を設定するにはオンデマンド HDS および HLS コンテンツの場所の設定」を参照してください。

2 (オプションマルチビットレートストリーミングを設定するにはSet-level F4M/M3U8File Generator ツールを使用してセットレベルマニフェストファイルを生成します。「HTTP 経由でのオンデマンドマルチビットレートメディアファイルの再生」を参照してください。

3   (オプション — Adobe HTTP Dynamic Streaming)保護された HDS のコンテンツを(Adobe Access を使用せずに) 暗号化する方法については、HDSのコンテンツ保護の設定」を参照してください。

Adobe Access 用にコンテンツを暗号化するには、jit.conf ファイルを編集します。「Adobe Access保護用のコンテンツの暗号化」を参照してください。

4   (オプション — Apple HTTP Live StreamingApple HTTP Live Streaming のコンテンツを暗号化するにはjit.conf ファイルまたは Apache httpd.conf ファイルを設定しますApple HLS 用のコンテンツの保護を参照してください。

5   crossdomain.xml ファイルを作成し、rootinstall\webroot フォルダーにコピーします。

crossdomain.xml ファイルを使用することで、他のドメインでホストされている Flash Player クライアントがこのドメインのデータにアクセスできます詳細についてはActionScript 3.0 デベロッパーズガイド』のWebサイトのコン トロール(ポリシーファイル」を参照してください。

 

6   Adobe HTTP Dynamic StreamingStrobe Media Playback を使用してメディアを再生します。Strobe Media Playback は、Adobe Media Server と共にインストールされます。

7   Apple HTTP Live Streaming)コンテンツを iOS デバイスまたは MacOS で再生します。サポートされているデバイスについてはApple HTTP Live Streamingdocumentation」を参照してください。

 

Flash Media Server 4.0 と Flash Media Server4.5 での HTTP Dynamic Streamingの相違点

Flash Media Server 4.0 Flash Media Server 4.5 での HTTP Dynamic StreamingHDSの相違点は次のとおりです。

•   ライブストリーミング用の簡素化された要求 URL

Flash Media Server 4.0 Flash Media Server 4.5 での HTTP ライブ URL の相違点を参照してください。

•   ジャストインタイムのオンデマンドパッケージ化のサポート。

Media Player HDS を使用して rootinstall/webroot/vod フォルダーからオンデマンドメディアファイルを要求するとApache はストリームをリアルタイムにパッケージ化しますFlash Media Server 4.0 と同様にHTTP ストリーミング用に Media File を事前にパッケージ化する必要はありませんオンデマンドメディアのストリーミングHTTP」を参照してください。

•    jit.conf ファイルを使用して、ストリームレベルでオンデマンドストリーミングを設定。jit.conf ファイルをメディアと同じフォルダーにコピーします。オンデマンド HTTP ストリーミングの設定」を参照してください。

•   セットレベル F4Mおよび M3U8ファイルを使用して、アダプティブビットレートストリーミング用のストリームセットを設定。

セットレベルファイルは、メディアのビットレートを記述します。ライブおよびジャストインタイム Packagerは、ストリームレベルの F4Mおよび M3U8ファイルを生成して、個々のメディアを記述します。セットレベルファイルは、どの Webサーバーにも置くことができます。「HTTP 経由でのライブマルチビットレートストリームのパブリッシュおよび再生および HTTP 経由でのオンデマンドマルチビットレートメディアファイルの再生 を参照してください。

 

 

ライブイベントの作成および設定

livepkgrアプリケーションを使用すると、HTTP経由でライブストリーミングイベントの数に制限なく(ディベート、スポーツイベント、タウンホールミーティングなど)を配信できます。各ライブストリーミングイベントには、マルチビット

レートストリーミング、DVRおよびコンテンツ保護のための独自の設定が必要です。

ライブイベントはlivepkgr アプリケーション内の設定レベルですAdobe Media Server アプリケーションと同様にライブイベントはサーバー上のフォルダーです。フォルダーには、Manifest.xml および Event.xml 2 つの設定ファイルが含まれています。これらの設定ファイルを使用して一連のストリームを設定します。

また、Adobe Media Server アプリケーションと同様に、ライブイベントのフォルダー名はライブイベントの名前になりますHTTP ストリーミング用にライブコンテンツをパッケージ化する Adobe Media Server アプリケーションはlivepkgr」と呼ばれます。livepkgr アプリケーションにはliveevent」という名前のライブイベントが含まれます。

rootinstall/applications/livepkgr/events/_definst_/liveevent

 

注意applications」フォルダーの場所を設定できます。またstreams」フォルダーに対する仮想ディレクトリのマッピングも設定できます。ただしevents」フォルダーに対する仮想ディレクトリのマッピングは設定できません。

ライブイベント内のストリームは、フラグメントとしてパッケージ化されてディスクに書き込まれます。ライブイベント(ストリームのコンテンツとメタデータ)は、ユーザーが削除するまで存在しています。Media Playerは、ソースストリームがパブリッシュを停止した後でコンテンツにアクセスできます。

ライブイベントの作成

ライブストリーミングイベントごとに、ライブイベントのフォルダーを作成します。

1    livepkgr アプリケーションフォルダー内に次の「events」フォルダー構造を作成します。

rootinstall/applications/livepkgr/events/applicationinstancename/liveeventname

liveevent2」という名前の新しいライブイベントを次に示します。

rootinstall/applications/livepkgr/events/_definst_/liveevent2

次の場所に livepkgrアプリケーションの別のインスタンスのライブイベントを作成することもできます。

rootinstall/applications/livepkgr/events/anotherappinstance/liveevent

2    Events.xml ファイルをデフォルトの liveevent フォルダーから新しいフォルダーにコピーします。

rootinstall/applications/livepkgr/events/_definst_/liveevent2/Events.xml

3    Manifest.xml ファイルをデフォルトの liveevent フォルダーから新しいフォルダーにコピーします。

rootinstall/applications/livepkgr/events/_definst_/liveevent2/Manifest.xml

4    Events.xml ファイルをテキストエディターで開き、次のようにイベント名を変更します。

 

<Event>

<EventID>liveevent2</EventID>

<Recording>

<FragmentDuration>4000</FragmentDuration>

<SegmentDuration>400000</SegmentDuration>

<DiskManagementDuration>3</DiskManagementDuration>

<Recording>

</Event>

ライブイベントの設定

Event.xml file で設定可能な機能の詳細については、「ライブ HTTP ストリーミングのイベントレベル(Event.xml)での設定」を参照してください。

 

 

ライブイベントにストリームを割り当てるためのサーバーサイドコードの記述

重要HTTP Dynamic Streaming用にサーバーサイドコードを記述する必要はありません。livepkgr アプリケーションには、ライブイベントにストリームを割り当てるサーバーサイド ActionScript ファイルがあります。コードを確認するには、 rootinstall/applications/livepkgr/main.asc をテキストエディターで開いてください。このセクションを参照して、コードを理解してください。

 

Live Packagerプロセスでは接頭辞が f4f: のストリームを処理しますFlash Media Live Encoder f4f: 接頭辞をサポートしていないのでサーバーサイドスクリプトまたは Adobe Media Server Authorization プラグインでストリーム名に接頭辞を追加します。

 

1 つのアプリケーションに複数のライブイベントを含めることができます。そのため、アプリケーションにパブリッシュされるストリームは、デフォルトではライブイベントと関連付けられません。ライブストリームとライブイベントを関連付けるにはサーバーサイドスクリプトまたは Adobe Media Server Authorizationプラグイン(両方ではなくどちらか一方を使用します。1 つのライブストリームは 1 つのライブイベントのみと関連付けることができます。

ストリームの関連付けはパブリッシュイベントの間に行います。ストリームがパブリッシュされて関連付けられると、サーバーはストリームのストリーム記録ファイル(.stream)を次のイベントディレクトリに作成します。

applications/appname/events/appinstancename/liveeventname/livestream.stream

 

ストリーム記録ファイルにはパッケージ化されたストリームファイルの場所についての情報が含まれますHTTP Origin Module は、この情報を使用して .f4m マニフェストファイルを生成します。詳細については、「ライブHTTP Dynamic Streaming のアプリケーションフローについて」を参照してください。

 

サーバーサイド ActionScript の使用

このコード例を参照するには、rootinstall/applications/livepkgr/main.asc をテキストエディターで開きます。

サーバーサイド ActionScript のコードではapplication.onPublish イベントを使用して次の操作を行います。

•    Stream.liveEventプロパティを使用して、サーバーが記録を始める前にライブストリームとライブイベントを関連付けます。

•    f4f:接頭辞をストリーム名に追加します。これにより、ストレージをパッケージ化するようサーバーに伝えます。

•    Stream.record()を呼び出してストリームを記録します。

Authorization プラグインの使用

これらのタスクを Authorization プラグインで実行するには、プラグインコードを記述する必要があります。

 Authorization プラグインのコードではE_PUBLISH イベントを使用して次の操作を行います。

•    F_STREAM_TYPEフィールドを "f4f"に設定します。

   F_STREAM_LIVE_EVENT フィールドを "liveeventname" に設定します。この例では "liveevent" を使用します。

   F_STREAM_PUBLISH_TYPEフィールドを、"record"を意味する 0に設定します。

E_PUBLISH イベントを処理するサンプルの C++ コードを次に示します。

 

case IFmsAuthEvent::E_PUBLISH:

{

// The name of the AMS app to which the live stream is published.

char* pLiveApp = "livepkgr";

// The stream type used for HTTP Dynamic Streaming.

char* pStreamType = "f4f";

// The name of the live event defined in the livepkgr app.

char* pLiveEvent = "liveevent";

// The Auth Plug-in affects all apps on the server.

// We only want to process streams published to the livehttp app.

char* pAppName = getStringField(m_pAev, IFmsAuthEvent::F_APP_NAME);

if (pAppName && !strncmp(pAppName, pLiveApp, strlen(pLiveApp)))

{

// Set the stream type.

setStringField(m_pAev, IFmsAuthEvent::F_STREAM_TYPE, pStreamType);

// Set the publish type to record.

//0 record, 1 append, -1 live

setI32Field(m_pAev, IFmsAuthEvent::F_STREAM_PUBLISH_TYPE, 0);

// Associate the stream with a live event.

setStringField(m_pAev, IFmsAuthEvent::F_STREAM_LIVE_EVENT, pLiveEvent);

}

}

 

 

コンテンツストレージHDSおよび HLS

 

要求 URLの開始の設定

Media Player がサーバーからコンテンツを要求するときに、サーバーに要求 URL を渡します。サーバー名(およびオプションのポート番号)に続く要求 URL のセクションは、Apache httpd.conf ファイルの Location ディレクティブパスで定義されています。例えば、HDS オンデマンドストリーミングの Location ディレクティブは次のとおりです。

<IfModule jithttp_module>

<Location /hds-vod>

HttpStreamingJITPEnabled true

HttpStreamingContentPath "../webroot/vod"

JitFmsDirPath ".."

Options -Indexes FollowSymLinks

</Location>

</IfModule>

Apache がパス /hds-vod を持つ要求を受け取るとjithttp_module(ジャストインタイムを使用して要求を処理します。

jithttp_module Location ディレクティブ内にネストされたディレクティブの値を使用します。

複数のテナントまたは複数のアプリケーション用の HTTPストリーミングを設定するには、異なるパスを持つ Location ディレクティブを追加します次の表は要求 URLの構文をリストしLocationディレクティブパスは太字で示されています。

 

ストリーミングの種類

要求 URL の構文

Adobe HDS ライブ

http://<ams-dns-or-ip>/hds-live/livepkgr/<appinstname>/<eventname>/<streamname>.f4m

Apple HLS ライブ

http://<ams-dns-or-ip>/hls-live/livepkgr/<appinstname>/<eventname>/<streamname>.m3u8

ジャストインタイムで

パッケージ化される Adobe HDS オンデマンド

http://<ams-dns-or-ip>/hds-vod/<streamname>.<fileextension>.f4m

Apple HLS オンデマンド

http://<ams-dns-or-ip>/hls-vod/<streamname>.<fileextension>.m3u8

Location ディレクティブの追加

このタスクでは HDSオンデマンドを使用しますがこの手順はすべての種類の HTTPストリーミングに適用されます。

1    rootinstall/Apache2.2/conf/httpd.conf をテキストエディターで開きます。

2    編集、コピーおよび貼り付けを行うストリーミングの種類の Locationディレクティブを配置します。

3    例えば、HDS オンデマンドストリーミング用の Location を作成するには、/hds-vod セクションをコピーして、それを既存のセクションの下に貼り付けます。

 

<IfModule jithttp_module>

<Location /hds-vod>

HttpStreamingJITPEnabled true

HttpStreamingContentPath "../webroot/vod"

JitFmsDirPath ".."

Options -Indexes FollowSymLinks

 

# Uncomment the following directives to enable encryption

# for this location.

#   EncryptionScope server

#   ProtectionScheme phds

</Location>

</IfModule>

 

4   コピーしたセクションでLocation パスを /flash-vod に変更しますHttpStreamingContentPath ディレクティブを編集して、ディスク上のオンデマンドメディアの場所を変更することもできます。

<IfModule jithttp_module>

<Location /flash-vod>

HttpStreamingJITPEnabled true

HttpStreamingContentPath "../webroot/vod2"

JitFmsDirPath ".."

Options -Indexes FollowSymLinks

 

# Uncomment the following directives to enable encryption

# for this location.

#   EncryptionScope server

#   ProtectionScheme phds

</Location>

</IfModule>

 

注意ライブストリーミング用のコンテンツの場所を変更するには、「ライブ HDS および HLS コンテンツの場所の設定」を参照してください。

 

5   rootinstall/webroot/vod2 フォルダーを作成して、sample1_1500kbps.f4vファイルを /webroot/vod フォルダーからにコピーします。

6   Apache HTTP Server を再起動します。サービス名は AMSHttpd です。

7   rootinstall/samples/videoPlayer/videoplayer.html をダブルクリックして、Adobe Media Server サンプルビデオPlayer を開きます。

8 Stream URL」テキストボックスに次のように入力します。

http://localhost/flash-vod/sample1_1500kbps.f4v.f4m

/webroot/vod2 フォルダーから任意のファイルを再生することができます。

 

 

オンデマンド HDS および HLSコンテンツの場所の設定

ディスク上のオンデマンドコンテンツの場所を設定するには、Apache httpd.conf ファイルを編集します。次のディレクティブを使用します。

ディレクティブ

説明

HttpStreamingContentPath

ストリームのルートの場所。この値は、Apache ルートフォルダーへの絶対パスまたは相対パスにすることができます。

オンデマンド HDS とオンデマンド HLS のデフォルトの場所は、"../webroot/vod" です。

 

1    rootinstall/Apache2.2/conf/httpd.conf を開きます。

2  メディアがオンデマンドストリーミング用に格納されるサーバー上の場所を変更するにはHttpStreamingContentPath ディレクティブを編集します。例えば、次のように場所を c:\hds_vod_content に変更します。

<IfModule jithttp_module>

<Location /hds-vod>

HttpStreamingJITPEnabled true

#             HttpStreamingContentPath "../webroot/vod"

HttpStreamingContentPath "C:\hds_vod_content"

JitFmsDirPath ".."

Options -Indexes FollowSymLinks

 

# Uncomment the following directives to enable encryption

# for this location.

#   EncryptionScope server

#   ProtectionScheme phds

</Location>

</IfModule>

 

<Location /hls-vod>

HLSHttpStreamingEnabled true

HLSMediaFileDuration 8000

#             HttpStreamingContentPath "../webroot/vod"

HttpStreamingContentPath "C:\hds_vod_content"

HLSFmsDirPath ".."

 

# Uncomment the following directives to enable encryption

# for this location.

#     HLSEncryptionScope server

#     HLSEncryptCipherKeyFile "../phls/vodkey.bin"

#     HLSEncryptKeyURI           "https://<ServerName>/hls-key/vodkey.bin"

 

Options -Indexes FollowSymLinks</Location>

3    Apache HTTP Server を再起動します。サービス名は AMSHttpd です。

4    サンプルファイルを /webroot/vod から c:\hds_vod_content にコピーします。このタスクは、sample1_1500kbps.f4vを使用します。

5  HDS)ブラウザーで rootinstall/samples/videoPlayer/videoplayer.html を開きStream URL」テキストボックスに次のように入力します。

http://localhost/hds-vod/sample1_1500kbps.f4v.f4m

6 HLSiOS を実行しているデバイス上で、Safari を開いて、次のように入力します。

http://localhost/hls-vod/sample1_1500kbps.f4v.m3u8

 

要求 URL Apache 設定の変更前と同じですがコンテンツはディスク上の別の場所にありますApache /hds-vod で開始する要求を受け取るとHttpStreamingContentPath         の値に基づいて、残りのパスを解決します。

Apache 設定が有効になっているか確認するには、c:\hds_vod_content フォルダーにないサンプルファイルのストリーミングを試します。例えば、http://localhost/hds-vod/sample1_1000kbps.f4v.f4m のストリーミングを試します。サンプルビデオPlayer We are unable to connect to the content you’ve requested.We apologize for the inconvenience.  要求したコンテンツに接続できません。ご不便をおかけして申し訳ありません。)」というエラーが表示されます。

 

ライブ HDS および HLSコンテンツの場所の設定

ディスク上にライブ HDS および HLS コンテンツの場所を設定するにはApache httpd.confファイルを編集します次のディレクティブを使用します。

 

 

ディレクティブ

説明

HttpStreamingContentPath

                                          ディスク上のストリームのルートの場所(デフォルトで、livepkgr/streams)デフォルトで、場所は "../applications" です。この場所は、livepkgr アプリケーションのサブフォルダーである必要があります。

この値は、Apache ルートフォルダーへの絶対パスまたは相対パスにすることができます。

HttpStreamingLiveEventPath

ディスク上のライブイベントのルートの場所(デフォルトで、livepkgr/events)デフォルト値は "../applications" です。この場所は、livepkgr アプリケーションのサブフォルダーである必要があります。

この値は、Apache ルートフォルダーへの絶対パスまたは相対パスにすることができます。

HLS の場合、この値は HttpStreamingURLSandboxLevel ディレクティブの値に依存します。

HttpStreamingURLSandboxLevel

HttpStreamingLiveEventPath が設定されるスコープを定義します指定できる値は、"App""Inst" および "Server" ですデフォルト値は "Server" です。

HttpStreamingLiveEventPath が特定のアプリケーションに対して設定されている場合は、この値を "App" に設定します。この場合、クライアント要求 URL は次のようにアプリケーション名を省略できます。

HttpStreamingLiveEventPath   "..application/livepkgr" HttpStreamingURLSandboxLevel  "App"

要求 URL は次のとおりです。

 

http://<ams-dns-or-ip>/hls-live/<app-instance>/<event-name>/<stream- name>.m3u8

HttpStreamingLiveEventPath  がアプリケーションインスタンスに設定されている場合は"Inst" という値を使用します。この場合、クライアント要求 URL は、次のように、アプリケーション名とアプリケーションインスタンスを省略できます。

 

HttpStreamingLiveEventPath   "..application/livepkgr/events/_definst_" HttpStreamingURLSandboxLevel  "Inst"

要求 URL は次のとおりです。

 

http://<ams-dns-or-ip>/hls-live/<event-name>/<stream-name>.m3u8

ディスク上のライブコンテンツの場所の設定

 

 rootInstall/conf/ams.ini をテキストエディターで開きますパラメーターの VHOST.APPSDIR を設定して次のいずれかに設定します。

  WindowsC:/applications

  Linux/opt/applications

 サーバーを再起動します。

 ステップ 1 の場所にフォルダーを作成して、livepkgr アプリケーションをその場所にコピーします。

4    rootinstall/Apache2.2/conf/httpd.conf をテキストエディターで開きます。

 HDSライブコンテンツの場所を変更するには、太字のディレクティブを編集します。

<Location /hds-live>

HttpStreamingEnabled true

#    HttpStreamingLiveEventPath "../applications"

#    HttpStreamingContentPath "../applications"

HttpStreamingLiveEventPath "C:\applications"

HttpStreamingContentPath "C:\applications"

HttpStreamingF4MMaxAge 2

HttpStreamingBootstrapMaxAge 2

HttpStreamingFragMaxAge -1

Options -Indexes FollowSymLinks

</Location>

</IfModule>

注意Linux では"/opt/applications" を使用します。

 HLSライブコンテンツの場所を変更するには、太字のディレクティブを編集します。

 

<IfModule hlshttp_module>

<Location /hls-live>

HLSHttpStreamingEnabled true

#    HttpStreamingLiveEventPath "../applications"

#    HttpStreamingContentPath "../applications"

HttpStreamingLiveEventPath "C:\applications"

HttpStreamingContentPath "C:\applications"

HLSMediaFileDuration 8000

HLSSlidingWindowLength 6

HLSFmsDirPath ".."

HLSM3U8MaxAge 2

HLSTSSegmentMaxAge -1

 

# Uncomment the following directives to enable encryption

# for this location.

#     HLSEncryptionScope server

#     HLSEncryptCipherKeyFile "../phls/liveeventkey.bin"

#     HLSEncryptKeyURI           "https://<ServerName>/hls-key/liveeventkey.bin"

 

Options -Indexes FollowSymLinks

</Location>

7    Apache HTTP Server を再起動します。サービス名は AMSHttpd です。

8    Flash Media Live Encoder を開き、次の設定でストリームをパブリッシュします。

•   ビデオコーデック—H.264

•   オーディオコーデック—AAC

•   キーフレーム頻度— 4

   FMS URL — rtmp://localhost/livepkgr

   ストリーム - livestream?adbe-live-event=liveevent

9  HDS)ブラウザーで rootinstall/samples/videoPlayer/videoplayer.html を開きStream URL」テキストボックスに次のように入力します。

http://localhost/hds-live/livepkgr/_definst_/liveevent/livestream.f4m

10HLSiOS を実行しているデバイスで、Safari を開いて次のように入力します。

http://localhost/hls-live/livepkgr/_definst_/liveevent/livestream.m3u8

Mac OS Safari 4.0 でコンテンツを再生するには<video> タグを使用する HTML ドキュメントを作成します。

要求 URL のスコープの設定

1    rootinstall/Apache2.2/conf/httpd.conf をテキストエディターで開きます。

 要求 URLのスコープ (URLサンドボックスレベルとも呼ばれるを変更するには太字のディレクティブを次のように編集します。

 

<Location /hds-live>

HttpStreamingEnabled true

#    HttpStreamingLiveEventPath "../applications"

#             HttpStreamingContentPath "../applications"

HttpStreamingLiveEventPath "c:\applications\livepkgr"

HttpStreamingContentPath "c:\applications"

HttpStreamingURLSandboxLevel "App"

HttpStreamingF4MMaxAge 2

HttpStreamingBootstrapMaxAge 2

HttpStreamingFragMaxAge -1

Options -Indexes FollowSymLinks

</Location></IfModule>

HLS用の要求 URLのスコープを変更するには、太字のディレクティブを次のように編集します。

 

<IfModule hlshttp_module>

<Location /hls-live>

HLSHttpStreamingEnabled true

#    HttpStreamingLiveEventPath "../applications"

#             HttpStreamingContentPath "../applications"

HttpStreamingLiveEventPath "C:\applications\livepkgr"

HttpStreamingContentPath "C:\applications"

HttpStreamingURLSandboxLevel "App"

HLSMediaFileDuration 8000

HLSSlidingWindowLength 6

HLSFmsDirPath ".."

HLSM3U8MaxAge 2

HLSTSSegmentMaxAge -1

 

# Uncomment the following directives to enable encryption

# for this location.

#     HLSEncryptionScope server

#     HLSEncryptCipherKeyFile "../phls/liveeventkey.bin"

#     HLSEncryptKeyURI           "https://<ServerName>/hls-key/liveeventkey.bin"

 

Options -Indexes FollowSymLinks

</Location>

3    Apache HTTP Server を再起動します。サービス名は AMSHttpd です。

4    Flash Media Live Encoder を開き、次の設定でストリームをパブリッシュします。

•   ビデオコーデック —H.264

•   オーディオコーデック —AAC

•   キーフレーム頻度 — 4

   FMS URL — rtmp://localhost/livepkgr

   ストリーム - livestream?adbe-live-event=liveevent

5  HDSrootinstall/samples/videoPlayer/videoplayer.html をダブルクリックして、Adobe Media Server サンプルビデオ Player を開きます。Stream URL に次のように入力してplay」をクリックします。

http://<host>/hds-live/_definst_/liveevent/livestream.f4m

 iOS を実行しているデバイスで、Safariを開いて、次のように入力します。

http://<host>/hls-live/_definst_/liveevent/livestream.m3u8

 

URL サンドボックスレベルがデフォルトの “Server” ではなく、“App に設定されているため、URL にはアプリケーション名(livepkgr)が含まれません。

 

マルチビットレートストリーミング用のセットレベル F4M/M3U8ファイルの設定

Adobe Media Server 5

 

マルチビットレートストリームに関する設定情報は、セットレベル F4MM3U8ファイル、およびストリームレベル F4MM3U8ファイルの複数のレベルに分けられています。HDSの場合、ファイルは F4Mマニフェストファイルです。 HLSの場合、ファイルは M3U8バリアント再生リストです(マニュアルによっては、両方を参照するため、一般的な用語「マニフェスト」を使用する場合があります )

セットレベル F4M M3U8 ファイル  ストリームレベルのマニフェストファイルへのURL とマルチビットレートセットの各ストリームのビットレート情報が含まれます。HDS の場合、セットレベル F4M ファイルには、DVR ローリングウィンドウに関する情報も含むことができます。HLS の場合、セットレベル M3U8 ファイルには、コーデック情報も含むことができます。

Adobe Media Server 5 には、Set-level F4M/M3U8 File Generator ツールが含まれています。このツールは、 rootinstall/tools/f4mconfig/configurator/f4mconfig.htm  にインストールされます。このツールを使用してセットレベルファイルを生成します。セットレベルファイルを Web サーバーにコピーします。Media Player は、マルチビットレートコンテンツの再生にセットレベルファイルを要求します。

 

セットレベル F4Mファイルは次のとおりです。

 

<manifest xmlns="http://ns.adobe.com/f4m/2.0">

<baseURL>http://localhost/hds-live/livepkgr/_definst_/liveevent/</baseURL>

<media href="livestream1.f4m" bitrate="150"/>

<media href="livestream2.f4m" bitrate="500"/>

<media href="livestream3.f4m" bitrate="700"/>

</manifest>

セットレベル M3U8ファイルは次のとおりです。

#EXTM3U

#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=150000

http://10.0.1.11/hls-live/livepkgr/_definst_/liveevent/livestream1.m3u8

#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=500000

http://10.0.1.11/hls-live/livepkgr/_definst_/liveevent/livestream2.m3u8

#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=700000

http://10.0.1.11/hls-live/livepkgr/_definst_/liveevent/livestream3.m3u8

 

ストリームレベル F4M および M3U8 ファイル  ブートストラップ情報と DRM メタデータが含まれます。Live Packager および HTTP モジュールは、Media Player がコンテンツを要求すると、リアルタイムにストリームレベルの F4M M3U8 ファイルを生成します。

セットレベルファイルをサポートする Flash/AIR Media Player  セットレベルの F4M ファイルを再生するには、OSMF1.6以降を使用する Media Player を使用します。rootinstall/samples/videoPlayer にインストールされる Strobe MediaPlayback は、セットレベル F4M ファイルをサポートします。

セットレベルファイルをサポートする Apple Media Player  セットレベル M3U8 ファイルを再生するには、Apple HTTP Live Streaming をサポートするデバイスを使用しますApple HTTP Live Streamingdocumentationを参照してください。

F4M 仕様  F4M ファイル形式の詳細についてはF4M ファイル形式の仕様」を参照してください。

M3U8 仕様  M3U8 ファイル形式の詳細についてはHTTP Live Streaming Internet-Draft」を参照してください。

セットレベルファイルを使用するチュートリアル  次のチュートリアルは、マルチビットレートストリーミング用のセットレベルファイルを使用します。

•   HTTP経由でのライブマルチビットレートストリームのパブリッシュおよび再生

•   HTTP 経由でのオンデマンドマルチビットレートメディアファイルの再生

•   オーディオのみのストリームのパブリッシュHLS

•    DVRの設定 (HDS)

 

サーバーでの絶対時間の設定

注意livepkgr アプリケーションはデフォルトで絶対時間を使用するように設定されています。このセクションでは、

HTTP ストリーミングについて理解し、livepkgrアプリケーションを複製します。

livepkgr取り込みアプリケーションはデフォルトで絶対時間を使用するように設定されています。設定を確認するには、

rootinstall/applications/livepkgr/Application.xml  をテキストエディターで開いてください。

ライブのマルチビットレートストリームをパブリッシュするには、絶対時間を使用してストリームをパブリッシュするようにライブエンコーダーを設定します。ライブメディアのストリーミング(HTTP」を参照してください。

1    Application.xml ファイルをアプリケーションフォルダーにコピーします。例えばlivepkgr2」というアプリケーションにストリームをパブリッシュする場合は、Application.xml ファイルをconf\_defaultRoot_\_defaultVHost_ フォルダーから applications/livepkgr2 フォルダーにコピーします。

2    Application.xml ファイルをテキストエディターで開きます。

3    タグ //Application/StreamManager/Live/AssumeAbsoluteTime true に設定します。

 

<Application>

...

<StreamManager>

...

<Live>

...

<AssumeAbsoluteTime>true</AssumeAbsoluteTime>

 ファイルを保存します。

 サーバーを再起動しますサーバーの起動と停止」を参照してください。

重要アプリケーションにパブリッシュされるすべてのストリームが絶対時間を使用している場合にのみ、

<AssumeAbsoluteTime> true に設定しますこの値を true に設定しアプリケーションが絶対時間を使用しないストリームを取り込んだ場合、ストリームが停止されて再パブリッシュされると、時間が前に戻ったことを示す警告がサーバーログに記録される場合があります。

 

 

F4Fおよび TSフラグメントの継続時間の設定

サーバーは取り込んだ(ライブ)ストリームをフラグメントに記録します。クライアントでオンデマンドファイルを要求すると、それらのファイルをサーバーがフラグメントに記録します。

Adobe HDSフラグメントはF4Fファイルです。Apple HLSフラグメントは TSファイルです。フレームまたは時間に基づいて、コンテンツのフラグメントのサイズを指定します。フレームベースの設定は、時間ベースの設定よりも優先されます。

 

ソースメディアに一定のフレームレートでエンコードされたビデオが含まれる場合は、フレームベースの設定を使用します。ビデオのキーフレーム間隔にフラグメントのサイズを一致させる場合は、フレームベースの設定を使用します。オーディオまたはデータだけが含まれていてビデオは含まれないメディアの場合は、時間ベースの設定を使用します。サーバーのフラグメント継続時間は、エンコーダーのキーフレーム間隔の倍数である必要があります。

KeyframeIntervalsPerFragment     の値は倍数を定義します。

 

ライブ HDS および HLSのフラグメントサイズの設定

ライブ HDS のサーバーレベルの設定

Apache httpd.conf 内の次のディレクティブを設定して、サーバー上のすべてのライブ HDS イベントのフラグメントサイズを設定します。

 

ディレクティブ

説明

デフォルト値

HttpStreamingFragmentDuration

デフォルトのフラグメント継続時間(ミリ秒単位。これは時間ベースの設定です。フレームベースの値を選択することで上書きできます。

4000

HttpStreamingFrameRate

フレームベースのフラグメント継続時間の設定の場合、これはソースコンテンツのフレームレートです。

なし

HttpStreamingFramesPerKeyframeInterval

フレームベースのフラグメント継続時間の設定の場合、これは各キーフ

レーム間隔のフレーム(ピクチャのグループ)の数です。

なし

HttpStreamingKeyframeIntervalsPerFragment

フレームベースのフラグメント継続時間の設定の場合、これは 1 フラグ

メントあたりのキーフレーム間隔(GOP)の数です。

1

ライブ HLS のサーバーレベルの設定

Apache httpd.conf 内の次のディレクティブを設定して、サーバー上のすべてのライブ HLS イベントの時間ベースのフラグメントサイズを設定します。

 

ディレクティブ

説明

デフォルト値

HLSMediaFileDuration

TS ファイルの継続時間(ミリ秒単位。メディアのキーフレーム間隔の倍数となる値を使用します。

8000

ライブ HDS のアプリケーションレベルとイベントレベルの設定

アプリケーションレベルでフラグメントサイズを設定するには、Live Packagerアプリケーション(デフォルトでは

livepkgr)のディレクトリ内の Application.xml ファイルを使用します。

 

イベントレベルでフラグメントサイズを設定するには、ライブイベントディレクトリ(デフォルトでは

applications/livepkgr/events/_definst_/liveevent)内の Event.xmlファイルを使用します。

<Recording> コンテナー内のエレメントを使用して、サーバーがディスクにファイルを書き込む方法を設定します。 Application.xml ファイルの場合、エレメントは //Application/HDS にあります。Event.xml ファイルの場合、エレメントは //Event にあります。

 

要素

説明

デフォルト値

/Recording

ディスクへのファイルの書き込み方法を設定するセクション。

なし

/Recording/FragmentDuration

各フラグメントの長さ(ミリ秒単位。各セグメントは 1 つ以上のフラグメントを含むことができます。

時間ベースの設定。

4000

/Recording/FramePrecision

フラグメント実行テーブルの丸め精度(フレーム単位。フレーム単位は指定されているフレームレートから得られます

1/ レート

フレームベースの設定。

1

/Recording/FrameRate

元のコンテンツのフレームレート(フレーム数 / 秒(fps)単位値は浮動小数点数ですNTSC の場合は値 29.97 を使用します。

フレームベースの設定

なし

/Recording/FramesPerKeyframeInterval

各キーフレーム間のフレーム数。例えば、30 fps のビデオでキーフレームが 2 秒ごとの場合は1 キーフレーム間隔に 60フレームが含まれます。

フレームベースの設定。

なし

/Recording/KeyframeIntervalsPerFragment

1 フラグメントのキーフレーム間隔の数。デフォルト値は 1で、フラグメントのサイズがキーフレーム間隔と同じであることを意味します。

フレームベースの設定。

1

/Recording/SegmentDuration

各セグメントの長(ミリ秒単位 .f4f ファイルは 1 つのセグメントを含みます。

 

時間ベースの設定。フレームベースの設定は、時間ベースの設定よりも優先されます。

400000

ライブ HLS のアプリケーションレベルとイベントレベルの設定

アプリケーションレベルでフラグメントサイズを設定するには、Live Packagerアプリケーション(デフォルトではlivepkgr)のディレクトリ内の Application.xml ファイルを使用します。

イベントレベルでフラグメントサイズを設定するには、ライブイベントディレクトリ(デフォルトではapplications/livepkgr/events/_definst_/liveevent)内の Event.xmlファイルを使用します。

<Recording>および <HLS>コンテナー内のエレメントを使用して、サーバーがディスクにファイルを書き込む方法を設定します。Application.xmlファイルの場合、エレメントは //Application/HDSにあります。Event.xmlファイルの場合、エレメントは//Event/にあります。

 

要素

説明

デフォルト値

/Recording/FrameRate

元のコンテンツのフレームレート(フレーム数 / 秒(fps)単位値は浮動小数点数ですNTSC の場合は値 29.97 を使用します。

フレームベースの設定。

なし

/Recording/FramesPerKeyframeInterval

各キーフレーム間のフレーム数。例えば、30 fps のビデオでキーフレームが 2 秒ごとの場合は1 キーフレーム間隔に 60フレームが含まれます。

フレームベースの設定。

なし

/HLS/KeyframeIntervalPerMediaFile

メディアファイル(TS)あたりのキーフレーム間隔の数。デフォルト値は 1 で、フラグメントのサイズがキーフレーム間隔と同じであることを意味します。

フレームベースの設定。

1

/HLS/MediaFileDuration

各メディアファイル(TS)の長さ(ミリ秒単位

 

時間ベースの設定。フレームベースの設定は、時間ベースの設定よりも優先されます。

8000

フレームに基づいたライブ HDS および HLS のフラグメントサイズの指定

HDS     にはKeyframeIntervalsPerFragmentFrameRateFramesPerKeyframeIntervalFramePrecision     の各エレメントを使用します。

HLS   にはFrameRateFramesPerKeyframeIntervalKeyframeIntervalPerMediaFile   の各エレメントを使用します。

 

<Event>

<EventID>liveevent</EventID>

<Recording>

<FrameRate>29.97</FrameRate>

<FramesPerKeyframeInterval>120</FramesPerKeyframeInterval>

<KeyframeIntervalsPerFragment>1</KeyframeIntervalsPerFragment>

<FramePrecision>1</FramePrecision>

</Recording>

<HLS>

<KeyframeIntervalPerMediaFile>3</KeyFrameIntervalPerMediaFile>

</HLS>

</Event>

サーバーは、次の式に従って HLSメディアファイルの継続時間を計算します。

 

MediaFileDurationInSeconds = FramesPerKeyframeInterval * KeyframeIntervalPerMediaFile / FrameRate

時間に基づいたライブ HDS および HLS のフラグメントサイズの指定

HDS にはFragmentDurationSegmentDuration の各エレメントを使用します。

HLSにはMediaFileDurationエレメントを使用します。

FragmentDuration  および MediaFileDuration  エレメントを使用します。

 

<Event>

<EventID>liveevent</EventID>

<Recording>

<FragmentDuration>4000</FragmentDuration>

<SegmentDuration>400000</SegmentDuration>

</Recording>

<HLS>

<MediaFileDuration>8000<MediaFileDuration>

</HLS>

</Event>

 

オンデマンド HDS および HLSのフラグメントサイズの設定

オンデマンド HDS のサーバーレベルの設定

Apache httpd.conf 内の次のディレクティブを設定して、サーバー上のすべてのオンデマンド HDS のフラグメントサイズを設定します。

 

ディレクティブ

説明

デフォルト値

HttpStreamingFragmentDuration

デフォルトのフラグメント継続時間(ミリ秒単位

これは、時間ベースの設定です。フレームベースの設定は、時間ベースの設定よりも優先されます。

4000

HttpStreamingFrameRate

ソースコンテンツのフレームレート。

フレームベースの設定。

なし

HttpStreamingFramesPerKeyframeInterval

各キーフレーム間隔のフレーム(ピクチャのグループ)の数。

フレームベースの設定。

なし

HttpStreamingKeyframeIntervalsPerFragment

1 フラグメントのキーフレーム間隔(GOP)の数。

フレームベースの設定。

1

オンデマンド HLS のサーバーレベルの設定

Apache httpd.conf 内の次のディレクティブを設定して、サーバー上のすべてのオンデマンド HLS のフラグメントサイズを設定します。

 

ディレクティブ

説明

デフォルト値

HLSMediaFileDuration

TS ファイルの継続時間(ミリ秒単位。メディアのキーフレーム間隔の倍数となる値を使用します。

8000

HttpStreamingFrameRate

ソースコンテンツのフレームレート。これはフレームベースの設定です。

なし

HLSKeyframeIntervalsPerMediaFile

メディアファイル1つあたりのキーフレーム間隔(GOP)の数。これはフレームベースの設定です。

1

HttpStreamingFramesPerKeyframeInterval

各キーフレーム間隔(GOP)のフレーム数。これはフレームベースの設定です。

なし

オンデマンド HDS のストリームレベルの設定

一連のオンデマンドメディアファイル(または単一のファイル)を設定するには、jit.confファイルをメディアファイルと同じディレクトリにコピーします。ディレクトリ内のすべてのメディアファイルは同じ jit.confファイルを使用します。

jit.conf ファイルを次のエレメントと共に使用し、ストリームレベルで HDS のフラグメントサイズを設定します。

 

要素

説明

デフォルト値

//manifest/hds:fragment-duration

コンテンツのセットのフラグメント継続時間(秒単位。値には小数を指定できます(例えば、2002 ミリ秒を指定するには、値 2.002 を使用します

 

時間ベースの設定。フレームベースの設定は、時間ベースの設定よりも優先されます。

なし

//manifest/hds:frame-rate

コンテンツセットのフレームレート。単位はフレーム / 秒で、小数(NTSC の場合は 29.97)で指定できます。

フレームベースの設定。

なし

//manifest/hds:frames-per-keyframe-interval

キーフレーム間隔あたりのフレーム(GOP)の数。単位はフレームで、整数値にする必要があります。

フレームベースの設定。

なし

//manifest/hds:keyframe-intervals-per- fragment

1 フラグメントのキーフレーム間隔の数。単位はフラグメントあたりのキーフレーム間隔で、整数値にする必要があります。

フレームベースの設定。

1

オンデマンド HLS のストリームレベルの設定

一連のオンデマンドメディアファイル(または単一のファイル)を設定するには、jit.confファイルをメディアファイルと同じディレクトリにコピーします。ディレクトリ内のすべてのメディアファイルは同じ jit.confファイルを使用します。

jit.conf ファイルを次のエレメントと共に使用し、ストリームレベルで HLS のフラグメントサイズを設定します。

 

要素

説明

デフォルト値

//manifest/hds:frame-rate

コンテンツセットのフレームレート。単位はフレーム

/ 秒で、小数(NTSC の場合は 29.97)で指定できま

す。

フレームベースの設定。

なし

//manifest/hds:frames-per-keyframe-interval

キーフレーム間隔あたりのフレーム(GOP)の数。

単位はフレームで、整数値にする必要があります。

フレームベースの設定。

なし

//manifest/hds:hls

Apple HTTP Live Streaming 設定のコンテナー。

なし

//manifest/hds:hls/hds:keyframe-intervals- per-media-file

TS ファイル継続時間あたりのキーフレーム間隔の数。

値は整数にする必要があります。

フレームベースの設定。

なし

//manifest/hds:hls/hds:media-file-duration

このファイルに関連付けられたコンテンツのセットの TS ファイル継続時間(ミリ秒単位。フラグメント継続時間の倍数である値を使用します。

時間ベースの設定。フレームベースの設定は、時間ベースの設定よりも優先されます。

なし

フレームに基づいたオンデマンド HDS および HLS のフラグメントサイズの指定

HDSにはhds:frame-ratehds:frames-per-keyframe-intervalhds:keyframe-intervals-per-fragment   の各エレメントを使用します。

HLSにはhds:frame-ratehds:frames-per-keyframe-intervalhds:keyframe-intervals-per-media-file    の各エレメントを使用します。

 

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns="http://ns.adobe.com/f4m/1.0" xmlns:hds="http://ns.adobe.com/hds-package/1.0">

<hds:frame-rate>29.97</hds:frame-rate>

<hds:frames-per-keyframe-interval>60</hds:frames-per-keyframe-interval>

<hds:keyframe-intervals-per-fragment>2</hds:keyframe-intervals-per-fragment>

<hds:hls>

<hds:keyframe-intervals-per-media-file>2</hds:keyframe-intervals-per-media-file>

</hds:hls>

</manifest>

時間に基づいたオンデマンド HDS および HLS のフラグメントサイズの指定

HDS にはhds:fragment-duration エレメントを使用します。

HLS にはhds:media-file-duration エレメントを使用します。

 

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns="http://ns.adobe.com/f4m/1.0" xmlns:hds="http://ns.adobe.com/hds-package/1.0">

<hds:fragment-duration>8000</hds:fragment-duration>

<hds:hls>

<hds:media-file-duration>8000</hds:media-file-duration>

</hds:hls>

</manifest>

 

既知の問題

Apache httpd.conf 内の次のディレクティブを設定して、サーバー上のすべてのライブ HDS イベントのフラグメントサイズを設定します。通常の録画がオンのときは、もしTSの継続時間がフラグメントの継続時間よりも短かった場合、HLSモジュールはTSリクエストに対しHTTP 503 (Service Unavailable)エラーを断続的に返します。

 

IO バッファーのサイズの設定

Adobe Media Server 5

 

IOバッファーはApache f4fモジュールの読み取りと書き込みのパフォーマンスを向上しますIOバッファーはディスクファイルをメモリ内のバッファーにロードします。システムコールを作成するのではなく、メモリ内のバッファーに対する読み取りと書き込みを行います。

注意この機能は、HTTP DynamicStreaming HTTP Live Streaming の両方に影響を与えます。バッファーがいっぱいになったとき、または読み取り / 書き込みヘッドがバッファーの境界を超えて移動する必要がある場合、サーバーはバッファーの内容をディスクファイルにコミットし、新しい内容をディスクファイルからバッファーにプリロードします。

 

IO バッファーのデフォルト値は 4096 バイトです。値を増減するには、Event.xml ファイルを編集します。4096 バイトの倍数を使用します。

 Event.xml ファイルをテキストエディターで開きます。

ライブ HTTP ストリーミングの場合、Event.xml ファイルはライブイベントのフォルダーにあります。例えば、rootinstall/applications/livepkgr/events/_definst_/liveevent/Event.xml  です。

 IOBufferSize を、基になるオペレーティングシステムのクラスタサイズの倍数の値に設定しますIOBufferSize は、IO バッファーのサイズ(バイト単位)です。

 

<Event>

<EventID>liveevent</EventID>

<Recording>

<FragmentDuration>4000</FragmentDuration>

<IOBufferSize>4096</IOBufferSize>

</Recording>

</Event>

 ファイルを保存します。

 

 

ディスク管理

Adobe Media Server 5

 

Application.xml ファイルまたは Event.xml ファイルに DiskManagementDuration 設定パラメーターを設定し、ディスク上の最新のライブコンテンツ量を指定します。アプリケーションレベルで設定された制限はイベントレベルで上書きできません。Application.xml ファイルに制限が設定された場合、Event.xml ファイルにはその制限時間と同じ時間またはそれより短い時間を設定できます。

すべてのライブ HTTPストリーミングはディスク管理を使用してディスクがいっぱいにならないようにしますディスク管理により、年中無休のライブストリーミングイベントを作成できます。また、DVRを使用している場合は、DVR設定に関連付けてディスク管理を設定します。DVR の設定 (HDS)」を参照してください。

デフォルトでは、ディスク管理は 3 時間ライブストリームを継続します。サーバーはコンテンツを常にチェックし、コンテンツの継続時間が DiskManagmentDurationの値を上回ると制限を超えたセグメントの .f4fファイルおよび .f4xファイルを削除します。

SegmentDuration または DiskManagmentDuration に値がある場合(デフォルトでは両方とも値がある、サーバーが記録を開始するためには、次の式が true である必要があります。

 

FragmentDuration < SegmentDuration < DiskManagementDuration

またSegmentDurationの値は0より大きくなる必要がありま(値 01セグメントが作成されますSegmentDuration の値は、セグメントを削除する速度を指定しますSegmentDurationの値が小さければ小さいほど速くセグメントが削除されます。

サーバーは、使用可能な全コンテンツの合計継続時間を維持します。セグメントが作成されると、サーバーはディスク管理ウィンドウにあるフラグメントがセグメントにないかどうかを確認します。フラグメントがある場合、サーバーはブートストラップエントリからそのセグメントを削除してから、ディスクからそのセグメントを削除します。

この動作はFragmentDuration SegmentDuration より大きくなることを許可していた Flash Media Server 4.0 からの変更点になります。

 

エレメント

デフォルト値

説明

DiskManagementDuration

3

サーバー上のコンテンツの最大継続時間(時間単位。デフォルト値は 3 です。小数値を使用して分単位を指定します。

 

 

Application.xml ファイルの DiskManagementDuration の値は、Event.xml ファイルの値で上書きできません。値が

Application.xml で設定されていない場合は、Event.xml で値を設定できます。

Application.xmlファイルで、ディスク管理の継続時間を 4時間に設定する方法を以下に示します。この値は、このアプリケーションで実行されているすべてのライブイベントに影響を与えます。

 

<Application>

...

<HDS>

<Recording>

<FragmentDuration>4000</FragmentDuration>

<SegmentDuration>16000</SegmentDuration>

<DiskManagementDuration>4</DiskManagementDuration>

</Recording>

</HDS>

</Application>

 

Event.xml ファイルで、ディスク管理の継続期間を 1 時間に設定する方法を以下に示します。この値はliveevent」と呼ばれるイベントのサーバー上のコンテンツの継続期間を制限します。

 

<Event>

<EventID>liveevent</EventID>

<Recording>

...

<DiskManagementDuration>1</DiskManagementDuration>

</Recording>

</Events>

詳細については、ライブ HTTP ストリーミングの設定」を参照してください。

 

コンテンツキャッシュの設定(HDS)

ライブおよびオンデマンドのHTTP DynamicStreamingのパフォーマンスを向上するために、オリジンサーバーで Apacheコンテンツキャッシュを有効にしますキャッシュが有効になるとサーバーはHDS用にパッケージ化したコンテンツをキャッシュします。サーバーは要求を受信すると、コンテンツを配信する前にキャッシュを確認します。コンテンツキャッシュは、デフォルトでは無効になっています。

1    htcacheclean ツールを実行します。ディスクキャッシュが使用するストレージ容量を制限するには、コンテンツキャッシュが有効なときに Apache htcacheclean ツールを実行します。このツールは手動で、またはデーモンとして実行できます。htcacheclean ツールはrootinstall/Apache2.2/bin/ にあります。ツールの実行方法の詳細については、「Apache documentation」を参照してください。

2    Apache httpd.conf ファイルで、キャッシュ設定セクションを非コメント化します。

 

# Uncomment this to enable caching

LoadModule cache_module modules/mod_cache.so

<IfModule mod_cache.c>

LoadModule disk_cache_module modules/mod_disk_cache.so

<IfModule mod_disk_cache.c>

CacheEnable disk /hds-vod

CacheEnable disk /hls-vod

CacheRoot cacheroot

CacheMaxFileSize 10000000

CacheLock On

</IfModule>

</IfModule>

 

CacheRoot ディレクティブで指定されたディレクトリが存在していることを確認しますデフォルトのcacheroot ディレクトリはrootinstall/Apache2.2/cacheroot にあります。

 Apache を再起動します。

コンテンツキャッシュの詳細についてはApache documentation」を参照してください。

 

Adobe Access保護用のコンテンツの暗号化

重要コンテンツの暗号化とフラグメント化の両方に HTTP Dynamic Streaming Packagerを使用してください。コンテンツの暗号化に Adobe Access パッケージ化ツールを使用しないでください。HTTP DynamicStreaming Packager は、既に暗号化されているコンテンツをフラグメント化できません。

 

HTTP Dynamic Streaming でライブまたはオンデマンドのコンテンツを配信しそのコンテンツをAdobe Access で保護するにはAdobe Access Server for ProtectedStreaming を使用しますこのサーバーはHTTP Dynamic Streaming での使用に最適化された Adobe Access ライセンスサーバーの実装ですAdobe Adobe Access Protecting Contentを参照してください。

Adobe Access SDK および Adobe Access ライセンスサーバー参照実装もHTTP Dynamic Streaming に対するライセンスを発行できます。

 

Adobe Access Server for ProtectedStreaming をデプロイした後に、コンテンツをリアルタイムでパッケージ化および暗号化するように Adobe Media Server を設定します。

ライブコンテンツを暗号化するための Adobe Media Server の設定

ライブコンテンツの暗号化は、Adobe Accessを使用して、アプリケーションレベルおよびイベントレベルで設定することができます。

Adobe Access をアプリケーションレベルで設定するには、次の場所にある Application.xml ファイルを使用します。

rootinstall/applications/livepkgr/Application.xml

Application.xml ファイルではFlashAccessV2 コンテナーエレメントは次の場所にあります。

 

//Application/HDS/Recording/ContentProtection/FlashAccessV2

Adobe Access をイベントレベルで設定するには、次の場所にある Event.xml ファイルを使用します。

rootinstall/applications/livepkgr/events/_definst_/liveevent/Event.xml

Event.xml ファイルではFlashAccessV2 コンテナーエレメントは次の場所にあります。

 

//Event/Recording/ContentProtection/FlashAccessV2

1    rootinstall/applications/livepkgr/events/_definst_/liveevent/Event.xml をテキストエディターで開きます。

2    ストリームを暗号化するために必要な XML タグを追加します。Event.xml ファイルのサンプルを次に示します。

<Event>

<EventID>liveevent</EventID>

<Recording>

<FragmentDuration>4000</FragmentDuration>

<SegmentDuration>10000</SegmentDuration>

<ContentProtection enabled="true">

<ProtectionScheme>FlashAccessV2</ProtectionScheme>

<FlashAccessV2>

<ContentID>foo</ContentID>

<CommonKeyFile>common-key.bin</CommonKeyFile>

<LicenseServerURL>http://dill.corp.adobe.com:8090</LicenseServerURL>

<TransportCertFile>production_transport.der</TransportCertFile>

<LicenseServerCertFile>license_server.der</LicenseServerCertFile>

<PackagerCredentialFile>production_packager.pfx</PackagerCredentialFile>

<PackagerCredentialPassword>hbXX5omIhzI=</PackagerCredentialPassword>

<PolicyFile>policy01.pol</PolicyFile>

</FlashAccessV2>

</ContentProtection>

</Recording>

</Event>

注意Live Packager で使用する証明書は、ライセンスサーバーと一致している必要があります。

 

要素

説明

デフォルト値

FlashAccessV2

コンテンツを保護するためにAdobe Accessで使用される設定のコンテナー。

なし

FlashAccessV2/CommonKeyFile

コンテンツ暗号化キーの生成に使用する共通キーファイルへのパス。パスは、設定ファイルへの絶対パスまたは相対パスにする必要があります。

コンテンツ暗号化キーを生成するためにコンテンツ ID で使用される基本キーこれは、 16 バイト/ 128 ビットのバイナリキーを含むバイナリファイルです。

アダプティブビットレートストリーミングの場合、コンテンツのセット全体で同じ共通キーとコンテンツ ID を使用します。同じキーと ID を使用すると、単一のライセンスでコンテンツのセットを復号化できます。

なし

FlashAccessV2/ContentID

コンテンツ暗号化キーを生成するために共通キーで使用されるコンテンツ ID

なし

FlashAccessV2/LicenseServerCertFile

コンテンツの保護に使用される DER でエンコードされたライセンスサーバー証明書ファイル。

なし

FlashAccessV2/LicenseServerURL

このコンテンツのライセンス取得を処理するライセンスサーバーの URL

なし

FlashAccessV2/PackagerCredentialFile

Packager の保護資格情報を含む PFX ファイル。

なし

FlashAccessV2/PackagerCredentialPassword

Packager の資格情報を保護するために使用されるパスワード文字列。

なし

FlashAccessV2/PolicyFile

このコンテンツのポリシーが格納されているファイル。現在、このツールでパッケージ化されるコンテンツに適用できるポリシーは 1 つだけです。

なし

FlashAccessV2/TransportCertFile

DER でエンコードされたトランスポート証明書ファイル。

なし

Live Packager HTTP DynamicStreaming に必要なフラグメント化および保護されたファイルを出力します。各フラグメントは、CDN キャッシュとブラウザーキャッシュの両方で永続的に保護されます。

オンデマンドコンテンツを暗号化するための Adobe Media Server の設定

1    jit.conf という名前のファイルを作成し、オンデマンドメディアファイルと同じフォルダーにコピーします。jit.conf ファイルの設定が、フォルダー内のすべてのファイルに適用されます。

 ストリームを暗号化するために必要な XML タグを追加します。jit.conf ファイルのサンプルを次に示します。

 

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns="http://ns.adobe.com/f4m/1.0" xmlns:hds="http://ns.adobe.com/hds-package/1.0">

 

<hds:frame-rate>29.97</hds:frame-rate>

<hds:frames-per-keyframe-interval>60</hds:frames-per-keyframe-interval>

<hds:content-protection enabled="true">

<hds:protection-scheme>FlashAccessV2</hds:protection-scheme>

<hds:FlashAccessV2>

<hds:content-id>myfile.manifest</hds:content-id>

<hds:common-key-file>common.bin</hds:common-key-file>

<hds:license-server-url>http://mylicenseserver.myhost.com</hds:license-server-url>

<hds:transport-cert-file>transport.der</hds:transport-cert-file>

<hds:license-server-cert-file>server.der</hds:license-server-cert-file>

<hds:packager-credential-file>packager.pfx</hds:packager-credential-file>

<hds:packager-credential-password>??????</hds:packager-credential-password>

<hds:policy-file>policy.pol</hds:policy-file>

</hds:FlashAccessV2>

</hds:content-protection>

</manifest>

 

要素

説明

デフォルト値

//manifest/hds:content-protection/hds:flash-access/hds:common-key-file

共通キーファイルへのパス。ファイルには、16 バイト/ 128 ビットのランダムキーが含まれます。

パスは、jit.conf ファイルへの絶対パスまたは相対パスにする必要があります。

なし

//manifest/hds:content-protection/hds:flash-access/hds:content-id

コンテンツの保護に使用されるコンテンツ ID。指定しない場合、salt がファイル名になります。指定された場合、salt はディレクリ内のすべてのコンテンツで共有されます。

なし

//manifest/hds:content-protection/hds:flash-access/hds:license-server-url

ライセンスサーバーの URL

なし

//manifest/hds:content-protection/hds:flash-access/hds:transport-cert-file

トランスポート証明書ファイルへのパスファイルはDER 形式です。

パスは、jit.conf ファイルへの絶対パスまたは相対パスにする必要があります。

なし

//manifest/hds:content-protection/hds:flash-access/hds:license-server-cert-file

トランスポート証明書ファイルへのパスファイルはDER 形式です。

パスは、jit.conf ファイルへの絶対パスまたは相対パスにする必要があります。

なし

 

 

要素

説明

デフォルト値

//manifest/hds:content-protection/hds:flash-access/hds:packager-credential-file

Packager の資格情報に関する証明書ファイルへのパス。ファイルは PFX 形式です。

パスは、jit.conf ファイルへの絶対パスまたは相対パスにする必要があります。

なし

//manifest/hds:content-protection/hds:flash-access/hds:packager-credential-password

Packager の資格情報のパスワード。

なし

//manifest/hds:content-protection/hds:flash-access/hds:policy-file

ポリシーファイルへのパス。ファイルはAdobe Accessポリシー形式です。

 

パスは、jit.conf ファイルへの絶対パスまたは相対パスにする必要があります。

なし

ライブストリームのパブリッシュ

 

サポートされているエンコーダーから livepkgr サービスへライブストリームまたはマルチビットレートストリームをパブリッシュします。Adobe Access には、特別な設定は不要です。

暗号化されたストリームの再生

     OSMF Media Player は次を実行します。

 ファイルフラグメントを要求し、シームレスにそれを再生します。

 Adobe Access Server for Protected Streamingからコンテンツのライセンスを取得します。コンテンツのライセンスには、有効なクライアントでコンテンツを再生するために必要なキーが含まれます。

c    コンテンツをリアルタイムで復号化します。

 

 

 

最終更新日 2013/9/30