Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Cam Capturing [USB 2 PHP] (https://www.delphipraxis.net/117650-cam-capturing-%5Busb-2-php%5D.html)

Berlinermauer 22. Jul 2008 19:51


Cam Capturing [USB 2 PHP]
 
Hi, ich hätte da eine Frage :

ich mache so eine art Security System und fernwartung.

Dazu habe ich ne app die nen webserver Startet. diese PHP's habe eingene Funktionen auf die die App reagieren soll (weiß noch nicht wie, wieß aber das es geht; kommt erst später dran)

Nun möchte ich wissen wie ich Die Cam aufzeichnen kann (mehrere wenn mögl.) und sie in ne php datei via .avi einbinden kann.

TurboMartin 22. Jul 2008 20:57

Re: Cam Capturing [USB 2 PHP]
 
Nennt sich Streaming-Server. Viel Spaß beim Programmieren. Zu Hilfe hier etwas in Java.

Berlinermauer 22. Jul 2008 21:00

Re: Cam Capturing [USB 2 PHP]
 
kein Stream in dem Sinne sondern ich müsste nur die Webcam nehmen und auf ein LocalFile saven. Das lese ich dann mit PHP aus.

Ist das komplitziert mit dem file verändern müsste man alles in frames zerlegen

Berlinermauer 23. Jul 2008 19:00

Re: Cam Capturing [USB 2 PHP]
 
weiß denn keiner was ?

Ein Anfang wäre doch schon wenn ich mit TImage alle 4 Cams anzeigen könnte z.b,

Berlinermauer 16. Aug 2008 12:27

Re: Cam Capturing [USB 2 PHP]
 
ich hatte schon mehrere codes aber alle waren sinlos weil sie nicht gingen.

Ich brauche was womit ich mehrere cams ansteuern kann und deren ausgabe entweder als avi speichern kann oder als jpg.

PHP-Quellcode:
<meta refresh="1" oder so ^^ >
[img]./cams/cam_1/live.jpg[/img]




[img]./cams/cam_2/live.jpg[/img]
...

Berlinermauer 18. Aug 2008 15:48

Re: Cam Capturing [USB 2 PHP]
 
warum antwortet den keiner kann ja nicht so schwer sein

Die Muhkuh 18. Aug 2008 15:52

Re: Cam Capturing [USB 2 PHP]
 
Entweder versteh ich nicht was Du willst oder Du stellst es Dir zu schwer vor.

Bild auf der Platte irgendwo abspeichern und per <img> einbinden. Hat ja mit PHP nicht viel zu tun.

Oder hapert es beim Ansteuern der Webcam? Dazu mal im Forum suchen ;)

Berlinermauer 18. Aug 2008 16:02

Re: Cam Capturing [USB 2 PHP]
 
es hapert an der werbcam^^

aber alle aus der Code Library gehen nicht

franktron 18. Aug 2008 16:21

Re: Cam Capturing [USB 2 PHP]
 
Schau dir mal Zoneminder an der ist teilweise in PHP

Die Muhkuh 18. Aug 2008 16:29

Re: Cam Capturing [USB 2 PHP]
 
Zitat:

Zitat von Berlinermauer
aber alle aus der Code Library gehen nicht

:glaskugel:

Berlinermauer 18. Aug 2008 17:25

Re: Cam Capturing [USB 2 PHP]
 
ich habe alle beispiele der library getestet, das eine hat die webcam garnicht erkannt
beim zweiten scheiterte ich irgendwie am panel

Berlinermauer 26. Aug 2008 11:10

Re: Cam Capturing [USB 2 PHP]
 
/push

Berlinermauer 5. Sep 2008 14:23

Re: Cam Capturing [USB 2 PHP]
 
Also:

ich habe VideoHandle als THandle definiert.

Dann kommt diese Funktion :
Delphi-Quellcode:
function SaveWebcamPictureDIB(pFileName: PChar;WebcamHandle: THandle):Boolean;
const WM_CAP_FILE_SAVEDIB = WM_USER + 25;
begin
if IsWindow(WebcamHandle) then
  result := (SendMessage(WebcamHandle,WM_CAP_FILE_SAVEDIB,0,LPARAM(pFileName)) <> 0)
else
  result := false;
end;
wird so aufgerufen :

Delphi-Quellcode:
SaveWebcamPictureDIB(PChar('C:\test.jpg'),VideoHandle);
Aber er erstellt irgendwie kein Bild. Und wenn ich mehrere Cams Nutzen will was dann?

Die Muhkuh 5. Sep 2008 14:33

Re: Cam Capturing [USB 2 PHP]
 
Anderes WebcamHandle nehmen? :gruebel:

TurboMartin 5. Sep 2008 14:39

Re: Cam Capturing [USB 2 PHP]
 
Muss es den ein Bild sein, oder kann es auch ein Video-stream sein?

Berlinermauer 5. Sep 2008 14:40

Re: Cam Capturing [USB 2 PHP]
 
bei mehreren?? ja aber wie sag ich zb cam 1 und 3 oder so. gibts da net gute kompos (vllt sogar built in)


naja aber so wichtig is es nicht, wichtiger is das eins geht^^


ein Stream geht auch.

Dann spar ich mir auch den dauer refresh der ganzen seite und den timer.

Nur hab nirgends was für vid gefunden

x000x 5. Sep 2008 15:46

Re: Cam Capturing [USB 2 PHP]
 
Moin moin,

schau dir mal div. Directshow Beispiele an. Hier im Forum gibt es eine OpenSource-Demo --> WebCam mit DirectShow.
Dort ist eigentlich alles drin was du brauchst...
Denke mal, damit wirst du alles machen können was du so vorhast.

Berlinermauer 5. Sep 2008 16:16

Re: Cam Capturing [USB 2 PHP]
 
hi,

erst mal danke das ist ja richtig ausführlich, nur hab ich da das Problem das ich jetzt nicht weiß wie ich das als avi streamen kann.

Das Prinzip ist die FernÜberwachung mit dem Browser.


Da wäre halt .jpg einfacher. außerdm braucht es dann nicht mehr so viel Traffic und co

x000x 5. Sep 2008 16:20

Re: Cam Capturing [USB 2 PHP]
 
Frag doch direkt in dem Thread nach, denke mal der Author kann dir da bestimmt weiter helfen

[EDIT]
Wenn du jpg's nehmen willst, dann ist doch das Beispiel fast nach deinen Bedürfnissen. Soweit ich beim überfliegen gesehen hab, speichert er Bitmaps in einem Array und zeichnet sie
in der Paintbox...
Diese kannst du doch einfach abgreifen und als jpg speichern - sollte doch dann deine Lösung sein?!

Berlinermauer 5. Sep 2008 16:34

Re: Cam Capturing [USB 2 PHP]
 
Da wüsste ich nicht wie es geht :(

Naja habe den Autor angeschrieben, das wäre ja dann doch wieder zu umständig oder?

Mein Code ist doch da dann wohl besser geeignet oder?

TurboMartin 5. Sep 2008 16:46

Re: Cam Capturing [USB 2 PHP]
 
Ich würde dir da glatt das Windows Media Encoder SDK da ans Herzen legen.

x000x 5. Sep 2008 16:58

Re: Cam Capturing [USB 2 PHP]
 
Also deinen Code kenne ich nicht, bzw. ich weiss nicht, was du alles schon fertig hast.
Bei dem oben genannten Projekt ist doch eine schöne Klasse mit bei --> TVideoImage
Diese hat eine Methode --> GetBitmap(BMP: TBitmap);
Damit kommst du an das Bitmap, welches du dann nur noch als JPG speichern musst.
Den Rest machst du dann ja mit deiner Web-Application.

In wie weit du diese Klasse in deinem Prokekt benutzen darfst, müsstest du beim Author erfragen.

Ich meinte nicht, dass du die ganze Application des Opensource Projektes umstellen sollst, sondern habe das eher
als ein gutes Beispiel gesehen.

Berlinermauer 5. Sep 2008 17:04

Re: Cam Capturing [USB 2 PHP]
 
hab aber nicht vor .net zu benutzen, denn es soll auch auf alten kisten laufen und so.

außerdem sind das header files für c#.vc und vb, kein Delphi.



Warum um so viele Ecken denken? warum macht der bei mir kein Bild? kann das daran liegen das ich zwei webcams hab und die eine schrott ist?

x000x 5. Sep 2008 18:33

Re: Cam Capturing [USB 2 PHP]
 
Moin moin,

also ich habe da kein .net gesehen. Vorraussetzung ist installiertes DirectX. Läuft denn die Anwendung
bei dir?

Berlinermauer 5. Sep 2008 19:27

Re: Cam Capturing [USB 2 PHP]
 
visualc und c# sind .net anwendungen, und naja die vonmir gepostete Lösung wäre doch die einfachste. Aber warum geht die nicht? weil ich zwei Webcams hab?

x000x 5. Sep 2008 20:30

Re: Cam Capturing [USB 2 PHP]
 
Also hinter dem link den ich gepostet habe, ist definitiv eine Delphi Anwendung auf basis von Directshow. Sie
läuft bei mir auf Delphi 5 und 6 und der Author benutzt Delphi 7. Laut den Postings läuft sie auch unter Turbo Delphi.
In der ganzen Anwenung sehe ich nichts von c# oder sonstiges.

Deinen Code kenne ich nicht und kann dir deshalb auch nicht sagen, warum der nicht funktioniert.

Ich war der Meinung, dass du anhand der Sourcen von diesem Opensource Projekt in reletiv kurzer Zeit und entsprechend wenig
Aufwand deine Anwendung fertig stellen kannst. Ich muss aber auch zugeben, dass ich den Source nur kurz überflogen habe,
ich kann mich natürlich auch geirrt haben.

Berlinermauer 5. Sep 2008 20:37

Re: Cam Capturing [USB 2 PHP]
 
das visualc war vom TurboMartin.


Deins ist irgendwie zu aufwändig. und ich kann es ja eh nicht als avi streamen wie bei live konzerten oder?

deswegen ist ne secondly-updating-jpeg einfacher

Berlinermauer 6. Sep 2008 13:35

Re: Cam Capturing [USB 2 PHP]
 
ich glaube ich weiß warum.

Im TuT heißt es VideoHandle ist das Handle welches bei der initalisation von capCreatureWindow zurückgegeben wird.

Ich weiß aber nicht wie ich das machen soll

hab es als funktion oder Eigenschaftswert versucht, es heißt dass er es nicht kennt.

Also nicht definiert.

Berlinermauer 8. Sep 2008 13:56

Re: Cam Capturing [USB 2 PHP]
 
Kanns nicht daran liegen, dass ich das Capture nicht initalized habe ?

irgendwie hat das capCreateWindow oder so nicht funktioniert.

"Beide Funktionen erwarten nur den Dateinamen und das Handle, welches bei der Initialisierung von der Funktion capCreateCaptureWindow zurückgegeben wird."

so nun weiß ich aber nichts mit campCreateCaptureWindow anzufangen da delphi sich eben beschwert.

Hier die Funktion :
Delphi-Quellcode:
function SaveWebcamPictureDIB(pFileName: PChar;WebcamHandle: THandle):Boolean;
const WM_CAP_FILE_SAVEDIB = WM_USER + 25;
begin
if IsWindow(WebcamHandle) then
  result := (SendMessage(WebcamHandle,WM_CAP_FILE_SAVEDIB,0,LPARAM(pFileName)) <> 0)
else
  result := false;
end;
Beispielaufruf:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
//VideoHandle = Zurückgegebenes Handle bei der Initialisierung
SaveWebcamPictureDIB(PChar('C:\test.jpg'),VideoHandle);
end;
So habe ichs aus der DP.

und habe noch VideoHandle als THandle dekliniert

x000x 8. Sep 2008 14:31

Re: Cam Capturing [USB 2 PHP]
 
Moin moin,
VfW gilt eigentlich als obsolete, auch deshalb hatte ich dir den Link gepostet.
Aber egal:
Zitat:

Zitat von Berlinermauer
...irgendwie hat das capCreateWindow oder so nicht funktioniert...
...so nun weiß ich aber nichts mit campCreateCaptureWindow anzufangen da delphi sich eben beschwert...

Wenn capCreateCaptureWindow nicht funktioniert hat, dann wirst du mit dem Code auch kein Bild von der Cam bekommen.
Was hat denn da nicht funktioniert bzw. was/wie hat Delphi sich beschwert?

Berlinermauer 8. Sep 2008 15:12

Re: Cam Capturing [USB 2 PHP]
 
es hat sich "beschwert" indem er meinte dass es nicht definiert ist.

habe es als funktionsaufruf und eigenschaft von VideoHandle versucht. es kommt immer das er es nicht kennt.

x000x 8. Sep 2008 15:31

Re: Cam Capturing [USB 2 PHP]
 
Ok,

wenn du capCreateWindow aufrufst, wundert mich das nicht unbedingt. Laut MSDN heisst die funktion capCreateCaptureWindow.
Wenn du capCreateCaptureWindow geschrieben hast und diese nicht definiert ist, musst du sie entspr. linken.
Siehe dazu in diesem Threadbeitrag - brauchste doch eigentlich nur zu kopieren.


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:30 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