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
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
Gutelo

Registriert seit: 29. Sep 2013
152 Beiträge
 
#5

AW: WebCam mit DirectShow

  Alt 13. Feb 2014, 22:56
Hallo,

Tolles Paket und funktioniert prima. Ich habe nur ein Problem mit der Property VideoRunning, die immer auf false steht unabhaengig davon ob die Webcam gestartet oder gestoppt wurde. Woran kann das liegen? Oder muss man VideoRunning selber setzen?

Gutelo

Edit: so wie ich das sehe wird VideoRunning nur bei VideoStop auf false gesetzt aber bei VideoStart nicht auf true.

Grizzly, sollte man nicht fVideoRunning := true; bzw fVideoRunning := false; bei den Prozeduren VideoStart, VideoPause, und VideoResume einfuegen?

Geändert von Gutelo (14. Feb 2014 um 00:39 Uhr)
  Mit Zitat antworten Zitat
Gutelo

Registriert seit: 29. Sep 2013
152 Beiträge
 
#6

AW: WebCam mit DirectShow

  Alt 14. Feb 2014, 04:51
Hallo Grizzly,

noch eine weitere Frage. Ich verwende Version 3.0, da ich nicht diese Graphik lib einbinden moechte. Allerdings wuerde ich gerne die doppelten Eintraege bei der Liste der Aufloesung entfernen (korrigiert in version 3.2).

Nun habe ich Unterschiede in FUNCTION TVideoSample.LoadListOfResolution: HResult; zwischen Ver. 3.0 und 3.2 gesucht und die Zeile

IF not(IsEqualGUID(ppmt^.formattype, KSDATAFORMAT_SPECIFIER_VIDEOINFO2)) then

gefunden. Diese habe ich bei Version 3.0 hinzugefuegt. Allerdings aendert das nichts an der Menge der aufgelisteten Aufloesungswerte. Ich bin mir nicht sicher on meine doppelten Eintraege ueberhaupt doppelt sind. Jede Aufloesung kommt zwar doppelt vor, aber jeweils endend mit ...(RGB) oder ...(xyz) wobei xyz chinesische Character sind (siehe Anhang). Ich vermute dass es zwei unterschiedliche Graphikformate sind.

Gutelo
Miniaturansicht angehängter Grafiken
webcam.jpg  
  Mit Zitat antworten Zitat
grizzly

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

AW: WebCam mit DirectShow

  Alt 14. Feb 2014, 12:12
Hallo!

In der 3.2 ist in TFormatInfo der Typ von FourCC geändert: Von ARRAY[0..3] OF char zu ARRAY[0..3] OF ansichar.
Vielleicht behebt das schon das Problem mit der ulkigen Angabe zum verwendeten Kompressor.

Welche Grafik lib meinst Du? GDI+?
Falls das das Problem ist: In Unit VFrames.pas einfach die Unit UGDIPLus rauswerfen. Beim Kompilieren wird dann ein Fehler in der Methode UnpackFrame moniert. An dieser Stelle ist aber der alte Code noch drinnen. Einfach den GDI+ Zweig auskommentieren, und die 3.2 läuft ohne GDI+:
Delphi-Quellcode:
{
IF GDIPlusAvailable // GDI+ version is faster than Delphi's JPEG library
  then begin
    if fGray8Bit
      then GDIPlus_LoadBMPStream2(MemStream, FBitmapGray)
      else GDIPlus_LoadBMPStream2(MemStream, FBitmap);
  end
   else begin}

     JPG.Grayscale := fGray8Bit;
     JPG.LoadFromStream(MemStream);
     if fGray8Bit
       then FBitmapGray.Canvas.Draw(0, 0, JPG)
       else FBitmap.Canvas.Draw(0, 0, JPG);
   {end;}

Hätte ich einen Compiler-Switch machen sollen...

Gruß
Michael
  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 06:51 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