Meta veriler arasında, süre, genişlik, yükseklik ve kare hızı gibi video dosyanız hakkında bilgiler yer alır. Video dosyanıza eklenen meta veri bilgileri, video dosyasını kodlamak için kullandığınız yazılıma bağlıdır.
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]);
}
}
Önceki kod, şunun gibi bir çıktı oluşturur:
width: 320
audiodelay: 0.038
canSeekToEnd: true
height: 213
cuePoints: ,,
audiodatarate: 96
duration: 16.334
videodatarate: 400
framerate: 15
videocodecid: 4
audiocodecid: 2
Videonuzda ses yoksa, kodlama sırasında meta verilere ses bilgisi eklenmediğinden, sesle ilgili meta veri bilgileri (örn.
audiodatarate
)
undefined
değerini döndürür.
Önceki kodda, işaret noktası bilgileri görüntülenmiyordu. İşaret noktası meta verilerini görüntülemek için, Object içindeki öğeleri art arda görüntüleyen şu işlevi kullanabilirsiniz:
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);
}
}
}
onMetaData()
yönteminde
infoObject
parametresini izlemek için önceki kod parçasının kullanılması şu çıktıyı oluşturur:
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
Şu örnek, MP4 video için meta verileri görüntüler. Ayrıca meta verileri yazdığı,
metaDataOut
adında bir TextArea nesnesinin olduğunu varsayar.
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;
}
}
}
onMetaData()
işlevi bu video için şu çıktıyı üretmiştir:
moovposition=731965
height=352
avclevel=21
videocodecid=avc1
duration=2.36
width=704
videoframerate=25
avcprofile=88
trackinfo=[object Object]
Bilgi nesnesini kullanma
Aşağıdaki tablo, aldığı Objecy öğesinde
onMetaData()
geri çağrı işlevine iletilen video meta verileri için olası değerleri gösterir:
Parametre
|
Açıklama
|
aacaot
|
AAC ses nesnesi türü; 0, 1 veya 2 desteklenir.
|
avclevel
|
10, 11, 20, 21, vb. gibi AVC IDC düzey sayısı.
|
avcprofile
|
55, 77, 100, vb. gibi AVC profil sayısı.
|
audiocodecid
|
Kullanılmış olan ses codec bileşenini (kodlama/kod çözme tekniği) belirten bir dize; örneğin, “.Mp3” veya “mp4a”
|
audiodatarate
|
Saniyede kilobayt cinsinden, sesin kodlandığı hızı belirten bir sayı.
|
audiodelay
|
Orijinal FLV dosyasının "0 zamanının", FLV dosyasında ne zaman bulunduğunu belirten bir sayı. Video içeriğinin sesle düzgün şekilde senkronize edilmesi için küçük bir miktar ertelenmesi gerekir.
|
canSeekToEnd
|
FLV dosyası, aşamalı indirme video dosyasının sonuna kadar arama yapılmasını sağlayan son karedeki anahtar kareyle kodlanmışsa
true
olan bir Boolean değeri. FLV dosyası son karedeki bir anahtar kareyle kodlanmamışsa bu
false
olur.
|
cuePoints
|
FLV dosyasında gömülü her işaret noktası için birer tane olmak üzere nesneler dizisi. FLV dosyası herhangi bir işaret noktası içermezse, değer tanımsız olur. Her nesne şu özelliklere sahiptir:
-
type
: "gezinme" veya "olay" olarak işaret noktasının türünü belirten bir dize.
-
name
: işaret noktasının adı olan bir dize.
-
time
: işaret noktasının zamanı olan üç ondalık basamak kesinliğinde (milisaniye) saniye cinsinden bir sayı.
-
parameters
: işaret noktaları oluşturulurken kullanıcı tarafından atanan ad-değer çiftlerine sahip isteğe bağlı bir nesne.
|
duration
|
Video dosyasının saniye cinsinden süresini belirten bir sayı.
|
framerate
|
FLV dosyasının kare hızını belirten bir sayı.
|
height
|
FLV dosyasının piksel cinsinden yüksekliğini belirten bir sayı.
|
seekpoints
|
Milisaniye cinsinden zaman damgası olarak kullanılabilir anahtar kareleri listeleyen bir dizi. İsteğe bağlı.
|
etiketler
|
MP4 dosyalarının ID3 etiketlerine eşdeğer olan "ilst" atomundaki bilgileri temsil eden anahtar-değer çiftleri dizisi. iTunes bu etiketleri kullanır. Varsa, resim görüntülemek için kullanılabilir.
|
trackinfo
|
Örnek açıklama kimliği gibi, MP4 dosyasındaki tüm parçalar hakkında bilgi sağlayan nesne.
|
videocodecid
|
Videoyu kodlamak için kullanılmış olan codec sürümünü belirten bir dize. - örneğin, “avc1” veya “VP6F”
|
videodatarate
|
FLV dosyasının video verisi hızını belirten bir sayı.
|
videoframerate
|
MP4 videosunun kare hızı.
|
width
|
FLV dosyasının piksel cinsinden genişliğini belirten bir sayı.
|
Aşağıdaki tablo,
videocodecid
parametresi için olası değerleri gösterir:
videocodecid
|
Codec adı
|
2
|
Sorenson H.263
|
3
|
Ekran videosu (yalnızca SWF sürüm 7 ve sonrası)
|
4
|
VP6 (yalnızca SWF sürüm 8 ve sonrası)
|
5
|
Alfa kanalı ile VP6 video (yalnızca SWF sürüm 8 ve sonrası)
|
Aşağıdaki tablo,
audiocodecid
parametresi için olası değerleri gösterir:
audiocodecid
|
Codec Adı
|
0
|
sıkıştırılmamış
|
1
|
ADPCM
|
2
|
Mp3
|
4
|
Nellymoser @ 16 kHz mono
|
5
|
Nellymoser, 8kHz mono
|
6
|
Nellymoser
|
10
|
AAC
|
11
|
Speex
|