Ces métadonnées comprennent des informations sur le fichier vidéo (durée, largeur et hauteur d’image, cadence). Les informations de métadonnées ajoutées à votre fichier vidéo dépendent du logiciel que vous utilisez pour coder le fichier vidéo.
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]);
}
}
Le code précédent génère un résultat similaire à celui-ci :
width: 320
audiodelay: 0.038
canSeekToEnd: true
height: 213
cuePoints: ,,
audiodatarate: 96
duration: 16.334
videodatarate: 400
framerate: 15
videocodecid: 4
audiocodecid: 2

Si la vidéo ne contient pas de son, les informations de métadonnées associées à l’audio (telles que
audiodatarate) renvoient
undefined, car aucune information audio n’est ajoutée aux métadonnées pendant l’encodage.Dans le code ci-dessus, les informations de point de repère n’étaient pas affichées. Pour afficher les informations de point de repère, utilisez la fonction suivante, qui affiche de façon récursive les éléments d’un objet :
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 + " " + prop + ": [Object]");
traceObject(val, indent + 1);
}
else
{
trace(indentString + " " + prop + ": " + val);
}
}
}
L’utilisation du code ci-dessus pour suivre le paramètre infoObject de la méthode onMetaData() produit le résultat suivant :
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
L’exemple suivant affiche les métadonnées d’une vidéo MP4. Cet exemple suppose qu’il existe un objet TextArea appelé metaDataOut sur lequel il écrit les métadonnées.
package
{
import flash.net.NetConnection;
import flash.net.NetStream;
import flash.events.NetStatusEvent;
import flash.media.Video;
import flash.display.StageDisplayState;
import flash.display.Loader;
import flash.display.Sprite;
import flash.events.MouseEvent;
public class onMetaDataExample extends Sprite
{
var video:Video = new Video();
public function onMetaDataExample():void
{
var videoConnection:NetConnection = new NetConnection();
videoConnection.connect(null);
var videoStream:NetStream = new NetStream(videoConnection);
videoStream.client = this;
addChild(video);
video.x = 185;
video.y = 5;
video.attachNetStream(videoStream);
videoStream.play("video.mp4");
videoStream.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
}
public function onMetaData(infoObject:Object):void
{
for(var propName:String in infoObject)
{
metaDataOut.appendText(propName + "=" + infoObject[propName] + "\n");
}
}
private function netStatusHandler(event:NetStatusEvent):void
{
if(event.info.code == "NetStream.Play.Stop")
stage.displayState = StageDisplayState.NORMAL;
}
}
}
La fonction onMetaData() a produit le résultat suivant pour cette vidéo :
moovposition=731965
height=352
avclevel=21
videocodecid=avc1
duration=2.36
width=704
videoframerate=25
avcprofile=88
trackinfo=[object Object]
Utilisation de l’objet Information
Le tableau ci-dessous indique les valeurs possibles pour des métadonnées de vidéo qui sont transmises à la fonction de rappel onMetaData() dans l’objet qu’elles reçoivent :
Paramètre
|
Description
|
aacaot
|
Type d’objet audio AAC ; 0, 1 ou 2 pris en charge.
|
avclevel
|
Numéros de niveau AVC IDC, tels que 10, 11, 20, 21, et ainsi de suite.
|
avcprofile
|
Numéros de profil AVC, tel que 55, 77, 100, et ainsi de suite.
|
audiocodecid
|
Chaîne qui indique le codec audio (technique de codage/décodage) utilisé ; par exemple, « .Mp3 » ou « mp4a ».
|
audiodatarate
|
Nombre qui indique le taux d’encodage du son, en ko/s.
|
audiodelay
|
Nombre qui indique la valeur temporelle 0 du fichier FLV d’origine. Le contenu vidéo doit être légèrement retardé pour synchroniser correctement l’audio.
|
canSeekToEnd
|
Valeur booléenne définie sur true si le fichier FLV est codé avec une image-clé sur la dernière image, qui permet de rechercher jusqu’à la fin d’un fichier vidéo téléchargé progressivement. Elle est définie sur false si le fichier FLV n’est pas codé avec une image-clé sur la dernière image.
|
cuePoints
|
Tableau d’objets (un par point de repère intégré dans le fichier FLV). Cette valeur n’est pas définie si le fichier FLV ne contient pas de points de repère. Chaque objet possède les propriétés ci-dessous.
type : chaîne qui spécifie le type de point de repère : « navigation » ou « event ».
name : chaîne représentant le nom du point de repère.
time : nombre correspondant à l’heure du point de repère (en secondes) avec une précision de trois chiffres (millisecondes).
parameters : objet facultatif possédant des paires nom-valeur désignées par l’utilisateur au moment de la création des points de repère.
|
duration
|
Nombre indiquant la durée du fichier vidéo, en secondes.
|
framerate
|
Nombre indiquant la fréquence d’images du fichier FLV.
|
height
|
Nombre indiquant la hauteur du fichier FLV, en pixels.
|
seekpoints
|
Tableau qui répertorie les images-clés disponibles en tant que cachets d’horodatage, en millisecondes. Facultatif.
|
balises
|
Tableau de paires clé-valeur qui représente les informations dans l’atome « ilst » (l’équivalent des balises ID3 des fichiers MP4). iTunes utilise ces balises. Elles peuvent être utilisées pour afficher des illustrations, le cas échéant.
|
trackinfo
|
Objet qui fournit des informations sur toutes les pistes d’un fichier MP4, y compris sur l’ID de description de l’échantillonnage.
|
videocodecid
|
Chaîne indiquant la version codec utilisée pour coder la vidéo. Par exemple : « avc1 » ou « VP6F ».
|
videodatarate
|
Nombre indiquant la vitesse de transmission vidéo du fichier FLV.
|
videoframerate
|
Cadence de la vidéo MP4.
|
width
|
Nombre indiquant la largeur du fichier FLV, en pixels.
|
Le tableau suivant répertorie les valeurs possibles du paramètre videocodecid :
videocodecid
|
Nom du codec
|
2
|
Sorenson H.263
|
3
|
Screen video (SWF versions 7 et les versions ultérieures uniquement)
|
4
|
VP6 (SWF versions 8 et les versions ultérieures uniquement)
|
5
|
VP6 avec canal alpha (SWF versions 8 et les versions ultérieures uniquement)
|
Le tableau suivant répertorie les valeurs possibles du paramètre audiocodecid :
audiocodecid
|
Nom du codec
|
0
|
non compressé
|
1
|
ADPCM
|
2
|
Mp3
|
4
|
Nellymoser @ 16 kHz mono
|
5
|
Nellymoser, 8kHz mono
|
6
|
Nellymoser
|
10
|
AAC
|
11
|
Speex
|