Sign in to follow this  
Followers 0
lukeneo

Saving Avi file

3 posts in this topic

The following code found in this forum works with cameras, and tv bords as

i have tested .. but he tHE avi recording parts dont work for me .. i am getting a message

variable is not declared. i diD not modify any part of it other than changing the HOTKEYS .

1, WHAT IS GONING WRONG .. I AM USING WIN XP --SP2

2, IF IT IS POSSIBLE TO PLAY TV CARDS , DOES ANY ONE KNOW HOW CAN I CONTROL THE VIDEO TUNER

WHICH IS FOUND

IN DLL File: vfwwdm32 or vfwwdm32.dll

DLL Name: VfW MM Driver for WDM Video Capture Devices.

vfwwdm32.dll is a module that contains application programming interface (API) functions to allow

Video for Windows applications to interface with the WDM capture drivers on Windows .

SPECIFICALLY WHAT I WANT DO IS TO CONTROL THE TUNER ... SWITCHING THE CHANNEL TO 1,2, 3 AND SO ON..

IF THE DLL HAS API FUNCTIONS , POSSIBLY TO USE WITH AUTOIT , DLL CALL ?

IS THERE SOME ONE TO GIVE SOME HINTS .. CODES . ? THANKS IN ADVANCE !

THE CODE FOLLOWS ................

;THE CODE BEGINS

HotKeySet("+!x", "test1") ;Shift-Alt-x dispaly message

HotKeySet("+!m", "StartRecording") ;Shift-Alt-m should record

;HotKeySet("{HOME}", "StartRecording"); Press 'Home' to start recording !

Func StartRecording()

DllCall($user, "int", "SendMessage", "hWnd", $cap[0], "int", $WM_CAP_FILE_SET_CAPTURE_FILEA, "int", 0, "str", $moviefile)

DllCall($user, "int", "SendMessage", "hWnd", $cap[0], "int", $WM_CAP_SEQUENCE, "int", 0, "int", 0)

WinSetTitle($Main, "", "WebCam - Capturing...")

HotKeySet("+!m", "StopRecording") ;Shift-Alt-m

EndFunc

Func StopRecording()

DllCall($user, "int", "SendMessage", "hWnd", $cap[0], "int", $WM_CAP_STOP, "int", 0, "int", 0)

WinSetTitle($Main, "", "WebCam - Ready")

HotKeySet("+!m", "StartRecording") ;Shift-Alt-m

EndFunc

$WM_CAP_START = 0x400

$WM_CAP_UNICODE_START = $WM_CAP_START +100

$WM_CAP_PAL_SAVEA = $WM_CAP_START + 81

$WM_CAP_PAL_SAVEW = $WM_CAP_UNICODE_START + 81

$WM_CAP_UNICODE_END = $WM_CAP_PAL_SAVEW

$WM_CAP_ABORT = $WM_CAP_START + 69

$WM_CAP_DLG_VIDEOCOMPRESSION = $WM_CAP_START + 46

$WM_CAP_DLG_VIDEODISPLAY = $WM_CAP_START + 43

$WM_CAP_DLG_VIDEOFORMAT = $WM_CAP_START + 41

$WM_CAP_DLG_VIDEOSOURCE = $WM_CAP_START + 42

$WM_CAP_DRIVER_CONNECT = $WM_CAP_START + 10

$WM_CAP_DRIVER_DISCONNECT = $WM_CAP_START + 11

$WM_CAP_DRIVER_GET_CAPS = $WM_CAP_START + 14

$WM_CAP_DRIVER_GET_NAMEA = $WM_CAP_START + 12

$WM_CAP_DRIVER_GET_NAMEW = $WM_CAP_UNICODE_START + 12

$WM_CAP_DRIVER_GET_VERSIONA = $WM_CAP_START + 13

$WM_CAP_DRIVER_GET_VERSIONW = $WM_CAP_UNICODE_START + 13

$WM_CAP_EDIT_COPY = $WM_CAP_START + 30

$WM_CAP_END = $WM_CAP_UNICODE_END

$WM_CAP_FILE_ALLOCATE = $WM_CAP_START + 22

$WM_CAP_FILE_GET_CAPTURE_FILEA = $WM_CAP_START + 21

$WM_CAP_FILE_GET_CAPTURE_FILEW = $WM_CAP_UNICODE_START + 21

$WM_CAP_FILE_SAVEASA = $WM_CAP_START + 23

$WM_CAP_FILE_SAVEASW = $WM_CAP_UNICODE_START + 23

$WM_CAP_FILE_SAVEDIBA = $WM_CAP_START + 25

$WM_CAP_FILE_SAVEDIBW = $WM_CAP_UNICODE_START + 25

$WM_CAP_FILE_SET_CAPTURE_FILEA = $WM_CAP_START + 20

$WM_CAP_FILE_SET_CAPTURE_FILEW = $WM_CAP_UNICODE_START + 20

$WM_CAP_FILE_SET_INFOCHUNK = $WM_CAP_START + 24

$WM_CAP_GET_AUDIOFORMAT = $WM_CAP_START + 36

$WM_CAP_GET_CAPSTREAMPTR = $WM_CAP_START + 1

$WM_CAP_GET_MCI_DEVICEA = $WM_CAP_START + 67

$WM_CAP_GET_MCI_DEVICEW = $WM_CAP_UNICODE_START + 67

$WM_CAP_GET_SEQUENCE_SETUP = $WM_CAP_START + 65

$WM_CAP_GET_STATUS = $WM_CAP_START + 54

$WM_CAP_GET_USER_DATA = $WM_CAP_START + 8

$WM_CAP_GET_VIDEOFORMAT = $WM_CAP_START + 44

$WM_CAP_GRAB_FRAME = $WM_CAP_START + 60

$WM_CAP_GRAB_FRAME_NOSTOP = $WM_CAP_START + 61

$WM_CAP_PAL_AUTOCREATE = $WM_CAP_START + 83

$WM_CAP_PAL_MANUALCREATE = $WM_CAP_START + 84

$WM_CAP_PAL_OPENA = $WM_CAP_START + 80

$WM_CAP_PAL_OPENW = $WM_CAP_UNICODE_START + 80

$WM_CAP_PAL_PASTE = $WM_CAP_START + 82

$WM_CAP_SEQUENCE = $WM_CAP_START + 62

$WM_CAP_SEQUENCE_NOFILE = $WM_CAP_START + 63

$WM_CAP_SET_AUDIOFORMAT = $WM_CAP_START + 35

$WM_CAP_SET_CALLBACK_CAPCONTROL = $WM_CAP_START + 85

$WM_CAP_SET_CALLBACK_ERRORA = $WM_CAP_START + 2

$WM_CAP_SET_CALLBACK_ERRORW = $WM_CAP_UNICODE_START + 2

$WM_CAP_SET_CALLBACK_FRAME = $WM_CAP_START + 5

$WM_CAP_SET_CALLBACK_STATUSA = $WM_CAP_START + 3

$WM_CAP_SET_CALLBACK_STATUSW = $WM_CAP_UNICODE_START + 3

$WM_CAP_SET_CALLBACK_VIDEOSTREAM = $WM_CAP_START + 6

$WM_CAP_SET_CALLBACK_WAVESTREAM = $WM_CAP_START + 7

$WM_CAP_SET_CALLBACK_YIELD = $WM_CAP_START + 4

$WM_CAP_SET_MCI_DEVICEA = $WM_CAP_START + 66

$WM_CAP_SET_MCI_DEVICEW = $WM_CAP_UNICODE_START + 66

$WM_CAP_SET_OVERLAY = $WM_CAP_START + 51

$WM_CAP_SET_PREVIEW = $WM_CAP_START + 50

$WM_CAP_SET_PREVIEWRATE = $WM_CAP_START + 52

$WM_CAP_SET_SCALE = $WM_CAP_START + 53

$WM_CAP_SET_SCROLL = $WM_CAP_START + 55

$WM_CAP_SET_SEQUENCE_SETUP = $WM_CAP_START + 64

$WM_CAP_SET_USER_DATA = $WM_CAP_START + 9

$WM_CAP_SET_VIDEOFORMAT = $WM_CAP_START + 45

$WM_CAP_SINGLE_FRAME = $WM_CAP_START + 72

$WM_CAP_SINGLE_FRAME_CLOSE = $WM_CAP_START + 71

$WM_CAP_SINGLE_FRAME_OPEN = $WM_CAP_START + 70

$WM_CAP_STOP = $WM_CAP_START + 68

#include <GUIConstants.au3>

$avi = DllOpen("avicap32.dll")

$user = DllOpen("user32.dll")

$snapfile = @ScriptDir & "\scrshot.bmp"

$Main = GUICreate("Camera",350,270)

$cap = DllCall($avi, "int", "capCreateCaptureWindow", "str", "cap", "int", BitOR($WS_CHILD,$WS_VISIBLE), "int", 15, "int", 15, "int", 320, "int", 240, "hwnd", $Main, "int", 1)

DllCall($user, "int", "SendMessage", "hWnd", $cap[0], "int", $WM_CAP_DRIVER_CONNECT, "int", 0, "int", 0)

DllCall($user, "int", "SendMessage", "hWnd", $cap[0], "int", $WM_CAP_SET_SCALE, "int", 1, "int", 0)

DllCall($user, "int", "SendMessage", "hWnd", $cap[0], "int", $WM_CAP_SET_OVERLAY, "int", 1, "int", 0)

DllCall($user, "int", "SendMessage", "hWnd", $cap[0], "int", $WM_CAP_SET_PREVIEW, "int", 1, "int", 0)

DllCall($user, "int", "SendMessage", "hWnd", $cap[0], "int", $WM_CAP_SET_PREVIEWRATE, "int", 1, "int", 0)

GUISetState(@SW_SHOW)

HotKeySet("{INSERT}", "SnapShot"); Press 'Insert' to make a SnapShot !

While 1

$msg = GUIGetMsg()

If $msg = $GUI_EVENT_CLOSE Then

;DllCall($user, "int", "SendMessage", "hWnd", $cap[0], "int", $WM_CAP_SET_CALLBACK_FRAME, "int", 0, "int", 0)

DllCall($user, "int", "SendMessage", "hWnd", $cap[0], "int", $WM_CAP_END, "int", 0, "int", 0)

DllCall($user, "int", "SendMessage", "hWnd", $cap[0], "int", $WM_CAP_DRIVER_DISCONNECT, "int", 0, "int", 0)

;DllClose($avi)

DllClose($user)

Exit

EndIf

Sleep(1)

Wend

Func SnapShot()

DllCall($user, "int", "SendMessage", "hWnd", $cap[0], "int", $WM_CAP_GRAB_FRAME_NOSTOP, "int", 0, "int", 0)

DllCall($user, "int", "SendMessage", "hWnd", $cap[0], "int", $WM_CAP_FILE_SAVEDIBA, "int", 0, "str", $snapfile)

EndFunc

Func test1()

MsgBox(0,"not recording ", "what is the problem ")

EndFunc

Share this post


Link to post
Share on other sites



put the functions to the bottom.

THE SOLUTION IS TO TOGGLE TO BETA VERSION !!!!

THIS SCRIPTS PLAYS AVI ... BUT NOT MORE THAN 65 SECONDS .... IT STOPS BY ITSELF

SECOND YHE PRODUCED IMAGE FILE IS LARGE .... FO 65 SECONDS 214 MG

BUT THE QUALITY IS EXCELLENT .......

IS THERE ANYONE WHO RECORDDE LONGER TIME ?

IS THERE ANY WAY POSSIBLE TO COMPRESS THE FILES WHILE RECORDING ?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0