Utilización de metadatos de vídeo

Se puede utilizar el controlador callback onMetaData para ver la información de metadatos en el archivo FLV. Los metadatos incluyen información sobre el archivo FLV, como la duración, anchura, altura y velocidad de fotograma. La información de metadatos que se añade al archivo FLV depende del software que se utilice para codificar el archivo o del software que se emplee para añadir información de metadatos.

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

El código anterior genera código similar al siguiente, suponiendo que el archivo FLV contiene puntos de referencia y audio:

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

SUGERENCIA

 

Si el vídeo no tiene sonido, la información de metadatos relativa al audio (como audiodatarate) devuelve undefined, ya que no se ha añadido información de audio a los metadatos durante la codificación.

En el código anterior, no se muestra la información de punto de referencia. Para ver los metadatos de punto de referencia, se puede utilizar la función siguiente que muestra de forma sucesiva los elementos en una clase Object:

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

Mediante el fragmento de código anterior para rastrear el parámetro infoObject del método onMetaData(), se crea la salida siguiente:

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

Objetos info para onMetaData

La tabla siguiente muestra los posibles valores para metadatos de vídeo

:

Parámetro

Descripción

audiocodecid

Número que indica el códec de audio (técnica de codificación/descodificación) que se ha utilizado.

audiodatarate

Número que indica la velocidad a la que se ha codificado el audio, expresada en kilobytes por segundo.

audiodelay

Número que indica el tiempo del archivo FLV correspondiente al "tiempo 0" del archivo FLV original. Es necesario demorar ligeramente el contenido del vídeo para sincronizarlo correctamente con el audio.

canSeekToEnd

Valor booleano. Es true si el archivo FLV se codifica con un fotograma clave en el último fotograma, lo que permite buscar hasta el final de un clip de película de descarga progresiva. Es false si el archivo FLV no se codifica con un fotograma clave en el último fotograma.

cuePoints

Matriz de objetos, uno por cada punto de referencia incorporado en el archivo FLV. El valor es undefined si el archivo FLV no contiene ningún punto de referencia. Cada objeto tiene las siguientes propiedades:

  • type: cadena que especifica el tipo de punto de referencia como "navigation" o "event".
  • name: cadena que indica el nombre del punto de referencia.
  • time: número que indica el tiempo del punto de referencia en segundos, con una precisión de tres decimales (milisegundos).
  • parameters: objeto opcional que tiene pares nombre-valor designados por el usuario durante la creación de los puntos de referencia.

duration

Número que especifica la duración del archivo FLV, en segundos.

framerate

Número que especifica la velocidad de fotogramas del archivo FLV.

height

Número que especifica la altura del archivo FLV, en píxeles.

videocodecid

Número que indica la versión de códec que se ha utilizado para codificar el vídeo.

videodatarate

Número que especifica la velocidad de datos de vídeo del archivo FLV.

width

Número que especifica la anchura del archivo FLV, en píxeles.

La tabla siguiente muestra los posibles valores del parámetro videocodecid:

videocodecid

Nombre de códec

2

Sorenson H.263

3

Screen video (sólo en SWF 7 y posterior)

4

VP6 (sólo en SWF 8 y posterior)

5

Vídeo VP6 con canal alfa (sólo en SWF 8 y posterior)

La tabla siguiente muestra los posibles valores del parámetro audiocodecid:

audiocodecid

Nombre de códec

0

uncompressed

1

ADPCM

2

mp3

5

Nellymoser 8kHz mono

6

Nellymoser


Flash CS3

 

Enviarme un mensaje de correo electrónico cuando se añadan comentarios a esta página | Informe de comentarios

Página actual: http://livedocs.adobe.com/flash/9.0_es/main/00000267.html