![]() |
AW: Webcam in Delphi?
Zitat:
Und prüfe, ob die Vorschläge in den Links aus Beitrag #35 Besserung bringen. Wenn überhaupt, hätten mich aus deiner DxDiag.txt eher die Einträge für die Grafikkarte interessiert (Display Devices). Vor allen DDraw Status und D3D Status. Kannste beide Textdateien auch einfach anhängen. Der VLC-Player unterstützt mehrere verschiedene Renderer. Bitte probiere doch mal explizit die Direct3D11-Videoausgabe als Ausgabemodule einzustellen. Beispiel:
Code:
---------------
Display Devices --------------- Card name: Intel(R) HD Graphics 630 Manufacturer: Intel Corporation Chip type: Intel(R) HD Graphics Family DAC type: Internal Device Type: Full Device (POST) Device Key: Enum\PCI\VEN_8086&DEV_5912&SUBSYS_872F1043&REV_04 Device Status: 0180200A [DN_DRIVER_LOADED|DN_STARTED|DN_DISABLEABLE|DN_NT_ENUMERATOR|DN_NT_DRIVER] Device Problem Code: No Problem Driver Problem Code: Unknown Display Memory: 8254 MB Dedicated Memory: 128 MB Shared Memory: 8126 MB Current Mode: 1920 x 1200 (32 bit) (59Hz) HDR Support: Not Supported Display Topology: Extend Display Color Space: DXGI_COLOR_SPACE_RGB_FULL_G22_NONE_P709 Color Primaries: Red(0.660156,0.332031), Green(0.301758,0.613281), Blue(0.150391,0.063477), White Point(0.313477,0.329102) Display Luminance: Min Luminance = 0.500000, Max Luminance = 270.000000, MaxFullFrameLuminance = 270.000000 Monitor Name: Generic PnP Monitor Monitor Model: DELL U2415 Monitor Id: DELA0BC Native Mode: 1920 x 1200(p) (59.950Hz) Output Type: HDMI Monitor Capabilities: HDR Not Supported Display Pixel Format: DISPLAYCONFIG_PIXELFORMAT_32BPP Advanced Color: Not Supported Driver Name: ...gekürzt... Driver File Version: 27.20.0100.9316 (English) Driver Version: 27.20.100.9316 DDI Version: 12 Feature Levels: 12_1,12_0,11_1,11_0,10_1,10_0,9_3,9_2,9_1 Driver Model: WDDM 2.7 Hardware Scheduling: Supported:False Enabled:False Graphics Preemption: Triangle Compute Preemption: Thread Miracast: Not Supported by WiFi driver Detachable GPU: No Hybrid Graphics GPU: Integrated Power P-states: Not Supported Virtualization: Paravirtualization Block List: DISABLE_HWSCH Catalog Attributes: Universal:False Declarative:True Driver Attributes: Final Retail Driver Date/Size: 18.02.2021 02:00:00, 1456120 bytes WHQL Logo'd: Yes WHQL Date Stamp: Unknown Device Identifier: {D7B78E66-1A52-11CF-9757-4BA7BFC2D635} Vendor ID: 0x8086 Device ID: 0x5912 SubSys ID: 0x872F1043 Revision ID: 0x0004 Driver Strong Name: oem123.inf:5f63e5341bf86c41:iKBLD_w10_DS:27.20.100.9316:PCI\VEN_8086&DEV_5912 Rank Of Driver: 00CF2001 Video Accel: ModeMPEG2_A ModeMPEG2_C ModeWMV9_C ModeVC1_C DXVA2 Modes:...gekürzt... Deinterlace Caps: ...gekürzt... D3D9 Overlay: Supported DXVA-HD: Supported DDraw Status: Enabled D3D Status: Enabled AGP Status: Enabled MPO MaxPlanes: 3 MPO Caps: RGB,YUV,BILINEAR,HIGH_FILTER,STRETCH_YUV,STRETCH_RGB,IMMEDIATE,HDR (MPO3) MPO Stretch: 5.000X - 0.334X MPO Media Hints: colorspace Conversion MPO Formats: NV12,YUY2,R16G16B16A16_FLOAT,R10G10B10A2_UNORM,R8G8B8A8_UNORM,B8G8R8A8_UNORM PanelFitter Caps: RGB,YUV,BILINEAR,HIGH_FILTER,STRETCH_YUV,STRETCH_RGB,IMMEDIATE,HDR (MPO3) PanelFitter Stretch: 5.000X - 0.334X |
AW: Webcam in Delphi?
Liste der Anhänge anzeigen (Anzahl: 1)
Der Fehler den mir VLC wirft beim Versuch die cam als Input zu öffnen ist ja nicht von der Ausgabe. Sondern vom input stream.
Zitat:
Anhang 53835 Ich habe trotzdem mal mit weiteren input und output Optionen gespielt. Es bleibt bei der Fehlermeldung. Ich denke die hat die gleiche Ursache wie bei den AVICAP32.DLL basierten Programmen. Nur was? Post #34, sieht bei mir genauso aus. Post #35, muss ich meinen IT Admin ranlassen. Wenn ich da was ausprobiere darf ich mir einen Fleischwolf von innen ansehen. :lol: Display dxdiag part aus der VM: Zitat:
|
AW: Webcam in Delphi?
Hmm..
Ich habe hier nur die Antworten nur teilweise überflogen... Zusammengefasst: - Direkt auf dem PC: Video wird angezeigt. - Per RDP: Fenster, indem das Video abgespielt wird bleibt schwarz. Das kommt mir bekannt vor.. Viele Decoder/Videotreiber blenden das Videobild als 'Overlay' direkt auf dem Screen teilweise direkt in das Ausgabebild der Grafikkarte ein. Dieses kann von dem RDP-Screengrabber nicht erfasst werden und somit wird dort nur ein schwarzes Bild angezeigt werden. Früher konnte hier ein anderer Grafikkartentreiber mit einer Art 'Dobblebuffer' im Treiber installiert werden. Andere RDP-Clients oder Fernsteuerungstools dürften dieses Problem auch haben... Eventuell in den Einstellungen des RDP-Server/-Clints nachschauen, ob es für Videos eventuell auch einfach nur ein 'Ausblenden' gibt, um Ruckler oder gar Aussetzer bei der RDP-Übertragung zu verhindern. Alternativ nach einem anderen Dekoder (für den Video-Codec) schauen oder andere Videoplayer testen, diese könnten dieses Overlay anders handhaben. |
AW: Webcam in Delphi?
Videos werden angezeigt. Auch Microsofts eigene "Camera App" funktionier (Ich arbeite hier an englischen Systemem, keine Ahnung wie die App in deuschen Windows heißt).
Es scheint auch nicht die Ausgabe zu sein. Es sieht so aus als wenn die Datenquelle der Kamera in der RDP Session nicht auf die gleiche Art bereit gestellt wird. Denn wenn man sich mit der Kamera verbindet dann geht an der ja ein Licht an. Das passiert aber nicht. |
AW: Webcam in Delphi?
Hmm..
(Nochmals etwas detaillierter) Direkt am PC ist 'nicht' gleich RDP! Videobilder werden heute teilweise 'direkt' in der Grafikkarte 'berechnet' und dann 'direkt' in den Grafikkartenspeicher des Anzeigebildes/-bereiches 'kopiert'. Dieses Verfahren wird (wenn ich es richtig im Kopf habe) 'Overlay' (Überlagern) genannt. Bei RDP wird (einfach formuliert) immer wieder ein Screenshot gemacht und als Bild an den RDP-Client geschickt. Da dieser Screenshot vom 'Windows' Screen gemacht wird und eben 'nicht' aus dem Speicher der Grafikkarte, bleibt der Videobildbereich 'schwarz'! Somit brauchst Du entweder einen 'Softwaredecoder' der eben 'nicht' per Overlay in der Grafikkarte arbeitet oder eben ein Videoformat, welches nur per Software gerendert wird. Nur wirst Du heute keine GraKa ohne Videorendering Unterstützung mehr finden. Auch sind dabei dann je nach Komprimierungscodec keine 4K+ Auflösungen mehr möglich. Dieses trifft auch für Bilder einer Webcam zu, denn auch deren Bilder werden heute mit Grafikkatenunterstützung gerendert/decodiert. Nehme Dir mal einen PC mit einer alten Grafikkarte, welche 'nicht' beim Videorendering unterstützt, dann könnte es funktionieren. Videostreaming über RDP ist eh der falsche Weg, da dieses Protokoll dafür gar nicht ausgelegt ist! |
AW: Webcam in Delphi?
Ja, GPUs haben öfters sogar ein Hardwarerendering für gewisse Video-Formate eingebaut.
Vorallem bei 4K/8K ist es zu praktisch, wenn die dekodierten Datenmengen nicht durch die Software/CPU durch müssen. Selbst Videoplayer im Browser nutzen öfters solche Techniken, drum läuft manchmal das Video bissl nach, wenn man die Seite scrollt/zoomt. Ja, Overlay, da wird entweder die Ausgabe direkt in einer Hardware berechnet und/oder die Videodaten werden direkt in den Gradikkarte/Videospeicher geschrieben, damit sie nicht auf den Desktop gemalt und überall durchgereicht werden müssen. (nein, Schwarz ist es meistens nicht ... oftmals sah ich sowas wie ein dunkles Lila .... von x:y bis x2:y2 über eine gewisse Farbe drübermalen ) Aber auch da hat im Windows inzwischen der WindowsDesktopManager einige Optierungen bekommen, womit z.B. nicht "programmseitig" eine Fenster-Transparenz berechnet werden muß, sondern auch hier die Hilfe der GPU genutzt werden kann. (vorallem seit Vista bei allen Fenstern mit Transparenzen arbeitet, sonst wäre das eine saulangsame Sache geworden) Selbst hier könnte man bestimmt irgendwie die Videodaten reingeben, womit sie dann aber auch im RDP zu sehen wären. Wo das Video "raus kommt", hängt quasi vom Videocodec ab. Hier kann man eventuell die Hardwareunterstützung deaktivieren, oder einen anderen Codec wählen, welcher hierfür passender z.B. via Software arbeitet. Bestimmt lassen sich auch Overlay/Hardwareunterstüzung/Dergleichen deaktivieren, womit es dann "langsam" softwareseitig berechnet wird und vermutlich auch vom RDP abgefangen werden würde. |
AW: Webcam in Delphi?
Wir bewegen uns glaube ich in die falsche Richtung. Der Debug log vom VLC zeigt eine Fehlermeldung, auch das Programm hier aus dem Thread zeigt eine Fehlermeldung (Error-1).
Es gibt ein Programm von Microsoft zum testen von Webcams, auf enlischen Systemen heißt es "Camera". Das geht ohne jeglichen Fehler local auf dem PC als auch in der RDP Session. |
AW: Webcam in Delphi?
Es gibt ja nur paar Dinge, wo es hängen kann.
* das Gerät ist besetzt, weil wer Anderes schon drauf zugreift * das Programm hat nicht die Rechte das zu tun * es unterstützt nicht die nötige API (bzw. verwendet eine Nichtunterstützte) * Fehler im Programm das war der Input, und nun noch der Output * es nutzt eine API für die Anzeige, welche vom RDP nicht abgefangen wird (oder von der Hardware nicht unterstützt) * Fehler im Programm Webcam kann Video oder Bilder liefern. Für die Anzeige des "Live"-Bildes kann man auch schnell viele Einzelbilder abrufen und anzeigen, oder einen Video-Stream .... jenachdem unterscheiden sich auch die APIs. |
AW: Webcam in Delphi?
Zitat:
Zitat:
Zitat:
Zitat:
In der RDP Session ist es ein Windows Treiber der die Kamera simuliert. Der wird die API nicht mögen. Die Frage die bleibt, welche API verwenden Programme wie Skype, Teams, etc., denn die gehen. Könnte natürlich wirklich sein dass die dann garnicht in der RDP Session Rendern, sondern auf dem PC. Und wir doch wieder bei dem alten Problem sind. Mich interessiert nicht ernsthaft ein Livebild von der Kamera anzuzeigen, ich brauche nur die Bilder in irgend einem Puffer. Fürs erste bin ich auf eine andere Lösung ausgewichen und mache meine Bilder mit einer art Netzwerkkamera. Die lässt sich leider nur blöd bedienen und hängt ein paar Meter vom Nutzer weg. |
AW: Webcam in Delphi?
Die LED ist an, wenn Bilder abgerufen werden.
Die Verbindung zur Cam kann auch aktiv sein, ohne dass eine Aufnahme läuft. (z.B. um vor der Aufnahme die Konfiguration zu ändern oder abzurufen) Beispiel: Man kann einen COM-Port öffnen, aber muß keine Daten senden/abrufen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:50 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