Seite 1 von 2

WebCam

Verfasst: 30.05.2005 16:57
von JanFredi
Kennt jemand ein Programm mit dem man WebCam bilder Automatisch im Hintergrund Hochladen kann.
Es soll ein Programm sein was mit Windos Startet.
Es soll per FTP funktiniren.
Es soll ein Version sein die nicht nur 30 Tage leuft und so weiter na ihr wist schön was ich meine.
Ich bitte um Eure Hilfe.

Edit by Kiffi: In's 'Allgemein'-Forum verschoben.

Re: WebCam

Verfasst: 30.05.2005 17:16
von Kiffi
> Ich bitte um Eure Hilfe.

selber programmieren! :-)

Du hast hier ja bereits schon mal nach einer WebCam-Software gefragt. Also
nimm die von bobobo empfohlene Lib und packst die für Purebasic zahlreich
vorhandenen FTP-Routinen dazu. Fertig ist's.

Grüße ... Kiffi

Verfasst: 30.05.2005 17:18
von bobobo
Gucke mal flugs ins Codearchiv bei Internet&Co und dort bei FTP-Upload.
also hier

Verfasst: 30.05.2005 17:51
von DarkDragon
Und hier noch ein kleiner Webcam code:

Code: Alles auswählen

#WM_CAP_START = #WM_USER

#WM_CAP_SET_CALLBACK_ERROR = #WM_CAP_START + 2
#WM_CAP_SET_CALLBACK_STATUS = #WM_CAP_START + 3
#WM_CAP_SET_CALLBACK_YIELD = #WM_CAP_START + 4
#WM_CAP_SET_CALLBACK_FRAME = #WM_CAP_START + 5
#WM_CAP_SET_CALLBACK_VIDEOSTREAM = #WM_CAP_START + 6
#WM_CAP_SET_CALLBACK_WAVESTREAM = #WM_CAP_START + 7

#WM_CAP_DRIVER_CONNECT        =  #WM_USER + 10
#WM_CAP_DRIVER_DISCONNECT     =  #WM_USER + 11
#WM_CAP_DRIVER_GET_CAPS = #WM_CAP_START + 14

#WM_CAP_DLG_VIDEOFORMAT = #WM_CAP_START + 41
#WM_CAP_DLG_VIDEOSOURCE = #WM_CAP_START + 42
#WM_CAP_DLG_VIDEODISPLAY = #WM_CAP_START + 43

#WM_CAP_SET_PREVIEW = #WM_CAP_START + 50
#WM_CAP_SET_PREVIEWRATE = #WM_CAP_START + 52
#WM_CAP_GET_STATUS = #WM_CAP_START + 54

#WM_CAP_FILE_SAVEDIB          =  #WM_USER + 25
#WM_CAP_SET_SCALE             =  #WM_USER + 53

#WM_CAP_SET_CALLBACK_CAPCONTROL = #WM_CAP_START + 85

Structure VIDEOHDR
  lpData.l
  dwBufferLength.l
  dwBytesUsed.l
  dwTimeCaptured.l
  dwUser.l
  dwFlags.l
  dwReserved.l[3]
EndStructure

Structure CAPSTATUS
  uiImageWidth.l
  uiImageHeight.l
  fLiveWindow.l
  fOverlayWindow.l
  fScale.l
  ptScroll.Point
  fUsingDefaultPalette.l
  fAudioHardware.l
  fCapFileExists.l
  dwCurrentVideoFrame.l
  dwCurrentVideoFramesDropped.l
  dwCurrentWaveSamples.l
  dwCurrentTimeElapsedMS.l
  hPalCurrent.l
  fCapturingNow.l
  dwReturn.l
  wNumVideoAllocated.l
  wNumAudioAllocated.l
EndStructure

hWnd = OpenWindow(0, 0, 0, 400, 500, #PB_Window_SystemMenu, "WebCamTest")

CreateGadgetList(WindowID())

If OpenLibrary(0, "AVICAP32.DLL")

hWebcam = CallFunction(0, "capCreateCaptureWindowA", "BLUBBER", #WS_VISIBLE + #WS_CHILD, 10, 10, 380, 380, hWnd, 0)

SendMessage_(hWebcam, #WM_CAP_DRIVER_CONNECT          , 0 , 0)
SendMessage_(hWebcam, #WM_CAP_SET_SCALE               , 1 , 0)
SendMessage_(hWebcam, #WM_CAP_SET_PREVIEWRATE         , 50, 0)
SendMessage_(hWebcam, #WM_CAP_SET_PREVIEW             , 1 , 0)

Repeat
  Event = WindowEvent()
  Select Event
    Case #PB_Event_CloseWindow
      Quit = 1
  EndSelect
Until Quit = 1
SendMessage_(hWebcam, #WM_CAP_SET_PREVIEW       , 0, 0)
SendMessage_(hWebcam, #WM_CAP_DRIVER_DISCONNECT, "BLUBBER", 0)
CloseWindow(0)
CloseLibrary(0)
EndIf
;End

Verfasst: 30.05.2005 18:48
von Hroudtwolf

Code: Alles auswählen

CallFunction(0, "capSetCallbackOnFrame", hWebcam, @FrameCallback()) 
Mein PureBasic hat geschrieben: Zeile 66: FrameCallback() is not a function, an array or a linked list....

Verfasst: 30.05.2005 19:05
von DarkDragon
Hroudtwolf hat geschrieben:

Code: Alles auswählen

CallFunction(0, "capSetCallbackOnFrame", hWebcam, @FrameCallback()) 
Mein PureBasic hat geschrieben: Zeile 66: FrameCallback() is not a function, an array or a linked list....
jo lösch die zeile, da hab ich vergessen es vollständig zu löschen.

Verfasst: 30.05.2005 19:59
von JanFredi
Da ich eine TV karte habe und meine Webcam als 2 Kamera Initsjalisirt ist geht das nicht wie krige ich Kamera 2?

Verfasst: 30.05.2005 20:01
von DarkDragon
JanFredi hat geschrieben:Da ich eine TV karte habe und meine Webcam als 2 Kamera Initsjalisirt ist geht das nicht wie krige ich Kamera 2?
Toll, ich hab das eigentlich nur zu testzwecken verwendet, aber such halt mal nach den befehlen bei google.

[EDIT]

Code: Alles auswählen

SendMessage_(hWebcam, #WM_CAP_DRIVER_CONNECT          , 1 , 0)
Dürfte zum 2. Treiber connecten.

Verfasst: 31.05.2005 12:03
von JanFredi
DarkDragon hat geschrieben: [EDIT]

Code: Alles auswählen

SendMessage_(hWebcam, #WM_CAP_DRIVER_CONNECT          , 1 , 0)
Dürfte zum 2. Treiber connecten.
Ne leider nicht nur zum Schwartzen

Verfasst: 31.05.2005 13:18
von stbi
ich kanns gerade mangels Cam nicht ausprobieren, aber folgender Code sollte/könnte die installierten Driver auflisten:

Code: Alles auswählen

devname.s = Space(80)
devver.s = Space(80)
For x = 0 To 9
  result = CallFunction(0, "capGetDriverDescription", x, @devname, 80, devver, 80)
  Debug "Capture Driver " + Str(x)
  Debug result
  Debug devname
  Debug devver
Next
einfach mal vor die Zeile mit dem DriverConnect einfügen, würde mich interessieren, was er auflistet