flv metadaten?

tplant

Grünschnabel
Bei mir hat sich im laufe der letzten Tage gezeigt, dass flv Dateien
encodiert via Adobe After Effects und dem Macromedia FLV Exporter 1.2
den Scratchknopf meines Players beim Laden der Datei nicht sofort auf die
Startposition an den Anfang der Scratchbar setzen, sondern diesen an den linken
äusseren Rand schiessen.
Auf die Startpos springt er dann, wenn das erste mal die eingestellte
Buffer-time erreicht wurde.
Seltsamer weise tritt das Problem bei mit Riva oder Sorenson Squeeze
encodierten flv's nicht auf.

Ich poste mal zwei links:
Riva encodiert-
-----------------------------

After Effects:
-----------------------------

Der PLayer ist nicht von mir, funktioniert aber prima und ich denke am AS liegt es nicht.
Kennt Ihr so etwas?

Danke fürs lesen,
tplant
 
Zuletzt bearbeitet:
Hi,

jupp, sieht auf den ersten Blick tatsächlich so aus, als ob das MetaData-Objekt beim zweiten Video am Anfang eine falsche (oder gar keine) Duration zurückgibt. Um genau rauszufinden, woran es liegt, müsste ich das Video vorliegen haben - vielleicht kannst Du es posten.

Im AS lässt sich sowas natürlich vermeiden, indem man die Position des Sliders überprüft. Hast Du die .fla des Players?

Ansonsten kannst Du auch FLV-Dateien nachträglich mit korrekten Metadaten ausstatten, z.B. mit dem MetaData-Injektor: http://www.buraks.com/flvmdi/

Gruß
.
 
Hi,
Du meinst die flv? kannst hier runterladen:
-----------------------------------------------------------

die fla:
-----------------------------------------------------------

viele grüße,
tplant
 
Zuletzt bearbeitet:
Hi,

hmm - ich bekomme für das Video korrekte Metadaten (mit meinem Player wird auch alles korrekt angezeigt). Du kannst aber eine falsche Sliderposition vermeiden, indem Du die onEnterFrame-Methode auf dem MC "scratchBar" änderst:
Code:
onClipEvent (enterFrame) {
	if (zustand == "run") {
		// abspielkopf darf mitlaufen
		_parent.scratchPos = (_parent.ns.time/_parent.videolaenge*_parent.finalPos)+_parent.startPos;
		this._x = _parent.scratchPos;
		if (_parent.scratchPos == Infinity || _parent.scratchPos < 51) {
			this._x = 51;
		}
	}
}
Die Bedingung in Deiner Datei:
Code:
if (_parent.scratchPos != Infinity)
War sowieso unsinnig, da der Abspielknopf damit immer auf der Startposition (51) festgehalten wird.

Gruß
.
 
Hi,
die Metadaten bekommern ich auch korrekt angezeigt.
Die Bedingung übernimmt er, wenn ich sie auch die auf onLoad-Methode anwende
für eine sekunde und springt dann wieder nach links aussen.
Seltsam ist nur, dass das nur bei den AF Files passiert...
Hiervon schon mal etwas gehört?

Dank Dir,
tplant
 
Hi,

ich habe ehrlich gesagt keine Ahnung. Mit onLoad wäre ich übrigens vorsichtig, da dieses Ereignis in einigen Browsern nach einem Reload nicht mehr feuert.

Was Du beschreibst (springt nach einiger Zeit wieder zurück) ließe darauf schließen, dass irgendwann nochmal ein MetaData-Event mit falschen Werten feuert. Das war bei mir aber nicht der Fall.

BTW: Hast Du in der Klasse /de/First Run/Classes/NetStream.as eigentlich den Prototype für onMetaData eingefügt:
Code:
function onMetaData(info:Object):Void;
? (ich nehms mal an, sonst würdest Du wohl keine Daten bekommen)

Gruß
.
 
Ich habs:
Code:
if (_parent.scratchPos == Infinity || _parent.scratchPos < 51) {
geht nicht.
scratchPos war hier der falsche Anspechpartner,

beziehe mich jetzt hier auf _parent.duration, also

Code:
if (_parent.duration == undefined || _parent.scratchPos<51) {
dann klappts.

vielen dank für die Denkanstösse.
tplant
 
Zurück