Ich habe massiv Probleme mit dem Rendern von Videos auf einem Sprite. Manche werden komplett angezeigt, von manchen wird nur der Ton wiedergegeben, bei manchen stürzt das Programm ab. Die Videos werden im Mediaplayer (meistens) problemlos wiedergegeben. K-Lite-Codecpack habe ich probiert, hat aber nur bedingt geholfen.
Die Wiedergabe an sich funktioniert im Prinzip, es liegt an den Codecs bzw. deren Verwendung mit der Movielib. Daher war die Idee, eine andere Lib zu verwenden, zum Beispiel vom VLC-Player. Da gibt es nur zwei Probleme: Ich hab keine Ahnung, wie ich die ansprechen könnte. Und ich hab keine Ahnung, wie ich das auf ein PB-eigenes Sprite bekomme. Und ich hab zwar einige Hinweise gefunden, dass man eine andere Movielib verwenden könne, aber nichts Konkretes für meinen Fall: Movie auf Sprite.
Für einen Ansatz, wie ich das implementieren könnte, wäre ich dankbar...
Video auf Sprite rendern
Wenn Du es irgendwie vermeiden kannst, solltest Du RenderMovieFrame()
nicht verwenden..
Zum einem werden nicht alle Codecs unterstützt, zum anderen ist die
Implementierung für DirectX9 leider fehlerhaft und stürtzt immer mit
einem Illegal Memory Access ab...
nicht verwenden..
Zum einem werden nicht alle Codecs unterstützt, zum anderen ist die
Implementierung für DirectX9 leider fehlerhaft und stürtzt immer mit
einem Illegal Memory Access ab...
"Papa, ich laufe schneller - dann ist es nicht so weit."
Naja, immer nicht, aber leider sehr oft. Und darum will ich das irgendwie umgehen und am liebsten keine DX-Routinen verwenden. Gibt es sowas auch für OpenGL?
Das Rendern auf den Sprite hat nur den Grund, dass ich damit Videos in Echtzeit ein- und ausblenden bzw. überblenden kann. Hab keine Idee, wie ich das sonst realisieren soll.
Btw: Ohne Sprite ist auch nicht das Wahre, mitunter wird dann das Video - was als Overlay läuft - nicht angezeigt oder erst nach Klick in das Fenster angezeigt. Das ist aber ein Problem, was andere Player auch ab und zu haben.
Das Rendern auf den Sprite hat nur den Grund, dass ich damit Videos in Echtzeit ein- und ausblenden bzw. überblenden kann. Hab keine Idee, wie ich das sonst realisieren soll.
Btw: Ohne Sprite ist auch nicht das Wahre, mitunter wird dann das Video - was als Overlay läuft - nicht angezeigt oder erst nach Klick in das Fenster angezeigt. Das ist aber ein Problem, was andere Player auch ab und zu haben.
-
DarkDragon
- Beiträge: 6291
- Registriert: 29.08.2004 08:37
- Computerausstattung: Hoffentlich bald keine mehr
- Kontaktdaten:
Naja, DirectShow ist neuer als VFW (Video For Windows) und unterstützt mehr Codecs und soweit ich weiß heißt das neueste das es hierzu gibt WMI (Windows Media Interface).
VFW wird oft mit OpenGL verwendet, da es recht einfach ist die Frames im RGB Format auszulesen. VFW unterstützt zudem nur Videos unter 2GB (Oder vllt. sogar 1, da war nämlich noch was, dass die explizit noch eine tiefere Schranke genommen haben).
http://nehe.gamedev.net/data/lessons/le ... ?lesson=35
VFW wird oft mit OpenGL verwendet, da es recht einfach ist die Frames im RGB Format auszulesen. VFW unterstützt zudem nur Videos unter 2GB (Oder vllt. sogar 1, da war nämlich noch was, dass die explizit noch eine tiefere Schranke genommen haben).
http://nehe.gamedev.net/data/lessons/le ... ?lesson=35
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.