Entwickler-Ecke

Windows API - Framerate der Webcam


Benutzername - Di 14.12.04 15:58
Titel: Framerate der Webcam
Mit folgendem Code bekomm ich normalerweise das, was meine USB-Webcam "sieht" mit 25 Fps auf einem Panel dargestellt:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
var handle:THandle;
[...]
handle := CapCreateCaptureWindow('Video', ws_child + ws_visible, 00, Panel1.Width, Panel1.Height, Panel1.Handle, 1);
  CapDriverConnect(handle, 0);
  CapPreviewRate(handle, 40);
  CapPreview(handle, true);
  CapOverlay(handle, true);

Außerdem wird noch Overlay aktiviert, aber das tut ja hier nix zur Sache ;-)

Das hat anfangs auch wunderbar funktioniert, aber seit vorgestern (wars glaub ich), ruckelt das Bild mit geschätzten 15 fps daher, egal welchen Wert ich bei CapPreviewRate einstelle.. :-?

Ich hab schon alle unwichtigen Dateien im Programmordner gelöscht, auch die DCUs, aber das hat auch nix gebracht.

Vielleicht noch eins: Wenn ich ein Video aufnehme, steigt die Framerate im Panel auf ihren Soll-Wert 25 Fps :-|

Ich hoffe, ihr könnt mir helfen, diesen Missstand zu beseitigen.
(Cool, ein 3s-Wort :mrgreen:)

Ergänzend vielleicht noch: Ich habe die gleiche Frage schon in der DP gestellt, da ja in beiden Foren unterschiedliche Leute rumgeistern ;-)


patrick - Mi 15.12.04 13:24

wasss für eine cam hassst den du?
und noch wichtiger, wasss sssind dasss denn für funktionen wo du da aufrufssst.
6x 3s wörter :mrgreen:


Benutzername - Mi 15.12.04 13:54

Ich hasse meine Webcam gar nicht :mrgreen:

Ich hab die Eyetoy-Kamera von der PS2 mit gemoddeten Treibern angeschlossen, und die Funktionen, die ich da aufrufe, sind zu finden im MSDN oder im WinAPI SDK, etwa Suche im MSDN CAPCREATECAPTUREWINDOW


patrick - Do 16.12.04 12:44

hast du dir die erklärung von WM_CAP_SET_PREVIEWRATE [http://msdn.microsoft.com/library/en-us/multimed/htm/_win32_wm_cap_set_previewrate.asp] und capPreviewRate [http://msdn.microsoft.com/library/en-us/multimed/htm/_win32_cappreviewrate.asp] durchgelesen?.
ich bin da auf folgende zeile gestoßen was das erklären könnte:
Zitat:
During streaming video capture, the previewing task is lower priority than writing frames to disk, and preview frames are displayed only if no other buffers are available for writing.


Suche im MSDN WM_CAP_SET_PREVIEWRATE
Suche im MSDN CAPPREVIEWRATE


Benutzername - Do 16.12.04 16:53

Das erste Problem dabei ist ja, dasss es mal so ging, wie ich es wollte :?
Außerdem ruckelts ja nur, wenn ich gerade nicht aufnehme, sondern mir bloß ansehe, was die Kamera "sieht".
Wenn ich aber auf die Festplatte aufnehme, dass läuft in der Vorschau alles flüssig.

Ich weiß echt nicht mehr weiter :?


Benutzername - Fr 17.12.04 18:07

Kann mir denn niemand helfen? :-(


Benutzername - Sa 18.12.04 18:23

Immer noch nicht? :-(


Benutzername - Mo 20.12.04 15:35

Kann das hier niemand? :mrgreen:


Benutzername - Mi 22.12.04 14:04

Langsam wird mir das pushen peinlich :oops: :mrgreen: