Hallo zusammen,
seit einigen Tagen versuche ich jetzt, per Media Foundation (über SharpDX) Frames aus einem Video (erst mal wmv-Format) in den Hauptspeicher zu lesen. Das aktuelle Coding dazu könnt ihr euch hier auf GitHub anschauen: MediaFoundationVideoReader. Mein Quellcode basiert dabei großteils auf diesem Beispiel von MS: Using the Source Reader to process media data
Eigentlich würde es ja gut aussehen.. der SourceReader ließt jeden Frame, ich bekomme einen Buffer, Auflösung passt, Anzahl der Frames passt usw.. ABER: In jedem gelesenen Frame ist im Speicherblock (->MediaBuffer) jeder Byte auf 0.
Wer es ausprobieren möchte:
Im Projekt FrozenSky.Tests.Rendering ist ein Test per XUnit kodiert (Methode ReadSimple_WmvVideo), welcher eine Beispiel WMV-Datei lädt und das 10. Frame einfach auf den Desktop schreibt. Später soll das dann mit einem Referenz-Bild verglichen werden, aber zum Testen schreibe ich das erst einmal auf den Desktop.
Was ich schon probiert habe und wo ihr mir evtl. helfen könnt:*Relativ viel mit den Parametern rumgespielt und auch versucht, einige Hinweise aus dem Internet anzuwenden (siehe Kommentare im Code) *Tja, Google suche.. seltsamerweise hätte ich aber genau ein solches Problem nirgends gefunden *Es gäbe eigentlich noch ein Beispiel im Windows SDK (VideoThumbnail), welches genau das macht, was ich möchte. Einen Download oder ähnliches kann ich aber leider nirgends mehr finden. Der Downloadlink unten auf der Seite geht (zumindest heute früh) bei mir auch nicht. Weiß jemand, wohin Microsoft die Beispiele verschoben hat?
Viele Grüße
Roland
Hallo zusammen,
das Thema hat sich erledigt.*Die Beispiele der MediaFoundation kann man mit dem Windows 7 SDK installieren und laufen auch super auf Windows 8.1
edit: Gerade die aktuelle Version auf Github hochgeladen, mit meinem Beispiel Wmv-File läuft der Test jetzt sauber durch.
Gruß und Danke
Roland