变更压缩比
为了根据存储空间来设定视频文件的存储大小,因此我们可以通过下面的语句:Set_CompressRate=SendMessage_Long(CapHWnd,WM_CAP_DLG_VIDEOCOMPRESSION, 0&, 0&),来调用如图所示的窗口来变更压缩比。使我们采集到的视频文件在不影响质量的情况下达到最小。通过如图4-4所示的这个窗口我们不但可以选择合适的压缩比而且还可以对其进行局部的设置使存储的视频文件达到最佳效果。

图4.4 压缩比设置图
变更抽取来源
由于本套视频监控采用了四部摄像头,因此可以利用下面的语句来进行摄像头的选择:
SendMessage_long (CapHwnd, WM_CAP_DLG_VIDEOSOURCE, 0&, 0&),它会出现如图4.5所示的对话框,在这个对话框中我们不但可以进行摄像头的选择,而其还可以对每个摄像头的亮度、曝光度和颜色等进行设置。

图4.5 摄像头设置图
4.4 图像的显示
激活摄像头:
①利用capCreateCaptureWindows函数,建立一个摄像头窗口,语法如下所示:CapHWnd=capCreateCaptureWindows(窗口名称,WS_CHILD or WS_VISIBLE,水平坐标,垂直坐标,宽度,高度screen.ActiveForm.hwnd,0 )
②利用SendMessage_Long函数,将抽取装置连接到摄像头窗口,语法如下所示:SendMessage_Long(CapHwnd,WM_CAP_DRIVER_CONNECT,装置代号,0&)
③利用SendMessage_Any函数,返回该摄像头窗口,语法如下所示:
SendMessage_Any(CapHwnd,WM_CAP_DRIVER_Get_CAPS,Len(Caps),Caps)
④利用SendMessage_Long函数,设置预览的速度,语法如下所示:
SendMessage_Long(CapHwnd,WM_CAP_SET_PREVIEWRATE,速度,0&)
⑤利用SendMessage_Long函数,激活摄像头窗口,语法如下所示:
SendMessage_Long(CapHwnd,WM_CAP_SET_PREVIE,Ture,0&)
视频录制
对于视频图像的采集我采用了如下的两个函数来进行:Sendmessage_Any(CapHwnd,WM_CAP_SET_SEQUENCE_SETUP,LEN(p), p)
Sendmessage_Long (CapHwnd, WM_CAP_ SEQUENCE,0&,0&)
具体的程序片段如下:
Dim p As CAPTUREPARMS
With p
.wPercentDropForError = 10
.fUsingDOSMemory = 0
.wNumVideoRequested = 32
.fAbortLeftMouse = 0
.fAbortRightMouse = 0
.wChunkGranularity = 0
.dwAudioBufferSize = 0
.fDisableWriteCache = 1
.fMCIControl = 0
.fStepCaptureAt2x = 0
.fYield = 0
.wNumAudioRequested = 4
.AVStreamMaster = 0&
.dwIndexSize = 9000& '15分60秒,每秒10张
.dwRequestMicroSecPerFrame = 1000000 \ 15 '设置取样频率
.fCaptureAudio = 1 '抽取声音
.fLimitEnabled = 0 '关闭抽取时间限制
.wTimeLimit = 30 '设置抽取秒数
End With
Get_AVIWindows1=SendMessage_Any(CapHWnd,WM_CAP_SET_SEQUENCE_SETUP,Len(P),P)
Get_AVIWindow1 = SendMessage_Long (CapHWnd, WM_CAP_SEQUENCE, 0&, 0&)
4.5 图像的记录和回放
闭路监控电视系统采用录像机实现记录和重放功能,可以快速和静止重放所记录的画面,而且具有遥控功能,系统可以对录像机远距离操作。设计回放系统的目的是为了管理人员对以往采集到的历史信息有一个更好的了解,方便管理人员或安全部门查找、取证。
通过它主要可以实现如下几方面的功能:
(1)可以多屏播放,能同时播放同一个画面或是两个不同的画面。
(2)可以同时播放摄像头所采集到的同一个或是不同的两个视频文件。
(3)可以实现全屏及原始图像大小之间的切换。
(4)支持多种媒体格式。
(5)能对所播放的两个视频文件分别进行块放、慢放、快进、快退等的功能。
微信扫描二维码,关注公众号。