Zurück   Flashforum > Flash > Flash erweitern > Komponenten und SmartClips

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 06-08-2008, 15:24   #1 (permalink)
Neuer User
 
Registriert seit: Aug 2008
Beiträge: 4
FLVPlayback Komponente fehlerhaft ? Bug ?

Hallo Flash Community,

ich nutze bei einem Projekt die FLVPlayback Komponente von Flash CS3.
Es handelt sich dabei um ein AS3 Projekt.

Dabei soll ich lange Videos (2 Std, 240 MB) wiedergeben können.
Die FLVPlayback Komponente kann das natürlich prinzipiell, nur hat die Nutzung der Komponente zur Folge, dass das 240 MB große Video in den Arbeitsspaicher (RAM) des Benutzers geladen wird.
Die ist insofern ein Problem, da ältere Rechner mit wenig RAM damit nicht zurecht kommen.

Das Videos eigentlich auf die Festplatte des Benutzers gespeichert werden sollen beweist die Nutzung der NetConnection und NetStream Klassen.
Nutze ich nähmlich diese Klassen, dann wird das Video während der Wiedergabe auf der Festplatte gespeichert.

Handelt es sich hierbei um einen Fehler der FLVPlayback Komponente ?
oder mache ich was falsch ? kann man da evtl. irgendwas einstellen ?

Ich habe leider keine Möglichkeit gefunden das Verhalten der FLVPlayback Komponente zu verändern.

MFG
Eugen
EugenR32 ist offline   Mit Zitat antworten
Alt 06-08-2008, 16:34   #2 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
FLVs werden normalerweise progressiv downgeloadet, d.h. sie landen im Cache des Browsers. Du kannst das nur umgehen, indem du die FLVs von einem Medienserver/Videoserver streamst.
  Mit Zitat antworten
Alt 06-08-2008, 17:47   #3 (permalink)
Neuer User
 
Registriert seit: Aug 2008
Beiträge: 4
Hallo Holger,

erstmal bin ich froh das mir jemand überhaupt anwortet.
Danke. Ich habe zu meinem Problem nähmlich so gut wie keine Informationen im Internet gefunden.

Progressiv Download ist ja genau das was ich nutzen möchte.
Nur stört es mich, dass die FLV Datei bei Nutzung der FLVPlayback Komponente in den RAM geladen wird.

Ich nutze NetConnection und NetStream ja auch nur zum progressiv Download. Hierbei wird die FLV Datei aber nicht in den RAM, sondern auf die HDD geladen.

Eigentlich baut die FLVPlayback Komponente ja nur auf mehreren Klassen wie eben NetConnection und NetStream auf....
Dann müsste die Komponente doch auch in der Lage sein das Video auf die HDD zu laden.

Gruß
Eugen
EugenR32 ist offline   Mit Zitat antworten
Alt 06-08-2008, 20:44   #4 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Hab ich nicht wirklich verstanden... Noch mal: die FLV wandert in den Cache des Browsers und der liegt nicht im RAM sondern auf der Festplatte in einem bestimmten Verzeichnis...
  Mit Zitat antworten
Alt 06-08-2008, 21:07   #5 (permalink)
Neuer User
 
Registriert seit: Aug 2008
Beiträge: 4
Ich beschreibe das Problem nochmal genauer:


BSP 1)
*****
Auf einen ganz normalen Webserver liegen meine erstellten Daten
- HTML Datei, FLV Video, SWF Datei, PlayerSkin (SWF) für FLVPlayback

Bei Nutzung der FLVPlayback Komponente:
-----------------------------------------
- Sobald ich die HTML Datei in einem Internetbrowser öffne
beginnt der Download der FLV Datei. Die ganze Datei wird in den Browser Cache geladen. Die Datei wird aber im RAM abgespeichert.
- Im Taskmanager sieht man während des Downloads, wie die Belegeung
des Arbeitsspeichers steigt, und man sieht wie der benötigte Speicher des Webbrowser anwächst.


BSP 2)
*****
Auf einen ganz normalen Webserver liegen meine erstellten Daten
- HTML Datei, FLV Video, SWF Datei

Bei Nutzung von NetConnection und NetStream:
----------------------------------------------

Hierbei nutze ich folgende Funktionen:
****************************
var nc:NetConnection = new NetConnection();
nc.connect(null);
var ns:NetStream = new NetStream(nc);
var vid:Video = new Video(320, 240);
vid.attachNetStream(ns);
ns.play('MyVideo.flv');
addChild(vid);
****************************

- Wenn ich nun die HTML Seite im Webbrowser öffne beginnt ebenfalls der Download des FLV Videos. Das Video wird aber auf der Festplatte gespeichert (Unter Cokumente und Einstellungen\[User]\Lokale Einstellungen\Temp\xxx.tmp). Ich kann beobachten wie diese Datei während des Downloads anwächst und am Ende genau die selbe Dateigröße hat wie das FLV Video.
Die Arbeitsspeicher Anzeige im Taskmanager bewegt sich während des Downloads nicht. Auch der angezeigte benötigte Speicherbedarf des Webbrowser bleibt beim gleichen Wert und steigt während des Downloads nicht an.

Ich hoffe damit konnte ich mein Problem genauer beschreiben und freue
mich auf jegliche Art von Antworten.

MFG
Eugen

Geändert von EugenR32 (06-08-2008 um 21:08 Uhr)
EugenR32 ist offline   Mit Zitat antworten
Alt 11-08-2008, 09:42   #6 (permalink)
Neuer User
 
Registriert seit: Aug 2008
Beiträge: 4
Neue Erkentnisse

Hallo,

ich habe mal die Klassen "video" und "videoPlayer" miteinander verglichen und
herausgefunden, dass mein Problem an der videoPlayer Klasse liegt.

Dazu folgende Beispiele:

Test 1)

1: Neues Projekt (ActionScript 3) erstellen
2: folgenden AS3 Code eingeben
PHP-Code:
import flash.events.NetStatusEvent;
import flash.events.SecurityErrorEvent;
import flash.media.Video;
import flash.net.NetConnection;
import flash.net.NetStream;
import flash.events.Event;


var 
customClient:Object = new Object();
var 
videoURL:String "output.flv";
var 
stream:NetStream;

var 
connection:NetConnection = new NetConnection();

// Add Listeners
connection.addEventListener(NetStatusEvent.NET_STATUSnetStatusHandler);
connection.addEventListener(SecurityErrorEvent.SECURITY_ERRORsecurityErrorHandler);

connection.connect(null);

function 
netStatusHandler(event:NetStatusEvent):void {

    
trace("-- function netStatusHandler");

    
trace("target = " event.target " currentTarget = " event.currentTarget);
    switch (
event.info.code) {
        case 
"NetConnection.Connect.Success" :
            
connectStream(NetConnection(event.currentTarget));
            break;
    }
}

function 
securityErrorHandler(event:SecurityErrorEvent):void {

    
trace("securityErrorHandler: " event);
}

function 
asyncErrorHandler(e:AsyncErrorEvent):void {

    
trace("asyncErrorHandler: " e.text);
}
function 
connectStream(connection:NetConnection):void {

    
stream = new NetStream(connection);
    var 
video:Video = new Video();

    
stream.addEventListener(NetStatusEvent.NET_STATUSnetStatusHandler);
    
stream.addEventListener(AsyncErrorEvent.ASYNC_ERRORasyncErrorHandler);

    
video.attachNetStream(stream);
    
video.18;
    
video.120;
    
stream.play(videoURL);

    
addChild(video);


3: größere FLV Datei (ab 50 MB) auf den Webserver laden und VideoURL im AS3 Code anpassen
4: Veröffentlichen
5: Auf einen Webserver hochladen
7: Taskmanager starten
8: C:\Dokumente und Einstellungen\[user]\Lokale Einstellungen\Temp öffnen
9: URL zur eben erstellten HTML Datei auf dem Webserver in eurem Internet Browser eingeben

Und nun beobachten was passiert:
- CPU Last zwischen 5% - 20%
- Es werden keine Daten vom Video in dem Arbeitsspeicher abgelegt
- Eine immer größer werdende .tmp Datei entsteht in dem Temp Ordner.
Dabei handelt es sich um das FLV Video

-------------------------------------------------------


Test 2)
1: Neues Projekt (ActionScript 3) erstellen
2: FLVPlayback Komponente in die Bibliothek ziehen
2: folgenden AS3 Code eingeben
PHP-Code:
import flash.events.NetStatusEvent;
import flash.events.SecurityErrorEvent;
import flash.media.Video;
import flash.net.NetConnection;
import flash.net.NetStream;
import flash.events.Event;
import fl.video.VideoPlayer;




var 
customClient:Object = new Object();
var 
videoURL:String "output.flv";
var 
stream:NetStream;

var 
connection:NetConnection = new NetConnection();

// Add Listeners
connection.addEventListener(NetStatusEvent.NET_STATUSnetStatusHandler);
connection.addEventListener(SecurityErrorEvent.SECURITY_ERRORsecurityErrorHandler);

connection.connect(null);





function 
netStatusHandler(event:NetStatusEvent):void {

    
trace("-- function netStatusHandler");

    
trace("target = " event.target " currentTarget = " event.currentTarget);
    switch (
event.info.code) {
        case 
"NetConnection.Connect.Success" :
            
connectStream(NetConnection(event.currentTarget));
            break;
    }
}

function 
securityErrorHandler(event:SecurityErrorEvent):void {

    
trace("securityErrorHandler: " event);
}

function 
asyncErrorHandler(e:AsyncErrorEvent):void {

    
trace("asyncErrorHandler: " e.text);
}
function 
connectStream(connection:NetConnection):void {

    
stream = new NetStream(connection);
    var 
videoPlayer:VideoPlayer = new VideoPlayer(320,240);

    
stream.addEventListener(NetStatusEvent.NET_STATUSnetStatusHandler);
    
stream.addEventListener(AsyncErrorEvent.ASYNC_ERRORasyncErrorHandler);

    
videoPlayer.attachNetStream(stream);
    
videoPlayer.18;
    
videoPlayer.120;
    
videoPlayer.play(videoURL);

    
addChild(videoPlayer);


3: größere FLV Datei (ab 50 MB) auf den Webserver laden und VideoURL im AS3 Code anpassen
4: Veröffentlichen
5: Auf einen Webserver hochladen
7: Taskmanager starten
8: C:\Dokumente und Einstellungen\[user]\Lokale Einstellungen\Temp öffnen
9: URL zur eben erstellten HTML Datei auf dem Webserver in eurem Internet Browser eingeben

Und nun beobachten was passiert:
- CPU Last zwischen 60% - 80%
- Das Video wird Stück für Stück in den Arbeitsspeicher geladen
- Das Video wird nicht auf der Festplatte gespeichert
- Bei einem 200 MB großen Video und 512 MB RAM, wird das System sozusagen lahmgelegt.

------------------------------------------------

Gibt es einen Grund für dieses verhalten ?
Ist die FLVPlayback Komponente mit Absicht zu konzipiert ?
Es das ein BUG der Komponente ?

MFG
EugenR32
EugenR32 ist offline   Mit Zitat antworten
Alt 18-11-2008, 13:56   #7 (permalink)
alter User
 
Benutzerbild von Marcellus
 
Registriert seit: Jun 2001
Ort: GE
Beiträge: 416
Hallo EugenR32,

hast Du mittlerweile mehr Informationen? Ich stehe gerade vor der Entscheidung ob ich die FLVPlayback-Komponente oder die VideoPlayer-Klasse verwenden soll.
Hab auch schon einen Beitrag geschrieben:
Grundsätzliches: FLVPlayback-Komponente oder Video-Klasse

Aber in diesem Teil des Forums scheint nicht ganz so viel los zu sein.
Irgendwie komm ich mir ziemlich doof vor, wenn ich die ganzen Fragen zur FLVPLayback-Komponente unter Actionscript oder FlashfürFortgeschrittene finde.
__________________
Gruss
Marcellus

Ich bin nicht mehr jung genug, um alles zu wissen.(O.Wilde)

Ein Mensch weiß nicht, was er weiß, bevor er weiß, was er nicht weiß.(T.Carlyle)
Marcellus ist offline   Mit Zitat antworten
Alt 18-11-2008, 14:39   #8 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Zitat:
Irgendwie komm ich mir ziemlich doof vor, wenn ich die ganzen Fragen zur FLVPLayback-Komponente unter Actionscript oder FlashfürFortgeschrittene finde
Ich mir auch, denn da gehören sie nicht hin. Wenn ich entsprechende Beiträge finde, verschiebe ich sie auch in den Komponentenbereich.

Zitat:
Aber in diesem Teil des Forums scheint nicht ganz so viel los zu sein.
Nicht jeder arbeitet mit Video oder Komponenten, nur die Ruhe...
  Mit Zitat antworten
Alt 18-11-2008, 15:16   #9 (permalink)
alter User
 
Benutzerbild von Marcellus
 
Registriert seit: Jun 2001
Ort: GE
Beiträge: 416
...dann gib mal in der Suche "flvplayback" ein

Viel Spaß beim Verschieben, armer agedoubleju...
__________________
Gruss
Marcellus

Ich bin nicht mehr jung genug, um alles zu wissen.(O.Wilde)

Ein Mensch weiß nicht, was er weiß, bevor er weiß, was er nicht weiß.(T.Carlyle)
Marcellus ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist aus.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 13:40 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele