AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Webcam in Delphi?

Offene Frage von "himitsu"
Ein Thema von Nicolai1234 · begonnen am 10. Dez 2004 · letzter Beitrag vom 8. Apr 2021
Antwort Antwort
Seite 5 von 6   « Erste     345 6      
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.060 Beiträge
 
Delphi 10.4 Sydney
 
#41

AW: Webcam in Delphi?

  Alt 1. Apr 2021, 15:22
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.
Schaue dir doch bitte nochmal meinen Screenshot aus Beitrag #34 an und zeige uns das.
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
  Mit Zitat antworten Zitat
Benutzerbild von Sinspin
Sinspin

Registriert seit: 15. Sep 2008
Ort: Dubai
614 Beiträge
 
Delphi 10.3 Rio
 
#42

AW: Webcam in Delphi?

  Alt 1. Apr 2021, 17:54
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:
Your input can't be opened:
VLC is unable to open the MRL 'dshow://'. Check the log for details.
Auswahl der cam als Datenquelle:
vlc_in.jpg

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.

Display dxdiag part aus der VM:
Zitat:
---------------
Display Devices
---------------
Card name: Microsoft Remote Display Adapter
Manufacturer: Microsoft
Chip type: Unknown
DAC type: Unknown
Device Type: Display-Only Device
Device Key: Enum\SWD\REMOTEDISPLAYENUM
Device Status: 0180600A [DN_DRIVER_LOADED|DN_STARTED|DN_DISABLEABLE|DN_REMO VABLE|DN_NT_ENUMERATOR|DN_NT_DRIVER]
Device Problem Code: No Problem
Driver Problem Code: Unknown
Display Memory: 4023 MB
Dedicated Memory: 0 MB
Shared Memory: 4023 MB
Current Mode: 3440 x 1440 (32 bit) (32Hz)
HDR Support: Not Supported
Display Topology: Internal
Display Color Space: DXGI_COLOR_SPACE_RGB_FULL_G22_NONE_P709
Color Primaries: Red(0.000000,0.000000), Green(0.000000,0.000000), Blue(0.000000,0.000000), White Point(0.000000,0.000000)
Display Luminance: Min Luminance = 0.000000, Max Luminance = 0.000000, MaxFullFrameLuminance = 0.000000
Monitor Name: Generic Non-PnP Monitor
Monitor Model: unknown
Monitor Id:
Native Mode: unknown
Output Type: Unknown
Monitor Capabilities: HDR Not Supported
Display Pixel Format: DISPLAYCONFIG_PIXELFORMAT_32BPP
Advanced Color: Not Supported
Driver Name: c:\windows\system32\drivers\umdf\rdpidd.dll,c:\win dows\system32\drivers\wudfrd.sys
Driver File Version: 10.00.19041.0662 (English)
Driver Version: 10.0.19041.662
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 1.3
Hardware Scheduling: Supported:False Enabled:False
Graphics Preemption: DMA
Compute Preemption: DMA
Miracast: Not Supported
Detachable GPU: No
Hybrid Graphics GPU: Not Supported
Power P-states: Not Supported
Virtualization: Not Supported
Block List: No Blocks
Catalog Attributes: N/A
Driver Attributes: Final Retail
Driver Date/Size: 2006-06-21 04:00:00, 224256 bytes
WHQL Logo'd: n/a
WHQL Date Stamp: n/a
Device Identifier: {D7B71AF4-43CC-11CF-9261-616AAFC2C735}
Vendor ID: 0x1414
Device ID: 0x008C
SubSys ID: 0x00000000
Revision ID: 0x0000
Driver Strong Name: rdpidd.inf:c14ce88470d6efe0:RdpIdd_Install.NT:10.0 .19041.662:RdpIdd_IndirectDisplay
Rank Of Driver: 00FF0000
Video Accel: Unknown
DXVA2 Modes: Unknown
Deinterlace Caps: n/a
D3D9 Overlay: Not Supported
DXVA-HD: Not Supported
DDraw Status: Not Available
D3D Status: Enabled
AGP Status: Not Available
MPO MaxPlanes: 0
MPO Caps: Not Supported
MPO Stretch: Not Supported
MPO Media Hints: Not Supported
MPO Formats: Not Supported
PanelFitter Caps: Not Supported
PanelFitter Stretch: Not Supported

Card name: Microsoft Hyper-V Video
Manufacturer: Microsoft
Chip type: Unknown
DAC type: Unknown
Device Type: Display-Only Device (POST)
Device Key: Enum\VMBUS\{DA0A7802-E377-4AAC-8E77-0558EB1073F8}
Device Status: 0180200A [DN_DRIVER_LOADED|DN_STARTED|DN_DISABLEABLE|DN_NT_E NUMERATOR|DN_NT_DRIVER]
Device Problem Code: No Problem
Driver Problem Code: Unknown
Display Memory: 4023 MB
Dedicated Memory: 0 MB
Shared Memory: 4023 MB
Current Mode: Unknown
HDR Support: Unknown
Display Topology: Unknown
Display Color Space: Unknown
Color Primaries: Unknown
Display Luminance: Unknown
Driver Name: c:\windows\system32\drivers\hypervideo.sys,c:\wind ows\system32\drivers\hypervideo.sys
Driver File Version: 10.00.19041.0001 (English)
Driver Version: 10.0.19041.1
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 1.3
Hardware Scheduling: Supported:False Enabled:False
Graphics Preemption: DMA
Compute Preemption: DMA
Miracast: Not Supported
Detachable GPU: No
Hybrid Graphics GPU: Not Supported
Power P-states: Not Supported
Virtualization: Not Supported
Block List: No Blocks
Catalog Attributes: N/A
Driver Attributes: Final Retail
Driver Date/Size: 2006-06-21 04:00:00, 41784 bytes
WHQL Logo'd: n/a
WHQL Date Stamp: n/a
Device Identifier: Unknown
Vendor ID: 0x1414
Device ID: 0x008C
SubSys ID: 0x00000000
Revision ID: 0x0000
Driver Strong Name: wvmbusvideo.inf:741f41b52317eb0a:HyperVideo_Instal l:10.0.19041.1:VMBUS\{da0a7802-e377-4aac-8e77-0558eb1073f8}
Rank Of Driver: 00DD0000
Video Accel: Unknown
DXVA2 Modes: Unknown
Deinterlace Caps: n/a
D3D9 Overlay: Unknown
DXVA-HD: Unknown
DDraw Status: Enabled
D3D Status: Enabled
AGP Status: Enabled
MPO MaxPlanes: 0
MPO Caps: Not Supported
MPO Stretch: Not Supported
MPO Media Hints: Not Supported
MPO Formats: Not Supported
PanelFitter Caps: Not Supported
PanelFitter Stretch: Not Supported
€: Bild vergessen.
Stefan
Nur die Besten sterben jung
A constant is a constant until it change.

Geändert von Sinspin ( 1. Apr 2021 um 18:01 Uhr)
  Mit Zitat antworten Zitat
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
961 Beiträge
 
Delphi 6 Professional
 
#43

AW: Webcam in Delphi?

  Alt 2. Apr 2021, 06:25
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.
(Ja ich Verwende Delphi 6 Pro und will NICHT wechseln!)
  Mit Zitat antworten Zitat
Benutzerbild von Sinspin
Sinspin

Registriert seit: 15. Sep 2008
Ort: Dubai
614 Beiträge
 
Delphi 10.3 Rio
 
#44

AW: Webcam in Delphi?

  Alt 4. Apr 2021, 08:29
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.
Stefan
Nur die Besten sterben jung
A constant is a constant until it change.
  Mit Zitat antworten Zitat
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
961 Beiträge
 
Delphi 6 Professional
 
#45

AW: Webcam in Delphi?

  Alt 5. Apr 2021, 21:49
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!
(Ja ich Verwende Delphi 6 Pro und will NICHT wechseln!)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.115 Beiträge
 
Delphi 12 Athens
 
#46

AW: Webcam in Delphi?

  Alt 5. Apr 2021, 22:54
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.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu ( 5. Apr 2021 um 23:05 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Sinspin
Sinspin

Registriert seit: 15. Sep 2008
Ort: Dubai
614 Beiträge
 
Delphi 10.3 Rio
 
#47

AW: Webcam in Delphi?

  Alt 6. Apr 2021, 08:55
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.
Stefan
Nur die Besten sterben jung
A constant is a constant until it change.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.115 Beiträge
 
Delphi 12 Athens
 
#48

AW: Webcam in Delphi?

  Alt 6. Apr 2021, 10:37
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.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Sinspin
Sinspin

Registriert seit: 15. Sep 2008
Ort: Dubai
614 Beiträge
 
Delphi 10.3 Rio
 
#49

AW: Webcam in Delphi?

  Alt 6. Apr 2021, 14:44
* das Gerät ist besetzt, weil wer Anderes schon drauf zugreift
Hmmm, bei all meinen Versuchen war dann immer eine LED am Gerät an.

* das Programm hat nicht die Rechte das zu tun
Gute Frage. Eher unwahrscheinlich. Es sind die Programme, nicht das.

* Fehler im Programm
Genau, die sind vor Ostern alle runter gefallen und haben jetzt einen Sprung in der RDP Session

* es nutzt eine API für die Anzeige, welche vom RDP nicht abgefangen wird
Und genau da scheint es zu hängen. Alle Programme die nicht laufen verwenden wohl die gleiche API. Und die kommt in RDP wohl nicht ordentlich durch.
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.
Stefan
Nur die Besten sterben jung
A constant is a constant until it change.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.115 Beiträge
 
Delphi 12 Athens
 
#50

AW: Webcam in Delphi?

  Alt 6. Apr 2021, 14:54
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.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 5 von 6   « Erste     345 6      


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 14:14 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