AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Videos mit VFW in OpenGL Darstellen
Thema durchsuchen
Ansicht
Themen-Optionen

Videos mit VFW in OpenGL Darstellen

Ein Thema von Reddog · begonnen am 24. Mai 2006 · letzter Beitrag vom 5. Nov 2010
Antwort Antwort
Benutzerbild von Reddog
Reddog

Registriert seit: 18. Jul 2004
Ort: Würzburg
56 Beiträge
 
#1

Videos mit VFW in OpenGL Darstellen

  Alt 24. Mai 2006, 12:39
Hallo,

ich stell jetzt doch mal meine Frage, nachdem ich alles abgesucht habe.

Ich möchte Videos in OpenGL abspielen. Dazu schien mir ziemlich VFW geeignet zu sein.
Hab auch schon ein kleines Testprogramm fertig. Das funktioniert aber leider nur bei unkomprimierten
AVI-Dateien. Andere Dateien werden zwar auch geöffnet, aber brechen ab, beim Aufruf von AviStreamGetFrameOpen.
Das heißt dann laut Hilfe, dass kein Dekompressor gefunden wurde.

Die codecs müssten bei mir aber installiert sein, zumindest gehen die AVIs ja im MediaPlayer u.s.w.

Ich hab versucht AviStreamGetFrameOpen mit nil als zweiten Parameter oder mit einem gewünschten Format aufzurufen mit dem gleichen Resultat.

Tja, vielleicht kann mir ja jemand helfen. Wie's ausschaut hat Aya auch was mit OpenGL und VFW vor.
Also Danke schon mal.

Reddog.
All prime numbers are odd with the exception of two, which is an odd prime
  Mit Zitat antworten Zitat
Benutzerbild von Reddog
Reddog

Registriert seit: 18. Jul 2004
Ort: Würzburg
56 Beiträge
 
#2

Re: Videos mit VFW in OpenGL Darstellen

  Alt 24. Mai 2006, 13:13
Noch ne ganz blöde Frage dazu: liegt das daran, dass ich ffdshow installiert habe und das nur mit DirectShow arbeitet?
All prime numbers are odd with the exception of two, which is an odd prime
  Mit Zitat antworten Zitat
Benutzerbild von Aya
Aya

Registriert seit: 24. Jul 2003
Ort: Kassel
138 Beiträge
 
Delphi 6 Professional
 
#3

Re: Videos mit VFW in OpenGL Darstellen

  Alt 24. Mai 2006, 21:46
Hi,

dasselbe problem habe ich mit VFW auch... funktioniert nur bei 50% aller AVIs...
Steige deswegen grad auf DirectDraw um, der bekommt dann sogar WMVs etc proclemlos hin (und man kann auch DirectDraw als Texturen in OpenGL benutzen)

Aya~
I aim for my endless dreams and I know they will come true!
S: String = #86^)^3^)^4#58#32^(^4^4^0#58#47#47^7^7^7#46^+^/^3^(^)^'^!^9^!#46^$^%;
  Mit Zitat antworten Zitat
Benutzerbild von Reddog
Reddog

Registriert seit: 18. Jul 2004
Ort: Würzburg
56 Beiträge
 
#4

Re: Videos mit VFW in OpenGL Darstellen

  Alt 25. Mai 2006, 11:36
Also ich beschäftige mich gerade mit SDL insbesondere mit der SMPEG.dll. Da gibt's JEDI-Header zu. Das sollte auch alles (oder vieles) unterstützen, ist aber auch sehr portabel. DirectDraw lässt sich, nehm ich mal an, nicht so gut auf Linux portieren. Naja mal schauen was dabei herauskommt. Schade, VFW war schön einfach.

Danke für die Antwort.
All prime numbers are odd with the exception of two, which is an odd prime
  Mit Zitat antworten Zitat
Benutzerbild von Reddog
Reddog

Registriert seit: 18. Jul 2004
Ort: Würzburg
56 Beiträge
 
#5

Re: Videos mit VFW in OpenGL Darstellen

  Alt 25. Mai 2006, 12:14
Sag mal Aya kannste mir das mit DirectDraw und OpenGL Texturen etwas genauer erklären?
Weil SMPEG ist natürlich auch nur für mpegs (wer hätte das gedacht ). Vielleicht muss ich ja doch directdraw benutzen, aber wäre sehr gut, wenn ich trotzdem in OpenGL zeichnen könnte.
All prime numbers are odd with the exception of two, which is an odd prime
  Mit Zitat antworten Zitat
Benutzerbild von Aya
Aya

Registriert seit: 24. Jul 2003
Ort: Kassel
138 Beiträge
 
Delphi 6 Professional
 
#6

Re: Videos mit VFW in OpenGL Darstellen

  Alt 25. Mai 2006, 15:59
Hi,

bin im moment auch noch dabei mich in DirectDraw einzuarbeiten..

Les mal hier:
Weblink zu Microsoft MSDN: Grabbing a Poster Frame

Damit bekommt man immerhin ein Bild des Videos.. aber, leider ist die variante viel zu langsam um damit ein video flüssig abzuspielen... die andere methode ist via SampleGrabber (auch da beschrieben, bzw ein kapitel höher). Geht zwar damit ziemlich problemlos etc, aber damit hast du nur die selben möglichkeiten als würdest du z.B. ne TMediaPlayer Komponente benutzen... zumindest habe ich damit nochnicht rausgefunden wie ich einfach Frame 1, 2, 3, 4 und 5 nacheinander grabben kann, so wie es mit vfw geht..

Aya~
I aim for my endless dreams and I know they will come true!
S: String = #86^)^3^)^4#58#32^(^4^4^0#58#47#47^7^7^7#46^+^/^3^(^)^'^!^9^!#46^$^%;
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#7

AW: Videos mit VFW in OpenGL Darstellen

  Alt 5. Nov 2010, 02:20
Versuche mich auch gerade mit VFW da ich ebenfalls ein Video auf OpenGl Darstellen will
Mein Problem ist nur Das D2009 ärger macht mit der Konvertierung von PChar nach PAnsiChar

Delphi-Quellcode:
procedure OpenAVI(filename : String);
begin
  AVIFileInit;
  if AVIFileOpen(AviFile, PChar(FileName), OF_READ or OF_SHARE_DENY_WRITE, nil) = 0 then
function AVIFileOpen(var ppfile: PAVIFILE; szFile: LPCSTR; uMode: UINT; lpHandler: PCLSID): HResult; stdcall; external AVIFILDLL name 'AVIFileOpenA'; Das problem ist das wenn ich PAnsiChar anstelle von PChar verwende
meckert der Compiler
Zitat:
[DCC Warnung] cube.dpr(107): W1044 Bedenkliche Typumwandlung von string in PAnsiChar
Wenn ich nun das Video starten will funktioniert es nicht..
Denke das liegt daran das Die Library PChar erwartet und nichts anderes akzeptiert.

Unter D2006 gibt es da keine probleme..

Was machen ?

gruss
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#8

AW: Videos mit VFW in OpenGL Darstellen

  Alt 5. Nov 2010, 07:04
@EWeiss
procedure OpenAVI(filename : AnsiString);
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#9

AW: Videos mit VFW in OpenGL Darstellen

  Alt 5. Nov 2010, 09:45
@EWeiss
procedure OpenAVI(filename : AnsiString);
Danke schön
soweit war ich auch schon..
AVIStreamOpenFromFile(AVIStream, FileName, streamtypeVIDEO, 0, OF_READ, nil); [DCC Warnung] VisUnit.pas(261): W1057 Implizite String-Umwandlung von 'AnsiString' zu 'string' Und das Video läßt sich nicht laden.

Edit;
Oh hab da was übersehn..
AVIStreamOpenFromFileW
procedure OpenAVI(filename : PWideChar); gruss

Geändert von EWeiss ( 5. Nov 2010 um 10:13 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:08 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz