Thema: Prism Zeichnen auf Video?

Einzelnen Beitrag anzeigen

Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#17

Re: Zeichnen auf Video?

  Alt 12. Apr 2007, 16:12
Um dem Timer-Gekrampfe mal ein Ende zu bereiten: TMediaplayer sowie viele andere Videoabspielkomponenten zeichnen nicht einfach auf nem Canvas rum, sondern nutzen ein Fensterhandle als Anhaltspunkt dafür, wo das Overlay hin platziert werden soll. Overlay bedeutet dabei, dass dieser Teil des Bildes komplett an der normalen Windows-Grafik vorbei läuft, und man nicht über die üblichen Methoden an die Bilddaten heran kommt, bzw. sie bearbeiten kann. Im Falle des Mediaplayers handelt es sich dabei um ein DirectX Overlay, und an das zu kommen ist echt nicht trivial (gab es auch mal einige Diskussionen zu im Forum, bezogen auf 3D-Spiele. Da ists das selbe Problem.)
Die einfachste Variante ist es, garkeine Playerkomponente an sich dafür zu bemühen, sondern sich die Bilddaten Frameweise aus der Datei zu holen. Um dies zu tun, kann man sich ewig mit der API für Videocodecs beschäftigen, oder man nimmt z.B. Hier im Forum suchenDSPack dafür . Damit lässt sich ein komplettes Video in Bitmaps zerlegt bearbeiten, und je nach dem wie schnell dies von statten geht, kann man nun noch selbst für die Anzeige sorgen. (Alternativ halt wieder mit dem DSPack ein zweites Video encodieren mit den Änderungen.)

Jeder Versuch einfach so auf ein Video zu zeichnen, wird im aller besten Fall flackern wie Hölle, wenn überhaupt
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat