Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Webcam in Delphi? (https://www.delphipraxis.net/35689-webcam-delphi.html)

Nicolai1234 10. Dez 2004 19:07


Webcam in Delphi?
 
Ich würde gerne in meinem Programm ein livebild meiner Webcam anzeigen und bei Bedarf ein "Foto" schießen!
Der einzige hinweis, den ich hier in der DP gesehen habe ist das DS-Pack, allerdings lässt es sich bei mir nicht installieren (kann aber auch daran liegen, dass ich zu doof dazu bin. Wie muss ich das den Installieren?)!
Gibt es da noch eine Alternative zum DSPack? Am liebsten wäre mir auch eine Komponente, damit das ganze nicht zu kompliziert wird!
Vielen Dank
Nicolai

MiniKeks 10. Dez 2004 19:16

Re: Webcam in Delphi?
 
http://tscap32.sourceforge.net/

Sowas?

Ultimator 10. Dez 2004 19:17

Re: Webcam in Delphi?
 
Du brauchst das DSPack gar nicht.
Ich habs nach einer im Forum des SDC geposteten Lösung gemacht, und es funktioniert.

Delphi-Quellcode:
//Zuerst brauchst du folgende Konstanten
const
  WM_CAP_DRIVER_CONNECT = WM_USER + 10;
  WM_CAP_EDIT_COPY = WM_USER + 30;
  WM_CAP_SET_PREVIEW = WM_USER + 50;
  WM_CAP_SET_OVERLAY = WM_USER + 51;
  WM_CAP_SET_PREVIEWRATE = WM_USER + 52;

implementation

{$R *.dfm}

//Dann brauchst du noch das hier
function capCreateCaptureWindow(lpszWindowName: LPCSTR;
  dwStyle: DWORD;
  x, y,
  nWidth,
  nHeight: integer;
  hwndParent: HWND;
  nID: integer): HWND; stdcall;
  external 'AVICAP32.DLL' name 'capCreateCaptureWindowA';

procedure TForm1.LaberLaber; //halt irgendne Prozedur, ich habs im Formcreate, damit ich gleich was seh ^^
var handle:THandle;
begin
  handle := capCreateCaptureWindow('Video',ws_child+ws_visible, 0,
  0, 320, 240, Panel1.Handle, 1); //Wie du siehst, brauchst du ein Panel in diesem Beispiel ;-)
  SendMessage(handle, WM_CAP_DRIVER_CONNECT, 0, 0);
  SendMessage(handle, WM_CAP_SET_PREVIEWRATE, 30, 0);
  sendMessage(handle, WM_CAP_SET_OVERLAY, 1, 0);
  SendMessage(handle, wm_cap_set_preview, 1, 0);
end;

Getestet hab ich den Code mit meiner Eyetoy-Kamera mit modifizierten treibern, sollte aber mit jeder anderen Webcam auch funktionieren :-)

Nicolai1234 10. Dez 2004 19:19

Re: Webcam in Delphi?
 
Zitat:

Zitat von MiniKeks
http://tscap32.sourceforge.net/

Sowas?

Ja

@Ultimator:
Danke, aber muss man irgendwo noch die "Inputgröße" der Kamra einstellen?
Bleiben die Konstanten immer gleich oder muss ich die für meine Bedürfnisse ändern?
Wie mache ich damit ein Foto?

Ultimator 10. Dez 2004 19:31

Re: Webcam in Delphi?
 
Also, in dem Beitrag im o.g. Forum hat er noch den Code für ein Bildschirmfoto gepostet, aber den hab ich nicht getestet :mrgreen:

Delphi-Quellcode:
procedure TForm1.ButtonCamFoClick(Sender:TObkect);
begin
SendMessage( handle, WM_CAP_EDIT_COPY, 1, 0 );
Image1.Picture.Bitmap.LoadFromClipboardFormat(cf_BitMap,ClipBoard.GetAsHandle(cf_Bitmap),0);
end;
Dan müsstest du halt die im oben genannten Code vereinbarte Variable handle global oder so machen, um darauf zugreifen zu können.

Joa, die Konstanten der Funktion capCreateCaptureWindow müssen gleich bleiben;
in diesem Codeblock
Delphi-Quellcode:
handle := capCreateCaptureWindow('Video',ws_child+ws_visible, 0, 0, 320, 240, Panel1.Handle, 1);
SendMessage(handle, WM_CAP_DRIVER_CONNECT, 0, 0);
SendMessage(handle, WM_CAP_SET_PREVIEWRATE, 30, 0);
sendMessage(handle, WM_CAP_SET_OVERLAY, 1, 0);
SendMessage(handle, wm_cap_set_preview, 1, 0);
kannst/darfst du lediglich das 'Video' in handle:= capCreateWindow(bla); ändern.
Die Konstanten WM_CAP_DRIVER_CONNECT, WM_CAP_SET_PREVIEWRATE, WM_CAP_SET_OVERLAY und wm_cap_set_preview müssen denke ich so bleiben. Kannst ja n bissl mit den Parametern rumspielen :mrgreen:

Das dürfte erstmal alles sein :-)

Nicolai1234 10. Dez 2004 21:20

Re: Webcam in Delphi?
 
Gibt es noch die Möglichkeit einen Weißabgleich und die Helligkeit manuell einzustellen?

Matze 10. Dez 2004 21:28

Re: Webcam in Delphi?
 
Vieleicht hilft dir auch noch dieser Thread

alcaeus 10. Dez 2004 21:29

Re: Webcam in Delphi?
 
Hi Ulti,

ich habe diesen Code ausprobiert:
Delphi-Quellcode:
procedure TForm1.ButtonCamFoClick(Sender:TObkect);
begin
SendMessage( handle, WM_CAP_EDIT_COPY, 1, 0 );
Image1.Picture.Bitmap.LoadFromClipboardFormat(cf_BitMap,ClipBoard.GetAsHandle(cf_Bitmap),0);
end;
und er funktioniert soweit auch gut :firejump:

Allerdings wird das Bild in die Zwischenablage kopiert, was ich definitiv verhindern möchte. Gibt es eine Möglichkeit dies zu umgehn bzw. den ursprünglichen Zustand des Clipboards zu sichern und anschließend wieder herzustellen?

Greetz
alcaeus

Nicolai1234 10. Dez 2004 21:37

Re: Webcam in Delphi?
 
Zitat:

Zitat von alcaeus
und er funktioniert soweit auch gut :firejump:

Bei mir nimmt er dieses GetAsHandle nicht! Was kann ich tun?

Ultimator 10. Dez 2004 21:52

Re: Webcam in Delphi?
 
@Nicolai: Hast du die Unit ClipBrd eingebunden?

@Den Rest :-)
Es gibt anscheinend auch die Möglichkeit, das ganze per API-Funktionen zu erledigen, anstatt per Messages.
Beispiel:
Delphi-Quellcode:
SendMessage( handle, WM_CAP_EDIT_COPY, 1, 0 ); //Das wäre jetzt per Message
capEditCopy(handle); //Müsste theoretisch auch gehen, macht das gleiche (erzählt mir zumindest das WinAPI-SDK :-)
Allerdings mosert da Delphi, dass capEditCopy ein undefinierter Bezeichner sei.
Weiß jemand, welche Unit da noch einzubinden ist? :gruebel:
Dann müsste man nämlich nicht diese ganzen Konstanten oben definieren, von denen ich nicht weiß, wie sie zustande kommen :-?

Zum Thema Bild in die Zwischenablage hab ich hier noch ein paar messages gefunden:
WM_CAP_FILE_SAVEDIB ("The WM_CAP_FILE_SAVEDIB message copies the current frame to a DIB file.")
WM_CAP_FILE_SAVEAS ("The WM_CAP_FILE_SAVEAS message copies the contents of the capture file to another file.")
WM_CAP_FILE_SET_CAPTURE_FILE ("The WM_CAP_FILE_SET_CAPTURE_FILE message names the file used for video capture.")
WM_CAP_FILE_ALLOCATE ("The WM_CAP_FILE_ALLOCATE message creates (preallocates) a capture file of a specified size.")


Und nun noch zum Thema Benutzereinstellungen wegen Kostrast und so:
WM_CAP_DLG_VIDEODISPLAY ("The WM_CAP_DLG_VIDEODISPLAY message displays a dialog box in which the user can set or adjust the video output. This dialog box might contain controls that affect the hue, contrast, and brightness of the displayed image, as well as key color alignment.")

Und bei jeder dieser Messages steht hinter dem kurzen Beschreibungstext " You can send this message explicitly or by using the [Messagename ohne Unterstriche und vorangestelltes WM] macro."

So, ich hoffe, ich konnte einigermaßen helfen :-)

Ultimator 11. Dez 2004 23:24

Re: Webcam in Delphi?
 
So, bezogen auf diesen Thread, hab ich nun eine Header-Übersetzung der VfW.h gefunden, in der diese Funktionen enthalten sind; an dieser Stelle nochmal Dank an Luckie :-)

Nun kann man nach Einbindung der Unit oben genannte und noch andere Funktionen benutzen, ohne das Ganze umständlich über Sendmessage zu machen :-)

In Luckies "edit" findet ihr einen Link zu einer Seite, wo man ein Demoprojekt inkl. Headerübersetzungen herunterladen kann.
Darin befindet sich eine VfW.pas-Datei, die dann die Übersetzungen enthält :-)

Einfach rein damit in die uses und los gehts :-)

semo 14. Dez 2004 07:45

Re: Webcam in Delphi?
 
Code:
TVideoCap Version 2.3
This component is a interface to the Video-Capture functions in Video for Windows.
It is freeware and can be used in any application.
Please send a short report about your application to me, and add a hint about the usage of TVideoCap in your About-Box.

Please report bugs to : [email]huebler@fbm.fh-weingarten.de[/email]


Autor

J. Huebler

Wilhelm-Braun-Str. 19

88250 Weingarten


Germany

Weingarten 2000-12-28
--> habe ich mal so aus der hilfedatei gezogen, am besten mal googlen ;-)

Kalti 11. Jan 2005 20:57

Re: Webcam in Delphi?
 
Hallo, ich bin neu hier, erstmal ein Hallo an alle Teilnehmer und Danke für die Hilfe die ich hier beim lesen gefunden habe.

Kurze Frage zu dem obrigen Quelltext, der übrigens super funktioniert. Welche Möglichkeit gäbe es das Bild der Kamera (640x480) auf (320x240) im Anzeigefenster zu verkleinern. Passe ich die Parameter an so erhalte ich nur den oberlinken Ausschnitt des aktuellen Bildes.

Wäre nett wenn mir jemand helfen kann. Danke.

KLS 12. Jan 2005 03:37

Re: Webcam in Delphi?
 
Du kannst mit hilfe dieses codes die kameraauflösung einstellen.

Delphi-Quellcode:
const
  WM_CAP_DLG_VIDEOFORMAT         = WM_USER+41;  //Formatauswahl
  WM_CAP_DLG_VIDEOSOURCE         = WM_USER+42;  //Einstellungen
  WM_CAP_DLG_VIDEOCOMPRESSION    = WM_USER+46;  //Kompression
begin
  SendMessage(camhandle,WM_CAP_DLG_VIDEOFORMAT,1,0);
end;
hier gibt es übrigends noch eine menge code: http://www.delphi-forum.de/viewtopic.php?t=19282

Kalti 12. Jan 2005 16:44

Re: Webcam in Delphi?
 
Hi die neuen Parametr läufen wirklich gut. Langsam Blick ich mit der Steuerung durch. Doch eine Frage hät ich noch, wie kann ich denn die Ausgabe auf eine beliebige Größe umstellen. Es ist für ein Programm und ich weiß noch nicht welche Kamera angeschlossen wird und welche Auflösung die hat.

Ich will sagen wir mal das Bild immer in einem 300x225 (ist doch 4:3 oder?) sehen.

Pseudemys Nelsoni 5. Feb 2005 11:16

Re: Webcam in Delphi?
 
Zitat:

WM_CAP_DLG_VIDEOFORMAT = WM_USER+41; //Formatauswahl
WM_CAP_DLG_VIDEOSOURCE = WM_USER+42; //Einstellungen
WM_CAP_DLG_VIDEOCOMPRESSION = WM_USER+46; //Kompression
wozu sind da die ganzen +46... sachen? haben die eine bestimmte bedeutung? wenn ja...wieso sind es gerade diese zahlen?

Ultimator 5. Feb 2005 21:41

Re: Webcam in Delphi?
 
Naja, die Namen für die Windows-Messages sind eigentlich bloß "Merkhilfen", damit man die Messages einfacher verwenden und unterscheiden kann.
Soweit ich weiß sind Messages bloß DWORD-Werte, aber ich denke mal, die Windows-Programmierer wollten sich keinen Wolf lernen, nur wegen den "paar tausend Messages" ;-)

Wenn ich Blech labere, dann korrigiert mich ;-)

Steve 19. Mai 2005 08:09

Re: Webcam in Delphi?
 
Hi,

für komfortable Webcam-Ansteuerung kann man auch die LEADTOOLS (Homepage) nutzen. Kosten einiges, können dafür auch einiges :mrgreen:

Nur der Vollständigkeit halber :zwinker:

Gruß
Stephan :dance:

RedDust 19. Mai 2005 09:08

Re: Webcam in Delphi?
 
Hey Leutz,

bin grad' mal reingestolpert und hab mir mal alles was ihr so geschrieben habt durchgelesen. Eigentlich ganz interessant aber nun zu meiner eigentlichen Frage. Ich programmiere gerade (wie auch viele andere) mit einem Kumpel an einem Chat. Da wäre es doch genial wenn man auch eine Webcamunterstützung mit einbauen könnte. Leider weiß ich nicht wie man soche Bilder bzw. das akt. Video über das Netzwerk senden kann. Hätt zwar eine Idee, das man das akt. Bild Captured und dann versendet, das wäre aber garantiert ganz schön wenn ihr mir eine Lösung zu diesem Problen Posten könntet.

RedDust 19. Mai 2005 09:32

Re: Webcam in Delphi?
 
Liste der Anhänge anzeigen (Anzahl: 3)
Zitat:

Zitat von MiniKeks
http://tscap32.sourceforge.net/

Sowas?

Wenn ich diese Komponente verwende bekomme ich 3 Fehlermeldungen. (siehe Anhang)

P.S. Sorry für das doppelte Post

Florian H 29. Jun 2005 20:30

Re: Webcam in Delphi?
 
Zitat:

Zitat von Ultimator
....Zum Thema Bild in die Zwischenablage hab ich hier noch ein paar messages gefunden:
WM_CAP_FILE_SAVEDIB ("The WM_CAP_FILE_SAVEDIB message copies the current frame to a DIB file.")
WM_CAP_FILE_SAVEAS ("The WM_CAP_FILE_SAVEAS message copies the contents of the capture file to another file.")
WM_CAP_FILE_SET_CAPTURE_FILE ("The WM_CAP_FILE_SET_CAPTURE_FILE message names the file used for video capture.")
WM_CAP_FILE_ALLOCATE ("The WM_CAP_FILE_ALLOCATE message creates (preallocates) a capture file of a specified size.")
....

die Möglichkeiten wären aber dann nur zum Speichern auf Festplatte, oder?
das Problem ist, ich mache mit meiner Software alle 5 Sek. ein Bild und will das erst bissl verarbeiten intern (als TBitmap) und dann als JPG wo speichern...
bisher hab ich das auch über das SAVEDIB gemacht, in ein TBitmap geladen und zu TJPEGImage konvertiert... nur alle 5 Sek. son Bitmap auf die Platte schreiben ist arg ungünstig auf dauer für Auslastung und Plattenlebensdauer.
Das mit der Zwischnablage ist ja noch schlimmer, da wäre ja alle 5 Sek. die Zwischenablage weg -.-

gibts da sonst keine Möglichkeit ohne diese unsauberen Wege??

TStringlist 31. Jul 2005 21:54

Re: Webcam in Delphi?
 
Hi. Hier ist übrigens ein Code, der weder das ClipBoard "besetzt", noch sonst irgend etwas anderes als "Zwischenablage" benötigt. Und auch wenn das Prog im Hintergrund verschwindet, läuft das Ganze noch.


PS. Ist zwar schon ein bisschen her, ansonsten aber auch ein guter Abschluss für diesen Thread :-)

Timi-loader 13. Apr 2006 15:56

Re: Webcam in Delphi?
 
hallo..
also hab nen prog geschrieben, dass mit der ersten variante arbeitet.. und das funktioniert auch gut... nur schreibt das ja die zwischenablage neu.. .. dann habe ich auch alle anderen komplettcodes ausprobiert die hier durch links und dort derren links waren.. die ergaben immer irgendwelche fehler obwohl ich die YUV oder so installt habe.. und das ja auch nicht der fehler war sondern irgendein allegemeienr softwarefehler mit schönen zeichenkombinationen^^... jedenfalls wollte ich eigendlich fragen wie man mit DIB genau arbeitet.. also das stand hier noch nicht beschrieben...
mfg
Timi-loader

TStringlist 15. Apr 2006 15:18

Re: Webcam in Delphi?
 
Hallo, hier gilt doch normalerweise: Neues Thema -> neuer Thread. (Und dort bitte dann: Für den Fall, dass du die Sache event. doch noch zum Laufen bringen möchtest, solltest du zumindest schon mal den Text der Fehlermeldung genau mit angeben, ggf. auch etwas Code drumrum).

DIBs sind geräteunabhängige Bitmaps (device independent bitmaps). Das heißt, sie haben z.B. keine Leinwand (Canvas) mit dabei, wie eben die TBitmap-Objekte von Delphi, ...welches daher also DDBs sind (device dependent bitmaps). Die characteristischen Daten eines DIBs (u.a. auch der Pointer darauf, wo im Ram denn nun die Pixel tatsächlich stehen) liegen in einem sogenannten 'BitmapInfo' vor. Das ist eine Datenstruktur auf die also auch gelegentlich in der Parameterliste einiger Api-Grafikfunktionen gepointet werden muss. Ein DDB o. ein TBitmap-Objekt hat jedoch kein solches BitmapInfo. Ergo kann es also durchaus vorteilhaft sein, mittels 'GetDIB' ein zu einem TBitmap-Objekt ansonsten äquivalentes DIB zu erzeugen *, mit diesem dann irgendwelche Api-Funktionen ausführen zu lassen und die resultierenden Pixeldaten dann anschließend wieder per 'SetDIBits' in das anfänglich paralelle TBitmap-Objekt zurückzuschreiben... (wie ich das ja z.B. auch hier gemacht habe).

* (und zwar aus einem zweiten TBitmap-Objekt das formatmäßig quasi ein eineiiger Zwilling zum ersteren ist)

Silicium 7. Mai 2006 12:20

Re: Webcam in Delphi?
 
Hallo ihr Menschen, ihr.

Ich noch ne Frage zu dem Thema.

ich greife hierbei ja auf die Windows Video Source zu.

folgendes problem

wenn ich die aufloesung erhoehe, wird zwar das wiedergabebild groesser, abear das video blibt klein.
wie kann ich die aufloesung real erhoehen?
gibts da vielleicht ne Referenz dazu?


ich hab den Src von der seite 1 probiert, klappt alles problemlos, bis auf die resolution :(


Gruss Marco

grips-net 13. Okt 2006 12:51

Re: Webcam in Delphi?
 
Wollt mich nur kurz für den guten Atikel und die wunderbaren Antworten bedanken. Hatte das gleiche Problem, hab die Lösungen ausprobiert und alles hat auf Anhieb funktioniert.


Schöne Grüße aus dem Saarland.


Michael

Erutan 6. Feb 2014 15:56

AW: Webcam in Delphi?
 
Boahhh, vielen herzlichen Dank für die Anleitung. Ich hatte eigetich gar nicht vorgehabt, meine Webcam anzusteuern aber als ich das Posting sah, konnte ich gar nicht anders :-)

Das hat auf Anhieb geklappt.

Nur eines klappt nicht...zumindest bei mir nicht: Wenn ich das Fenster schließe, werden irgendwelche Treiber wohl nicht entladen, denn wenn ich das Programm dann erneut starte, blendet mir Windows ne Kameraauswahl ein (dabei habe ich nur eine :-D ) und egal ob ich die wähle oder nicht....das Bild bleibt schwarz und das Licht der Cam auch.

Erst nach Neustart des Rechners geht es wieder.

Irgendwie müßte man den Start der Cam sauber beenden können.

Viele Grüße

himitsu 6. Feb 2014 17:10

AW: Webcam in Delphi?
 
Ich hab eigentlich nicht solche Probleme. (allerdings hab ich mir das selber implementiert)

Hab mir jetzt nicht alles angesehn, aber wird das am Ende auch alles sauber geschlossen?
Bei mir sieht das so aus:
Delphi-Quellcode:
//FCaptureWindow := capCreateCaptureWindow(.....


SendMessageE(FCaptureWindow, WM_CAP_SET_PREVIEW,       WPARAM(False), 0, 'WM_CAP_SET_PREVIEW');
SendMessageE(FCaptureWindow, WM_CAP_SET_CALLBACK_ERROR, 0, LPARAM(nil),  'WM_CAP_SET_CALLBACK_ERROR');
SendMessageE(FCaptureWindow, WM_CAP_DRIVER_DISCONNECT, 0, 0,            'WM_CAP_DRIVER_DISCONNECT');
DestroyWindow(FCaptureWindow);
FCaptureWindow := 0;
[add]
MSDN-Library durchsuchenSendMessage statt dem SendMessageE (bei mir ist dort noch die Fehlerbehandlung mit drin, welche man natürlich nie vergessen sollte :zwinker:)

Sinspin 31. Mär 2021 12:33

AW: Webcam in Delphi?
 
So einfach wie es ist, es funktioniert noch immer.

Leider nicht unter Remote Desktop. Da bleibt das Bild einfach Schwarz.

Die Windows eigene "Camera" App funktioniert hingegen. Träge, aber geht!

Hat schonmal jemand eine Webcam in einer Remote Desktop Session zum laufen bekommen?

Danke im vorraus für eure Hilfe.

Redeemer 31. Mär 2021 15:16

AW: Webcam in Delphi?
 
Schon mal PasLibVlc probiert? Kann man ja mal mit VLC testen.

Sinspin 31. Mär 2021 19:08

AW: Webcam in Delphi?
 
Danke, das nenne ich mal was gelernt 8-)

Lokal klappt es. In der RDP Session nicht.
Wenngleich man im VLC Debug-log schön sehen kann das das Herstellen der Verbindung soweit klappt, dann aber eine relativ nichtssagende Fehlermeldung kommt.
Code:
...
dshow debug: CaptureFilter::EnumPins
dshow debug: CapturePin::QueryDirection
dshow debug: CapturePin::ConnectedTo [not connected]
dshow debug: CapturePin::QueryPinInfo
dshow debug: CaptureFilter::QueryFilterInfo
dshow debug: CapturePin::QueryPinInfo
dshow debug: CaptureFilter::EnumPins
dshow debug: CapturePin::QueryDirection
dshow debug: CapturePin::QueryDirection
dshow debug: CapturePin::QueryAccept [OK] (width=1280, height=960, chroma=YUY2, fps=30.000030)
dshow debug: CapturePin::ReceiveConnection [OK]
dshow debug: CapturePin::NotifyAllocator
dshow debug: ConnectFilters: graph_builder2 available.
dshow warning: ConnectFilters: No crossBar routes found (incompatible pin types)
dshow debug: filters connected successfully !
dshow debug: MEDIATYPE_Video
dshow debug: selected video pin accepts format: YUY2
dshow debug: skipping audio device
dshow debug: Playing...
dshow debug: CapturePin::QueryPinInfo
dshow debug: CaptureFilter::EnumPins
dshow debug: CapturePin::QueryDirection
dshow debug: CaptureFilter::EnumPins
dshow debug: CapturePin::QueryDirection
dshow debug: CapturePin::QueryPinInfo
dshow debug: CaptureFilter::EnumPins
dshow debug: CapturePin::QueryDirection
dshow debug: CaptureFilter::EnumPins
dshow debug: CapturePin::QueryDirection
dshow debug: CapturePin::ConnectedTo [OK]
dshow debug: CaptureFilter::SetSyncSource
dshow error: Failed to run graph. Capture device may be in use.

Redeemer 31. Mär 2021 22:00

AW: Webcam in Delphi?
 
Das ist derselbe User, oder? Betriebssystem Windows 10? Webcam-Datenschutz konfiguriert?

Ansonsten bin ich überfragt. Ich möchte das jetzt nicht bei uns in der Produktionsumgebung testen, wo eine PasLibVlc-Anwendung läuft. Ich meine aber (bin mir aber nicht sicher), unser Sysadmin hatte über RDP überprüft, dass meine Software mit der Sicherheitssoftware funktioniert. (Hintergrund, vermutlich irrelevant: Manche Webcams werden als Videogerät (Kamera) erkannt, andere als MTP. Da auch als Massenspeicher nutzbare Handys und Fotoapparate unter MTP fallen und nicht unterschiedbar sind, ist die MTP-Klasse in Enterprise-Umgebungen oft gesperrt. Wir hatten vorher eine Software der Bremer Firma The Imaging Source und professionelle Industriekameras von denen. Das sind zwar USB-Geräte (3.0 only), aber nicht mal ansatzweise Plug-and-Play-fähig, weshalb es Probleme nach Wechsel der Sicherheitssoftware gab. Wir haben das System dann durch billige Logitech C920 und eine schnell zusammengeschusterte Software ersetzt, um Zuverlässigkeit, Stabilität und Bildqualität erheblich zu verbessern.)

Sinspin 1. Apr 2021 09:10

AW: Webcam in Delphi?
 
Ist eine normale Logitech Webcam.
In der Windows eigenen Camera App kommt die auch durch. Nur in allen DirectDraw basierten Lösungen nicht.

Ich denke auch das es eine Sicherheitseinstellung ist. Wir sperren hier auch alle möglichen USB Datenträger etc. aus um Infektionen zu verhindern. Vlt. ist da noch was anderes mit aus, aber ich finde es aktuell nicht.
Ich brauche die cam auch nicht für conf calls oder sowas. Meine Nutzer müssen hin und wieder mal ein Bild machen wofür ich dann die Webcam nehmen wollte.

Da die Windows Camera App funktioniert, bin ich am überlegen ob ich die "fernsteuere" und mir einfach deren Bild kopiere.
Ich warte jetzt erstmal auf unseren IT Admin ob der noch eine Idee hat.
Sonst brauche ich was verrücktes. Malwieder.

TiGü 1. Apr 2021 09:27

AW: Webcam in Delphi?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Wenn du mit RDP drauf bist, starte doch mal dxdiag.
Schaue unter Display/Anzeige, ob da DirectX-Features deaktiviert sind.

Beispiel:

TiGü 1. Apr 2021 09:32

AW: Webcam in Delphi?
 
Hier noch ein bisschen was zum Lesen und Ausprobieren für dich und deinen IT-Admin:

https://superuser.com/questions/1307...-disregard-gpu

https://admx.help/?Category=Windows_...CODE_PREFERRED

Sinspin 1. Apr 2021 09:49

AW: Webcam in Delphi?
 
Zitat:

Zitat von TiGü (Beitrag 1486418)
Wenn du mit RDP drauf bist, starte doch mal dxdiag.

Warte mal... vieleicht habe ich mich blöd ausgedrückt.

Ich habe einen physischen PC, an dem hängt eine Webcam. An diesem physischen PC greife ich auf eine VM via RDP zu.
Die VM ist mein Arbeitstier, der PC fungiert nur als Thin Client.
An dem PC hängt auch noch ein NFC Kartenleser der ohne Probleme durchkommt.

Redeemer 1. Apr 2021 10:17

AW: Webcam in Delphi?
 
Du willst eine lokal angeschlossene Kamera auf einem Remote-PC benutzen?

Sinspin 1. Apr 2021 11:45

AW: Webcam in Delphi?
 
Ja 8-)
Sollte ich die Frage morgen nochmal stellen, weil mir Heute keiner glaubt? :lol:

TiGü 1. Apr 2021 12:13

AW: Webcam in Delphi?
 
Zitat:

Zitat von Sinspin (Beitrag 1486421)
Zitat:

Zitat von TiGü (Beitrag 1486418)
Wenn du mit RDP drauf bist, starte doch mal dxdiag.

Warte mal... vieleicht habe ich mich blöd ausgedrückt.

Ich habe einen physischen PC, an dem hängt eine Webcam. An diesem physischen PC greife ich auf eine VM via RDP zu.
Die VM ist mein Arbeitstier, der PC fungiert nur als Thin Client.
An dem PC hängt auch noch ein NFC Kartenleser der ohne Probleme durchkommt.

Ok, nochmal für Dumme:
Ich habe verstanden, dass du in deiner RDP-Session keine Bilder siehst (alles schwarz).
Funktioniert die Kamera denn, wenn du direkt vor dem Thin Client sitzt und die VM offen hast?
Also in der jeweiligen Ausführungssoftware (VMWare, Hyper-V, whatever).

EDIT: Nichts desto trotz würde ich dich doch bitten mal dxdiag zu öffnen und zu gucken was geht.

Sinspin 1. Apr 2021 14:13

AW: Webcam in Delphi?
 
Zitat:

Zitat von TiGü (Beitrag 1486429)
Funktioniert die Kamera denn, wenn du direkt vor dem Thin Client sitzt und die VM offen hast?

Ja und Nein.
Ja, die Win10 eigene Camera App geht, langsam aber es kommen Bilder.

Nein, alles was via DirectDraw arbeitet (VLC), vsampledemo_32 und ...
Code:
external 'AVICAP32.DLL' name 'capCreateCaptureWindowA';
... funktioniert nicht.

Die VM ist ein Win10Pro auf HyperV.

Zitat:

Zitat von TiGü (Beitrag 1486429)
EDIT: Nichts desto trotz würde ich dich doch bitten mal dxdiag zu öffnen und zu gucken was geht.

Habe ich gemacht. Das gute alte dxDiag Wunderdingens.

Thin Client
Code:
---------------------
Video Capture Devices
Number of Devices: 1
---------------------
           FriendlyName: Logitech HD Webcam C270
               Category: Camera
           SymbolicLink: \\?\usb#vid_046d&pid_0825&mi_00#6&290d7e38&0&0000#{e5323777-f976-4f5b-9b55-b94699c46e44}\{bbefb6c7-2fc4-4139-bb8b-a58bba724083}
               Location: n/a
               Rotation: n/a
           Manufacturer: Logitech
             HardwareID: USB\VID_046D&PID_0825&REV_0012&MI_00,USB\VID_046D&PID_0825&MI_00
             DriverDesc: Logitech HD Webcam C270
         DriverProvider: Logitech
          DriverVersion: 13.80.853.0
      DriverDateEnglish: 10/22/2012 00:00:00
    DriverDateLocalized: 10/22/2012 12:00:00 AM
                Service: LVUVC64
                  Class: Image
          DevNodeStatus: 180600A[DN_DRIVER_LOADED|DN_STARTED|DN_DISABLEABLE|DN_REMOVABLE|DN_NT_ENUMERATOR|DN_NT_DRIVER]
            ContainerId: {63DF21A9-B3C6-5F8D-B2DF-49B47607E7AB}
            ProblemCode: No Problem
  BusReportedDeviceDesc: n/a
                 Parent: USB\VID_046D&PID_0825\3AA9AEA0
      DriverProblemDesc: n/a
           UpperFilters: n/a
           LowerFilters: n/a
                  Stack: \Driver\ksthunk,\Driver\LVUVC64,\Driver\usbccgp
      ContainerCategory: Imaging.Webcam
          SensorGroupID: n/a
                   MFT0: n/a
                   DMFT: n/a
    CustomCaptureSource: n/a
  DependentStillCapture: n/a
     EnablePlatformDMFT: n/a
              DMFTChain: n/a
 EnableDshowRedirection: n/a
     FrameServerEnabled: n/a
        AnalogProviders: n/a
             ProfileIDs: n/a
VM
Code:
---------------------
Video Capture Devices
Number of Devices: 1
---------------------
           FriendlyName: "PC_Name" - Logitech HD Webcam C270
               Category: Camera
           SymbolicLink: \\?\rdcamera_bus#umb#2&124e6930&0&rdcamera_device_0_2#{e5323777-f976-4f5b-9b55-b94699c46e44}\rdcamerasource
               Location: n/a
               Rotation: n/a
           Manufacturer: Microsoft
             HardwareID: RDCAMERA_BUS\RDCAMERA
             DriverDesc: Remote Desktop Camera
         DriverProvider: Microsoft
          DriverVersion: 10.0.19041.746
      DriverDateEnglish: 6/21/2006 00:00:00
    DriverDateLocalized: 2006-06-21 00:00:00
                Service: WUDFRd
                  Class: RDCamera
          DevNodeStatus: 180200A[DN_DRIVER_LOADED|DN_STARTED|DN_DISABLEABLE|DN_NT_ENUMERATOR|DN_NT_DRIVER]
            ContainerId: {00000000-0000-0000-FFFF-FFFFFFFFFFFF}
            ProblemCode: No Problem
  BusReportedDeviceDesc: n/a
                 Parent: UMB\UMB\1&841921d&0&RDCAMERA_BUS
      DriverProblemDesc: n/a
           UpperFilters: n/a
           LowerFilters: n/a
                  Stack: \Driver\WudfRd,\Driver\umbus
      ContainerCategory: n/a
          SensorGroupID: n/a
                   MFT0: n/a
                   DMFT: n/a
    CustomCaptureSource: {889FF934-6161-4250-BDEF-9D93D62CA1AC}
  DependentStillCapture: n/a
     EnablePlatformDMFT: n/a
              DMFTChain: n/a
 EnableDshowRedirection: n/a
     FrameServerEnabled: n/a
        AnalogProviders: n/a
             ProfileIDs: n/a


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:31 Uhr.
Seite 1 von 2  1 2      

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