DirectShowSource
DirectShowSource(string filename, int fps, bool seek)
DirectShowSource öffnet filename mittels DirectShow, das
ist das gleiche Multimedia-Wiedergabe-System, das auch der Windows Media Player
verwendet. Daher können die meisten Formate gelesen werden, welche vom
Media Player abgespielt werden, auch MPEG, MP3 und QuickTime, und AVIs, welchen
von AVISource nicht unterstützt werden (DV type 1). Man sollte
immer zuerst versuchen, die Datei mit AVISource versuchen..
Es gibt einige Probleme:
- Kein Audio
- Keine GRF-Dateien
- Manche Decoder (z.B. MS MPEG-4) erzeugen ein Video, dass am Kopf steht.
Man muss dann FlipVertical verwenden.
- DirectShow Videodekoder müssen frame-genaues Suchen nicht unterstützen
(die meisten tun es auch nicht). So lange man daher einen Teil des Videos
sequentiell verwendet, funktioniert alles, kompliziertere Operationen können
jedoch fehlschlagen. Diese Beschränkung gilt nicht für AVIs oder
ander frame-genaue DirectShow Dekoder.
- DirectShow Videodekoders müssen nicht einmal die frame-Rate zurückgeben.
Die meisten machen es zwar, aber z.B. der ASF Dekoder nicht, in diesen Fällen
muss die Rate manuell angegeben werden:
DirectShowSource("video.asf", fps=15).
- Der Microsoft DV Codec wird erkannt und auf das Dekodieren in voller Auflösung
eingestellt.
Vorwärts suchen kann durchgeführt werden, ist aber sehr langsam.
Beim Rückwärtssuchen wird eine Warnung angezeigt, wenn das Video relativ
zur Bildnummer asynchron ist. Wenn diese Suchfunktion sehr langsam ist, kann
sie mit "seek=false" abgeschaltet werden. [v
2.07]