ビデオメタデータの使用

onMetaData コールバックハンドラを使用し、FLV ファイルのメタデータ情報を表示することができます。メタデータには、長さ、幅、高さ、フレームレートなど FLV ファイルに関する情報が含まれています。FLV ファイルに追加されるメタデータ情報は、FLV ファイルをエンコードするためのソフトウェア、またはメタデータ情報を追加するためのソフトウェアによって異なります。

var nc:NetConnection = new NetConnection();
nc.connect(null);

var ns:NetStream = new NetStream(nc);
ns.client = this;
ns.play("video.flv");

var vid:Video = new Video();
vid.attachNetStream(ns);
addChild(vid);

function onMetaData(infoObject:Object):void
{
    var key:String;
    for (key in infoObject)
    {
        trace(key + ": " + infoObject[key]);
    }
}

前述のコードでは、FLV ファイルにキューポイントとオーディオが含まれていると仮定すると、次のようなコードを生成します。

width: 320
audiodelay: 0.038
canSeekToEnd: true
height: 213
cuePoints: ,,
audiodatarate: 96
duration: 16.334
videodatarate: 400
framerate: 15
videocodecid: 4
audiocodecid: 2

ヒント

 

ビデオにオーディオがない場合、エンコード中にメタデータにオーディオ情報が追加されないため、audiodatarate などのオーディオ関連のメタデータ情報は undefined を返します。

前述のコードでは、キューポイント情報は表示されていません。キューポイントメタデータを表示するには、オブジェクトのアイテムを再帰的に表示する次の関数を使用することができます。

function traceObject(obj:Object, indent:uint = 0):void
{
    var indentString:String = "";
    var i:uint;
    var prop:String;
    var val:*;
    for (i = 0; i < indent; i++)
    {
        indentString += "\t";
    }
    for (prop in obj)
    {
        val = obj[prop];
        if (typeof(val) == "object")
        {
            trace(indentString + " " + j + ": [Object]");
            traceObject(val, indent + 1);
        }
        else
        {
            trace(indentString + " " + prop + ": " + val);
        }
    }
}

前述のコード例を使用し、onMetaData() メソッドの infoObject パラメータをトレースすると、出力は次のようになります。

width: 320
audiodatarate: 96
audiocodecid: 2
videocodecid: 4
videodatarate: 400
canSeekToEnd: true
duration: 16.334
audiodelay: 0.038
height: 213
framerate: 15
cuePoints: [Object]
    0: [Object]
        parameters: [Object]
            lights: beginning
        name: point1
        time: 0.418
        type: navigation
    1: [Object]
        parameters: [Object]
            lights: middle
        name: point2
        time: 7.748
        type: navigation
    2: [Object]
        parameters: [Object]
            lights: end
        name: point3
        time: 16.02
        type: navigation

onMetaData の Info オブジェクト

次の表に、ビデオメタデータで使用可能な値をまとめます。

:

パラメータ

説明

audiocodecid

使用されるオーディオコーデック (コード/デコード技法) を示す数値です。

audiodatarate

オーディオがエンコードされるレートをキロバイト秒で示す数値です。

audiodelay

元の FLV ファイルの "time 0" の時間を示す数値です。オーディオと正しく同期化するには、ビデオコンテンツを少し遅延させる必要があります。

canSeekToEnd

FLV ファイルが最終フレームのキーフレームによってエンコードされている場合は true となるブール値です。これにより、プログレッシブダウンロードのムービークリップの末尾をシークすることができます。FLV ファイルが最終フレームのキーフレームでエンコードされていない場合は false となります。

cuePoints

オブジェクトの配列。FLV ファイルに埋め込まれたそれぞれのキューポイントに 1 つずつあります。FLV ファイルにキューポイントがない場合は、値は未定義となります。各オブジェクトには次のプロパティがあります。

  • type : "navigation" NjǾÇÕ "event" ÇýǵǃÉLÉÖÅ[É|ÉCÉìÉgÇÃÉ^ÉCÉvÇšéwíËDzÇÈÉXÉgÉäÉìÉOÇÝDzÅB
  • name : ÉLÉÖÅ[É|ÉCÉìÉgÇÃñºëOÇšï\DzÉXÉgÉäÉìÉOÇÝDzÅB
  • time : ÉLÉÖÅ[É|ÉCÉìÉgÇšïbíPàþÇÝé¶Ç²êîílÇÝDzÅBè¨êîëÊ 3 àþ (É~Éäïb) Ç‹ÇÝï\é¶ÇÝǴNjDzÅB
  • parameters : ÉLÉÖÅ[É|ÉCÉìÉgÇÃçÏê¨éûÇ…ÉÜÅ[ÉUÅ[Ç…ÇÊǡǃéwíËÇŠÇÍÇÈÅAñºëOÇýílÇÃÉyÉAÇýǵǃé¶ÇŠÇÍÇÈÉIÉvÉVÉáÉìÇÃÉIÉuÉWÉFÉNÉgÇÝDzÅB

duration

FLV ファイルの長さを秒単位で示す数値です。

framerate

FLV ファイルのフレームレートを示す数値です。

height

FLV ファイルの高さをピクセル単位で示す数値です。

videocodecid

ビデオのエンコードに使用されたコーデックのバージョンを表す数値です。

videodatarate

FLV ファイルのビデオデータレートを示す数値です。

width

FLV ファイルの幅をピクセル単位で示す数値です。

次の表に、videocodecid パラメータで使用可能な値をまとめます。

videocodecid

コーデック名

2

Sorenson H.263

3

Screen Video (SWF 7 以降のみ)

4

VP6 (SWF 8 以降のみ)

5

アルファチャンネルを使用する VP6 Video (SWF 8 以降のみ)

次の表に、audiocodecid パラメータで使用可能な値をまとめます。

audiocodecid

コーデック名

0

uncompressed

1

ADPCM

2

MP3

5

Nellymoser 8kHz モノラル

6

Nellymoser


 

このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート

現在のページ: http://livedocs.adobe.com/flash/9.0_jp/main/00000267.html