Seite 1 von 1
Movie aus RAM abspielen?
Verfasst: 04.03.2006 11:22
von Gimbly
Hallo,
wenn man mit den Movie-Befehlen ein Video abspielt, arbeitet ständig die Festplatte.
Ich möchte ein kleines (10 MB) avi-Video in einer Endlosschleife abspielen lassen, aber ohne ständigen Festplattenzugriff.
Gibt es eine Möglichkeit das Video ins RAM zu laden und von dort abzuspielen?
Verfasst: 04.03.2006 16:44
von uweb
Wenn Du LoadMovie() nicht durch eigenen Code ersetzen kannst
(Ich schätze der Aufwand wäre, wenn es überhaupt so geht, rießig)
kommst Du an einer Datei nicht vorbei.
Das einzige was ich Dir raten kann ist eine RAM-Disk.
Verfasst: 04.03.2006 22:06
von Gimbly
RAM-Disk wäre keine Lösung, da man die ja nicht nur während der Laufzeit des Programms einrichten und dann wieder rausschmeißen kann.
Verfasst: 05.03.2006 14:44
von uweb
Ja, damit bin ich auch nicht so glücklich.
Einer der Punkte auf meiner langen Liste von
Dingen die ich irgendwann einmal realisieren
(können) will ist WebDAV.
Das ist eine Erweiterung von HTTP um Dateien und
Verzeichnisse zu verwalten.
Es bietet mehr als FTP und läßt sich unter Windows
sehr einfach dynamisch als Netwerkverbindung einbinden.
Du kannst das leicht mit einigen freien Web-Servern testen.
Die greifen dann aber auch nur auf physikalische Dateien zu.
Den Aufwand einen eigenen Server zu schreiben,
der einen davon befreit, sollte man nicht unterschätzen.
Eine andere Alternative kenne ich nicht.
Verfasst: 05.03.2006 15:11
von Gimbly
Na ja,
die Notlösung, die ich im Moment verfolge, ist die, die Movie-Frames auf ein Sprite zu rendern und dieses dann im RAM abzulegen. Beim Abspielen greif ich dann mit Zeigern auf die Frames zu und schreibe sie direkt in den Videospeicher.
Da kommen aber schnell einige 100 MB zusammen, da die Frames ja entkomprimiert werden. Ausserdem geht das mit annehmbarer Geschwindigkeit nur mit Assembler, den ich zum Glück "aus alten Zeiten" noch einigermaßen beherrsche.
Eventuell könnte man die Frame-Daten noch komprimiert speichern und beim Abspielen wieder entkomprimieren, aber das ist natürlich auch wieder einer Geschwindigkeitsfrage.
Alles wirklich nur eine sehr umständliche Notlösung ...