AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte WebCam mit DirectShow
Thema durchsuchen
Ansicht
Themen-Optionen

WebCam mit DirectShow

Ein Thema von grizzly · begonnen am 5. Jun 2006 · letzter Beitrag vom 24. Mai 2014
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#1

AW: WebCam mit DirectShow

  Alt 6. Mai 2012, 15:33
Sehr schönes Beispiel zur Webcamverwendung. Habe das Teil grade mal unter XE2 kompiliert und mit FakeWebcam getestet. Dort hängt sich die Anwendung allerdings dauerhaft auf, wenn ich folgende Zeile nicht auskommentiere:

Delphi-Quellcode:
FUNCTION TVideoSample.GetStreamInfo(VAR Width, Height: integer; VAR FourCC: dword): HResult;
VAR
  ..
BEGIN
  Width := 0;
  Height := 0;
  // Die folgende Anweisung führt zum Einfrieren des Programms
  // pIMediaControl.Stop;
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
grizzly

Registriert seit: 10. Dez 2004
150 Beiträge
 
Delphi XE4 Professional
 
#2

AW: WebCam mit DirectShow

  Alt 6. Mai 2012, 16:23
Vielen Dank für den Test!

Ich habe diese Zeile bei mir nun auch mal rausgeworfen, sowie die zugehörige Zeile
pIMediaControl.Run; am Ende der Prozedur. Und es macht auf keinem meiner Rechner / Webcams etwas aus. Video läuft nach wie vor.

Jetzt muß ich noch rausbekommen, warum ich diese Zeilen überhaupt drinnen hatte und warum es bei keiner meiner 5 verschiedenen Webcams bisher ein Problem war.
Vielleicht gibt's Ende der Woche die Version 3.11 mit Deiner Änderung...

Gruß
Michael
  Mit Zitat antworten Zitat
grizzly

Registriert seit: 10. Dez 2004
150 Beiträge
 
Delphi XE4 Professional
 
#3

AW: WebCam mit DirectShow

  Alt 9. Jul 2012, 20:59
Neue Version 3.2 im ersten Post.

Da ich für ein anderes Projekt Graustufen Information benötigt habe und der Umweg über Rohdaten --> RGB --> Graustufen bei einigen Codecs echte Zeitverschwendung ist, habe ich jetzt noch den Support für 8-Bit Graustufenbilder eingebaut.

@Zacherl: Deine Änderung ist übernommen. Ich verstehe zwar immer noch nicht ganz, warum es geklemmt hat, aber ich hatte in den letzten Wochen keine Probleme wegen der Änderung (3 Rechner, 5 Cams). Dann wird's schon passen. Nochmals Danke für den Hinweis!

Gruß
Michael
  Mit Zitat antworten Zitat
Drumbo

Registriert seit: 18. Okt 2013
22 Beiträge
 
#4

AW: WebCam mit DirectShow

  Alt 6. Nov 2013, 07:35
Guten Morgen,

Das Tool ist echt super! Ich hab nur folgendes Problem:
Wenn ich es für eine 32bit Zielplattform compiliere und bearbeite funktioniert alles super.
Wähle ich nun jedoch eine 64 bit PLattform bleibt der Compiler schon bei den Directx header hängen.
Jetzt ist meine Frage: gibt es eine möglichkeit dieses Tool auch für 64 Plattformen zu schreiben?

Gruß Drumbo
  Mit Zitat antworten Zitat
krzyk_91

Registriert seit: 12. Mai 2009
13 Beiträge
 
#5

Re: WebCam mit DirectShow

  Alt 7. Jun 2009, 09:40
Ich habe ein Problem mit dem Programm. Wenn ich die Auflösung vergrössern will, klicke ich auf Videosize und ändere eine größere Auflösung und ich bekomme einen Fehler: This format is not currently available. Weiß jemand, wie man das korrigieren kann???
  Mit Zitat antworten Zitat
grizzly

Registriert seit: 10. Dez 2004
150 Beiträge
 
Delphi XE4 Professional
 
#6

Re: WebCam mit DirectShow

  Alt 11. Jun 2009, 16:04
Die Demo 2.1 kann nur RGB24 Video-Frames verarbeiten. Vielleicht liefert Deine Kamera bei höheren Auflösungen kein RGB24 mehr?
Wenn das das Problem ist, dann mußt Du Dich noch ein wenig gedulden: Demnächst gibt es eine neue Version, welche noch folgende drei Formate unterstützt:

YUY2 (vermtl. baugleich mit YUYV, YUNV)
MJPG,
I420 (vermtl. baugleich mit YV12, IYUV)

Da kann ich mich dann auch gleich um den Splitter kümmern, der ärgert mich selber auch schon....


Gruß
Michael
  Mit Zitat antworten Zitat
krzyk_91

Registriert seit: 12. Mai 2009
13 Beiträge
 
#7

Re: WebCam mit DirectShow

  Alt 12. Jun 2009, 07:49
andere Programme, z. B. amcap stellen mir größere Auflösungen zur Vefügung, aber ich werde warten, bis eine neue Versoin zugänglich ist
  Mit Zitat antworten Zitat
grizzly

Registriert seit: 10. Dez 2004
150 Beiträge
 
Delphi XE4 Professional
 
#8

Re: WebCam mit DirectShow

  Alt 23. Aug 2009, 15:51
So, die neue Version ist da: Version 3.0 im ersten Post.

Wie immer war zu wenig Zeit zum Schreiben und Testen.

Bekannte Mängel:
1.
Die Software hätte noch gut einen Warnhinweis vertragen, wenn man eine Kamera im Surveillance-Modus betreibt. Da werden bis zu 4000 JPGs auf die Platte geschrieben! Außerdem versucht sie gnadenlos, ein Spy Unterverzeichnis anzulegen - was auch nicht immer klappen wird!
2.
Die Liste der verfügbaren Video-Auflösungen wird nicht angepaßt, wenn man beispielsweise die Auflösung über die Treiber-Dialoge ändert.
3.
Ich mir noch nicht sicher, ob es eine gute Idee war, beim Call-Back von "Buffered" auf das Sample-Interface zu wechseln. Falls es sonderbare Effekt mit der neuen Version gibt, in VFrames.pas, in der Routine VideoStart die 0 in eine 1 umwandeln:
VideoSample := TVideoSample.Create(Application.MainForm.Handle, false, 0, HR) // 1 statt 0 eintragen 4.
Der direkte Zugriff auf einige Video-Eigenschaften hat gelegentlich keinen Effekt. Vielleicht ist es aber auch nur ein Kamera-Gerätesoftware Problem.

Nachtrag:
Da VSampleDemo mittlerweile viel zu überfrachtet ist, um wirklich noch als "Demo" zu funktionieren, habe ich noch drei Miniatur-Demos erzeugt:
Demo01: Öffnet die erste gefundene Videokamera und zeigt deren Bilder an. Nichts weiter.
Demo02: Erlaubt Auswahl der Kamera und Start/Stop Operationen
Demo03: Wie Demo02, zusätzlich kann man die Eigenschafts-Dialoge der Kamera aufrufen, Bilder abspeichern, und es wird gezeigt, wie sich in die Videobilder malen läßt.
Source dieser simplen Demos findet sich ebenfalls im ersten Post.


Viel Glück
Michael
  Mit Zitat antworten Zitat
grizzly

Registriert seit: 10. Dez 2004
150 Beiträge
 
Delphi XE4 Professional
 
#9

Update 3.1

  Alt 6. Mai 2012, 12:49
Kleines Update:

Version 3.1 im ersten Post. Dort sind auch die Änderungen am Code vermerkt.


Gruß
Michael
  Mit Zitat antworten Zitat
wamkuipers

Registriert seit: 24. Mai 2014
1 Beiträge
 
#10

AW: WebCam mit DirectShow

  Alt 24. Mai 2014, 13:57
Bitte entshudige mich, i rede nicht sehr gut Deutsch.

I have a problem with vsample.pas. Basicly i like the software.

I my application
procedure TVideoImage.WndProc(var Msg: TMessage);

calls in fOnNewFrame(self, fWidth, fHeight, fImagePtr[fImagePtrIndex]);

multiple times in a re-entrant way.

That causes even program crashes.

It is not clear why that happens.
I assume that errors occur not caught by
Application.HandleException(Self); // the wrong Thread?

Actually my callback procedure is called in the VCL (mainform) thread which is ok.

I can get clear how it can occur that my call procedure is called again before is has finished!
A posible reason could be improperly handled errors.
Also the DSPACK have a similar behaviour, but even a lot worse.

My callback procedure use (mainform).update calls, which should be allowed in the VCL thread. (With DSPACK the callback procedure does is NOT called in the VCL thread ...)

Further more the video picture blocks with moving the mainwindow with a leftmouse down.

Any sugestions what could cause my trouble?

Kind regards
William
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 23:04 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz