2009-07-17 9 views
5

Was ist der beste/einfachste Weg, ein Video (mit Ton!) In einer Anwendung mit XAudio2 und Direct3D9/10 anzuzeigen?Anzeigen eines Videos in DirectX

Zumindest muss es in der Lage sein, möglicherweise größere Videos zu streamen, und darauf achten, dass das Windows-Seitenverhältnis von den Videos abweichen kann (z. B. durch Hinzufügen von Letter-Boxen), obwohl idealerweise wie die Fähigkeit zu Betten Sie das Video in eine 3D-Szene ein.

Ich könnte natürlich einen Weg erarbeiten, um jeden Frame in eine Textur zu laden, die einmal gerenderten Texturen zu verwerfen/wiederzuverwenden und das Audio separat über XAudio2 abzuspielen, aber auch einen Loader für mindestens ein Format zu schreiben Ich habe auch mit Sachen wie Synchronisierung der Video - und Audiokomponenten zu tun, also hoffentlich gibt es eine bessere Lösung oder sogar eine fertige freie mit einer geeigneten Lizenz (kommerzielle Distribution in binärer Form, dynamische Verknüpfung ist gut im Fall von sagen LGPL).

+0

DirectShow ist keine Option? Es verwendet Direct3D für das Video-Rendering. –

Antwort

7

In Windows SDK gibt es eine DirectShow example zum Rendern von Video zu Textur. Es behandelt auch Audio-Ausgabe.

Aber es gibt Einschränkungen, und ich kann es ehrlich gesagt nicht einfach nennen.

1

Haben Sie sich Bink video angesehen? Es ist, was viele Spiele für die Videowiedergabe verwenden. Funktioniert gut und Sie müssen nicht das ganze Video-Zeug von Grund auf neu programmieren.

+0

Leider ist es auch sehr teuer. Theora ist eine freie Alternative und vom objektiven Standpunkt her genauso gut. – CodeMouse92