Mich quält schon seit langen das öffnen und extrahieren von Bitmaps aus Videodateien.
Beste Resultate erziele ich bisher mit direktem Zugriff auf die AviSynth.dll
Funktioniert im Hauptthread der Anwendung oder über Synchronize in einem gesonderten Thread meist reibungslos.
Probleme:
1.) Korrupte Videodateien > Komplette Programminstanz friert ein.
2.) Nicht lesbare Videodateien die nicht unbedingt korrupt sein müssen >
Es wird bis zum Ende der Videodatei ohne Erfolg gelesen, was dauern kann.
3.) Da das ganze im Hauptthread läuft, ist das Programm solange lahm gelegt.
Hauptproblem:
Mir ist es bisher noch nicht gelungen, das ganze in einem gesonderten Thread auszuführen. Womit es eben möglich wäre, diesen Thread nötigenfalls abzuschießen. Nicht gut, aber besser als das komplette Programm zu killen.
Vor allem Videos die DirectShow verlangen (WMV, FLV, manche AVI je nach benötigtem Codec) wollen in einem gesonderten Thread einfach keine Frames hergeben.
Mit InitializeCriticalSection hatte ich da bisher auch noch kein Glück.
Nun meine Frage:
Hat jemand Vorschläge, oder kennt gar eine Methode in einem gesonderten Thread Videos zu laden oder Frames zu extrahieren? (Delphi Code bevorzugt)
Meine einzige noch nicht vollzogene Alternative, wäre eine extra Exe die bei Erfolg Frames ans Hauptprogramm sendet und nötigenfalls terminiert werden könnte. Aber…?
In Hoffnung auf positive Antwort(en)
Gruß gispos