ストリーミングメディア

ストリームメディア

メディア(オーディオ、ビデオおよびデータを含む場合があります)はクライアントと Flash Media Server の間でリアルタイムに送信され、到着すると表示されます。このようなデータ送信は「ストリーミング」と呼ばれます。クライアントと Flash Media Server の間でストリーミングされるメディアは「ストリーム」と呼ばれます。ストリームはパブリッシュ/サブスクライブモデルを使用します。「サブスクライブ」とは再生を意味します。クライアントとサーバーのどちらでもストリームをパブリッシュできますが、ストリームを再生できるのはクライアントだけです。メディアは RTMP または HTTP 経由でストリーミングできます。

例えば、作成者が Adobe Flash Media Live Encoder を使用して、基調講演のライブのオーディオとビデオをキャプチャしてエンコードし、サーバーにパブリッシュしたとします。ユーザーはこの講演を、ストリームにサブスクライブする Flash Player または AIR クライアントで見ることができます。

別のシナリオでは、ソーシャルメディア Web サイトのユーザーは、ライブストリームをビデオチャットアプリケーションでパブリッシュできます。この場合、ユーザーの PC カメラからビデオを Flash Player でキャプチャすることになります。ソーシャルメディアサイトの他のユーザーは、ストリームをライブで見ることができます。また、開発者が機能を追加した場合は、記録されたストリームを後で再生することができます。

注意: Flash Media Streaming Server を除くサーバーのすべてのエディションでは、ライブストリームを記録して後で再生することができます。

サーバーはストリームを、クライアントまたは他のサーバーに対してパブリッシュできます。例えば、XML データをサーバーサイドスクリプトに取り込んで再生リストを作成し、それをクライアントにストリームとしてパブリッシュすることもできます。より多くのクライアントをサポートするため、あるサーバーから他のサーバーにストリームをパブリッシュし、ライブブロードキャストアプリケーションの規模を調整することができます。

メディアのマルチキャスト

マルチキャスティングは、オーディオおよびビデオデータを、RTMFP グループのメンバー間で配信します。サーバーはデータを各クライアントに送信しません。データはピア間で配信されます。マルチキャスティングにより、少ないパブリッシュ元が大量のデータを送信できます。メディアをマルチキャストするには、GroupSpecifier クラスを使用して、RTMFP グループを示す不透明な groupspec 文字列を構築します。groupspec を NetStream コンストラクターに渡します。マルチキャストデータに対し、NetStream.publish() または NetStream.play() を呼び出します。データをマルチキャストするには、クライアントサイド NetStream クラスとサーバーサイド NetStream クラスを使用できます。「マルチキャスティング」を参照してください。

サポートされるプロトコル

RTMP (Real-Time Messaging Protocol)

すべてのサーバーエディションは Flash Player および AIR と、RTMP(Real-Time Messaging Protocol)を介して通信します。RTMP は負担が大きいストリームをリアルタイムに配信できるよう最適化されています。1 つの RTMP 接続で、任意の数のストリームのマルチプレックス接続を実行できます。各ストリームには、同期されたオーディオ、ビデオおよびデータのチャネルが含まれます。リモートメソッドの呼び出しと共有オブジェクトメッセージは、データ専用ストリームで伝達されます。

Flash Media Server は、次の種類の RTMP 接続をサポートしています。

RTMP
これは標準の、暗号化されない RTMP です。デフォルトのポートは 1935 です。ポートが指定されていない場合、クライアントは 1935、443、80(RTMP)、80(RTMPT)という順序でポートへの接続を試みます。

RTMPT
このプロトコルは HTTP を介してトンネリングされた RTMP です。RTMP データは有効な HTTP としてカプセル化されます。デフォルト値は 80 です。

RTMPS
このプロトコルは SSL を介した RTMP です。SSL は、TCP/IP 上での通信を保護するプロトコルです。Flash Media Server では、外部からと外部への両方の SSL 接続をネイティブでサポートしています。デフォルト値は 443 です。

RTMPE
このプロトコルは、RTMP の暗号化されたバージョンです。RTMPE は SSL より高速で、証明書の管理を必要とせず、サーバーの Adaptor.xml ファイルで有効にされます。ポートを明示的に指定しないで RTMPE を指定すると、Flash Player は RTMP の場合と同様に 1935(RTMPE)、443(RTMPE)、80(RTMPE)、80(RTMPTE)という順序でポートをスキャンします。

RTMPTE
このプロトコルは、暗号化されたトンネリング接続を使用する RTMPE です。デフォルト値は 80 です。

RTMFP (Real-Time Media Flow Protocol)

このプロトコルは、UDP ベースであり、Flash Player または AIR と Flash Media Server 間のセキュアなネットワーク伝送です。UDP は RTMP より送信の損失があり、待ち時間が少なく、優先順位付けが優れています。RTMFP は、クライアントとサーバー間およびピアツーピアの通信に使用できます。RTMFP を使用すると、クライアントはサーバーを介してメディアをリレーすることなくオーディオおよびビデオを相互にパブリッシュおよび再生することができます。クライアントが相互にデータを渡すためには、Flash Media Server に接続する必要があります。RTMFP を使用して、ピアアシストネットワーキングアプリケーションを構築できます。また、RTMFP は従来のブロードキャストアプリケーションにも使用できます。

プロトコルの詳細については、詳細については、アドビ システムズ社のコンピューターサイエンティスト Jozsef Vass の記事「Benefits of RTMFP」を参照してください。

RTMFP の使用の詳細については、「ピアアシストネットワーキングアプリケーションの構築」を参照してください。

RTMFP を使用するためのサーバーの設定の詳細については、「 ピアアシストネットワーキングの IP アドレスとポートの設定」を参照してください。

HTTP (Hypertext Transfer Protocol)

プログレッシブダウンロード

Apache HTTP Server を Flash Media Server とともにインストールする場合は、クライアント SWF ファイル、コンテナ HTML ページ、および追加のアセットを HTTP 経由で配信できます。

さらに、クライアントサイド ActionScript を記述することができます。これにより、Apache では、RTMP ストリーミングに失敗した場合、HTTP プログレッシブダウンロードを通じてメディアアセットを配信することができます。例えば、クライアントで RTMP 経由でビデオをストリームして失敗した場合、サーバーでは HTTP 経由で RTMP のトンネリングが試みられます。この試行に失敗した場合、サーバーは HTTP 経由でビデオを配信します。

Apache HTTP Server の設定」を参照してください。

Adobe HTTP Dynamic Streaming および Apple HTTP Live Streaming

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

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

HTTP Dynamic Streaming はこれらの手法を組み合わせます。HTTP Dynamic Streaming は、Flash Player クライアントがファイル全体をダウンロードせずにすぐアクセスできるフラグメントに、メディアファイルをパッケージ化します。Adobe HTTP Dynamic Streaming に含まれる複数のコンポーネントが連携して、メディアをパッケージ化し、HTTP 経由で Flash Player にストリーミングします。これらのコンポーネントでは Flash Media Server もインストールされます。

Flash Media Server 4.0 は、HTTP Dynamic Streaming のライブリアルタイムパッケージングをサポートしています。

Flash Media Server 4.5 では、Apple HTTP Live Streaming のライブおよびオンデマンドリアルタイムパッケージングのサポートが追加されています。HTTP 上で Flash Player、AIR および iOS デバイスにオンデマンドおよびライブメディアを配信します。

Flash Media Server 4.5 では、Adobe HTTP Dynamic Streaming のオンデマンドリアルタイムパッケージングのサポートも追加されています。

Adobe HTTP Dynamic Streaming および Apple HTTP Live Streaming 用の Apache の設定」、「ライブメディアのストリーミング(HTTP)」および「オンデマンドメディアのストリーミング(HTTP)」を参照してください。

サポートされているファイル形式とコーデック

ファイル形式とコーデックの違いを理解しておくことは重要です。ファイル形式は、1 つ以上のメディアが格納されるコンテナーです。F4V はファイル形式です。コーデックは、メディアの形式を示します。H.264 はコーデックです。コンテナーには複数のメディアを含めることができます。例えば、F4V ファイルには AAC コーデックを使用するオーディオと H.264 コーデックを使用するビデオを含めることができます。

ファイル形式

すべてのエディションの Flash Media Server が次のファイル形式をストリーミングします。

FLV
すべてのバージョンの Flash Media Server が FLV ファイル形式の再生と記録をサポートしています。オンデマンド、リアルタイム HTTP Dynamic Streaming は FLV 形式をサポートしません。

F4V(MPEG-4 互換)
Flash Media Server バージョン 3 以降は、MPEG-4 Part 12 のコンテナ形式に格納されている、Flash Media Server でサポートされるすべてのオーディオおよびビデオコーデックの再生をサポートしています。MPEG-4 形式でサポートされるファイル形式には、F4V、MP4、M4A、MOV、MP4V、3GP および 3G2 があります。

Flash Media Server 3.5 では、MPEG-4 形式での記録に対するサポートが導入されています。Flash Media Server でサポートされるコーデックを含むライブビデオストリームおよびライブオーディオストリームは、サーバー上で F4V 形式で記録することができます。

重要: ファイル内に、Flash Media Server でコーデックがサポートされていないオーディオやビデオの一部が含まれている場合、ストリームのそれらの部分は再生されません。

MP3
MPEG 層 3(mp3)ファイル形式は、データ損失圧縮を使用するオーディオファイル形式です。

RAW
Record and Watch(RAW)ファイル形式では、メディアを、どのバージョンの Flash Player にもストリーミングされる設定可能なブロックに記録します。RAW ファイル形式を使用して、パフォーマンスに関する問題を引き起こさずに、長い複数のビットレートに対応する DVR ストリームを提供します。RAW ファイル形式は、H.264 ビデオ、データのみ、オーディオのみなどを含む Flash Media Server がサポートするすべてのストリームを記録および再生します。

F4M
Flash Media マニフェストファイルフォーマットでは、Flash メディアアセットについての情報が含まれます。マニフェスト情報には、メディアの場所、コーデック、解像度、複数のビットレートでエンコードされたファイルの可用性、DRM 認証情報などが含まれます。HTTP Dynamic Streaming 向けの F4M ファイル形式を使用します。

F4F
F4F ファイル形式では、メディアコンテンツをセグメントとフラグメントに分割する方法が説明されています。各フラグメントには、キャッシュ管理と高速シークを提供する固有のブートストラップ情報があります。HTTP Dynamic Streaming 向けの F4M ファイル形式を使用します。

コーデックがサポートするファイル形式、サーバーバージョン、および Flash Player のバージョンを確認するには、次の表を使用します。

ファイル形式

コーデック

Flash Media Server バージョン

Flash Player バージョン

FLV

Sorenson Spark

1

6; AIR 1; Flash Lite 3

FLV

Nellymoser

1

6; AIR 1; Flash Lite 3

FLV

On2 VP6

1

8; AIR 1; Flash Lite 3

FLV

Speex

3

10; AIR 1.5

MPEG-4:F4V、MP4、M4V、3GPP

H.264*

再生:3、記録:3.5

9,0,115,0; AIR 1

MPEG-4:F4V、MP4、M4V、3GPP

AAC+/HE-AAC/AAC v1/AAC v2

再生:3、記録:3.5

9,0,115,0; AIR 1

MPEG-4:F4V、MP4、M4V、3GPP

MP3

再生:3、記録:3.5

9,0,115,0; AIR 1

MPEG-4:F4V、MP4、M4V、3GPP

On2 VP6

再生:3、記録:3.5

9,0,115,0; AIR 1

mp3

mp3

1

6; AIR 1; Flash Lite 3

RAW

Flash Player でサポートされるすべてのコーデック。

3.5.3

6; AIR 1; Flash Lite 3

F4M

N/A

4.0

10.1, AIR 2

F4F

Flash Player(mp3 と Speex を除く)でサポートされるすべてのコーデック。

4.0

10.1, AIR 2

注意: Flash Player での H.264 再生では、Base、Main、HiP などのほとんどのプロファイルがサポートされます。F4V 形式は、MPEG-4 ISO 14496-10 および AAC+(ISO 14496-3)のサブセットです。

コーデック

Flash Media Server では、オーディオおよびビデオ情報をエンコードしたり、デコードしたりしません。Flash Media Server では、既にエンコードされたメディアをストリーミングします。

オンデマンドメディアをエンコードするには、ターゲットの Flash Player または AIR のバージョンをサポートするコーデックを使用します。

ライブビデオのキャプチャ、エンコードおよびストリーミングを行う場合は、Flash Media Live Encoder を使用するか、ActionScript を使用して独自の Flash Player または AIR クライアントを構築することができます。Flash Media Live Encoder 2.5 以降では、ビデオを On2 VP6 コーデック または H.264 コーデックでエンコードします。Flash Player と AIR は、Sorenson Spark コーデックを使用してライブビデオをエンコードし、独自仕様の Nellymoser のコーデックを使用してライブオーディオをエンコードします。

次の表に、サポートするコーデックと、必要とされる最も古い SWF ファイル形式および Flash Player のバージョンを示します。

コーデック

オーディオまたはビデオ

SWF ファイル形式のバージョン(サポートされる最も古いパブリッシュバージョン)

Flash Player のバージョン (再生に必要なバージョン)

Sorenson Spark

ビデオ

6

6、Flash Lite 3, AIR 1

Nellymoser

オーディオ

6

6、Flash Lite 3, AIR 1

mp3

オーディオ

6

6、Flash Lite 3, AIR 1

On2 VP6

ビデオ

8

8、Flash Lite 3, AIR 1

H.264(MPEG-4 Part 10)

ビデオ

9

9 Update 3、AIR1

AAC(MPEG-4 Part 3)

オーディオ

9

9 Update 3、AIR1

Speex

オーディオ

10

10、AIR 1.5

注意: Flash Player と AIR がアルファチャネルをサポートするのは On2 VP6 コーデックの場合のみです。

Flash Player 9 Update 3(9, 0, 115, 0)は、次の MPEG-4 ファイル形式標準のサブセットの再生をサポートしています。

MPEG-4 標準

Flash Player 9 アップデート 3/AIR のサポート

ISO/IEC 14496-3(Audio AAC)

AAC Main、AAC LC、SBR. これらのコーデックは HE-AAC としても知られています。

ISO/IEC 14496-10(Video AVC)

Base(BP)、Main(MP)、High(HiP)。すべてのレベルがサポートされます。

ISO/IEC 14496-12(コンテナ)

オーディオトラック 1 つ、ビデオトラック 1 つ

3GPP TS 26.245(Timed Text Format)

フルサポート

サポートされるメタデータ形式

Adobe Extensible Metadata Platform (XMP) メタデータを埋め込んだビデオストリーミングを、Flash Media Server を通じて Flash Player に配信するようになっています。XMP は、ファイルに関するデータをファイル自体に埋め込むことができるラベリング技術です。XMP メタデータは、重要なメディア情報を、メディアが作成された位置からメディアが表示される位置まで通信するシステムです。XMP により、アプリケーションやパブリッシュシステムでメタデータをキャプチャして共有し、活用することができます。Flash Media Server では、メディアファイル内に埋め込まれているすべてのメタデータが正確に配信されます。さらに、ファイル内に埋め込まれ、Adobe Media Encoder CS4 からエンコードされた speech-to-text メタデータも配信することができます。XMP の詳細については、www.adobe.com/go/learn_fms_xmp_jp(英語)を参照してください。