社区
GAME,图形处理/多媒体
帖子详情
Delphi 如何访问监控摄像头?
hackergirl
2012-05-11 03:14:21
Delphi 如何访问监控摄像头?
这种摄像头和USB的不同,如果是USB的就很容易,用个第三方控就行了。
但这种DVR的有一个视频采集卡,不能用上述的第三方控访问。
有没有哪个控件可以问呢?
要实现的功能只要能预览摄像头的图像就行了。
...全文
830
13
打赏
收藏
Delphi 如何访问监控摄像头?
Delphi 如何访问监控摄像头? 这种摄像头和USB的不同,如果是USB的就很容易,用个第三方控就行了。 但这种DVR的有一个视频采集卡,不能用上述的第三方控访问。 有没有哪个控件可以问呢? 要实现的功能只要能预览摄像头的图像就行了。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
天涯倦客
2012-05-15
打赏
举报
回复
sdk
另外看卡支持什么
支持 dx的 话可以直接用dx 来读。
卡拆下来可以看上面的芯片组 。
babydog01
2012-05-15
打赏
举报
回复
买之前要问问厂家是否能免费提供SDK开发接口,可先要来开发说明看下,能否满足你的功能要求.....
hackergirl
2012-05-15
打赏
举报
回复
只能用SDK了。谢谢各位。
hackergirl
2012-05-14
打赏
举报
回复
看来得先买回来看看怎样,再做吧.
SVIP_
2012-05-12
打赏
举报
回复
他要的是安防的, 编码卡的, 看厂家而定.
程晨c
2012-05-12
打赏
举报
回复
视频采集卡提供接口函数,但这是访问采集卡及其处理的内存数据,而不是访问摄像头
贝隆
2012-05-11
打赏
举报
回复
这里有个VB6的
mdejtod
2012-05-11
打赏
举报
回复
向厂方要SDK,最有效的办法
babydog01
2012-05-11
打赏
举报
回复
用采集卡时,属专用设备,每个厂家的都不一样。一般情况下,必须得有厂家提供三方控件。
shuihan20e
2012-05-11
打赏
举报
回复
要视频卡的SDK哦
NoMore
2012-05-11
打赏
举报
回复
具体步骤如下:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, ComCtrls;
type
TForm1 = class(TForm)
Panel1: TPanel;
Button1: TButton;
Button2: TButton;
StatusBar1: TStatusBar;
Button3: TButton;
Button4: TButton;
Button5: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
private
hWndC : THandle; //定义捕捉窗句柄
public
{ Public declarations }
end;
var
Form1: TForm1;
const WM_CAP_START = WM_USER;
const WM_CAP_STOP = WM_CAP_START + 68;
const WM_CAP_DRIVER_CONNECT = WM_CAP_START + 10;
const WM_CAP_DRIVER_DISCONNECT = WM_CAP_START + 11;
const WM_CAP_SAVEDIB = WM_CAP_START + 25;
const WM_CAP_GRAB_FRAME = WM_CAP_START + 60;
const WM_CAP_SEQUENCE = WM_CAP_START + 62;
const WM_CAP_FILE_SET_CAPTURE_FILEA = WM_CAP_START + 20;
const WM_CAP_SEQUENCE_NOFILE =WM_CAP_START+ 63;
const WM_CAP_SET_OVERLAY =WM_CAP_START+ 51;
const WM_CAP_SET_PREVIEW =WM_CAP_START+ 50;
const WM_CAP_SET_CALLBACK_VIDEOSTREAM = WM_CAP_START +6;
const WM_CAP_SET_CALLBACK_ERROR=WM_CAP_START +2;
const WM_CAP_SET_CALLBACK_STATUSA= WM_CAP_START +3;
const WM_CAP_SET_CALLBACK_FRAME= WM_CAP_START +5;
const WM_CAP_SET_SCALE=WM_CAP_START+ 53;
const WM_CAP_SET_PREVIEWRATE=WM_CAP_START+ 52;
function capCreateCaptureWindowA(lpszWindowName : PCHAR;
dwStyle : longint;x : integer;y : integer;nWidth : integer;
nHeight : integer;ParentWin : HWND;nId : integer): HWND;
STDCALL EXTERNAL 'AVICAP32.DLL';
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
//使用Tpanel控件来创建捕捉窗口
hWndC: =CapCreateCaptureWindowA ('My Own Capture Window' ,
WS_CHILD or WS_VISIBLE, //窗口样式
Panel1.Left,//X坐标
Panel1.Top,//Y坐标
panel1.Width, //窗口宽
panel1.Height, //窗口高
Form1.Handle, //窗口句柄
0); //一般为0
if hWndC <> 0 then
begin
SendMessage(hWndC, WM_CAP_SET_CALLBACK_VIDEOSTREAM, 0, 0);
//捕捉一个视频流
SendMessage(hWndC, WM_CAP_SET_CALLBACK_ERROR, 0, 0); //得到一个设备错误
SendMessage(hWndC, WM_CAP_SET_CALLBACK_STATUSA, 0, 0); //得到一个设备状态
SendMessage(hWndC, WM_CAP_DRIVER_CONNECT, 0, 0);
//将一个捕捉窗口与一个设备驱动相关联
SendMessage(hWndC, WM_CAP_SET_SCALE, 1, 0);
SendMessage(hWndC, WM_CAP_SET_PREVIEWRATE, 66, 0);
SendMessage(hWndC, WM_CAP_SET_OVERLAY, 1, 0);
SendMessage(hWndC, WM_CAP_SET_PREVIEW, 1, 0);
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
if hWndC <> 0 then
begin
SendMessage(hWndC, WM_CAP_DRIVER_DISCONNECT, 0, 0); //将捕捉窗同驱动器断开
hWndC := 0;
end;
close;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if hWndC <> 0 then
begin
SendMessage(hWndC, WM_CAP_DRIVER_DISCONNECT, 0, 0); //将捕捉窗同驱动器断开
end;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
if hWndC <> 0 then
begin
SendMessage(hWndC,WM_CAP_FILE_SET_CAPTURE_FILEA,0,Longint(pchar(‘d:\\test.avi‘)));// 录成AVI
SendMessage(hWndC, WM_CAP_SEQUENCE, 0, 0);
end;
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
if hWndC <> 0 then
begin
SendMessage(hWndC, WM_CAP_STOP, 0, 0);
end;
end;
procedure TForm1.Button5Click(Sender: TObject);
begin
if hWndC <> 0 then
begin
SendMessage(hWndC,WM_CAP_SAVEDIB,0,longint(pchar(‘D:\\test.bmp‘)));//截图
end;
end;
end.
NoMore
2012-05-11
打赏
举报
回复
开发视频捕捉程序主要分以下四个步骤:
(1) 创建一个AVICap类的捕捉窗口
在进行视频捕捉之前必需要先创建一个“捕捉窗口”,并应以此为基础进行所有的捕捉及设置操作。“捕捉窗口”可用AVICap窗口类的“CapCreateCaptureWindow”函数来创建,其窗口风格可设置为WSCHILD和WS_VISIBLE参数,例如:
hWndC: =CapCreateCaptureWindowA ('My Own Capture Window' ,
WS_CHILD or WS_VISIBLE, //窗口样式
Panel1.Left, //X坐标
Panel1.Top, //Y坐标
panel1.Width, //窗口宽
panel1.Height, //窗口高
Form1.Handle, //窗口句柄
0); //一般为0
“捕捉窗口”类似于一个标准组件,其主要功能为:
1.将视频流和音频流数字化, 然后存储在硬盘或其他存储介质上,实现录象功能;
2.动态的在一个捕获窗口与一个捕获设备之间连接或断接;
3.以Overlay或Preview模式对输入的视频流进行实时显示; Overlay该模式为部分采集设备所具有的能力,可以通过CAPDRIVERVAPS结构中的fHasOverlay域来判断设备是否具备该模式。在Overlay模式下所捕获的视频数据的显示不需要占用系统资源,显示速度快,同时不影响系统的其他任务。该模式所支持的视频采集格式为YUV格式,通过capOverlay宏完成;在Preview模式下显示要占用CPU资源,视频砧由系统调用GDI函数在捕获窗口中显示。Previews模式显示速度慢,所支持的视频采集格式为RGB格式,通过capPreview宏实现。所以一般采用overlay模式显示的图像要比preview流畅;
4.实现动态视频流截图,一帧一帧地获得视频数据。
(2) 使捕捉窗口与其设备驱动程序相关联
单独定义的捕捉窗是不能工作的,它须与一个设备相关联才能取得视频信号,通过如下代码就可以使捕捉窗口与其设备驱动程序相关联:
SendMessage(hWndC, WM_CAP_DRIVER_CONNECT, 0, 0);
另外使用函数CapDriverConnect也可实现捕捉窗口与其设备驱动程序相关联。例如:
CapDriver Connect (hWndC, 0);
(3) 基本的捕获设置
基本的捕获设置包括:设置捕获速度(每秒捕获多少帧),是否同时捕获声频,捕获缓冲,允许最大丢失多少帧,是否使用DOS内存,以及用键盘的哪个键或鼠标的哪个键来终止捕获等等。这些基本的设置都可以使用TcaptureParms结构来描述,你可以使用capCaptureGetSetup函数来得到当前的设置,然后改变此结构的成员变量,再使用capCaptureSetSetup函数设置新的设置,之后还可以用CapPreviewScale、CapPreviewRate设置预览的比例与速度,也可以直接使用设备的默认值。
(4)打开预览
利用函数CapOverlay可选择是否采用叠加模式预览,以使系统资源占用小,视频显示速度加快。然后用CapPreview启动预览功能,这时就可以在屏幕上看到来自摄像机的图像了。
通过以上四步就可以建立一个基本的视频捕捉程序,但假如想自己处理从设备捕捉到的视频数据,则要使用捕捉窗回调函数来处理,比如一帧一帧地获得视频数据或以流的方式获得视频数据等。
NoMore
2012-05-11
打赏
举报
回复
VFW主要由6个模块组成,下面做一下简单的说明:
AVICAP.DLL包含执行视频捕捉的函数,它给AVI文件的I/O处理和视频、音频设备驱动程序提供一个高级接口。
MSVIDEO.DLL包含一套非凡的DrawDib函数,用来处理屏幕上的视频操作。
MCIAVI.DRV包括对VFW的MCI命令解释器的驱动程序。
AVIFILE.DLL包含由标准多媒体I/O(mmio)函数提供的更高的命令,用来访问.AVI文件。
ICM压缩治理器,用于治理的视频压缩/解压缩的编译码器(Codec)。
ACM音频压缩治理器,提供与ICM相似的服务,适用于波形音频。
delphi
7调用摄像头
该模块能够简单便捷的搜索并连接电脑的摄像头,能录制视频不卡顿并抓图,画面清晰;适用于
delphi
开发,使用简单,内置demo;非常简单可靠;
Delphi
连接海康威视摄像头
delphi
7通过调用海康威视的SDK,实现对海康威视数字摄像头进行浏览图像,图像抓拍
摄像头视频采集监控系统
DELPHI
程序
摄像头视频采集
DELPHI
程序,好东东。请顶起哟~
海康威视网络摄像头
Delphi
调用Demo
海康威视网络摄像头系列调用demo
delphi
7 摄像头抓拍,回放
delphi
7 摄像头抓拍,回放,录像,使用
delphi
7,大家可以下载试试
GAME,图形处理/多媒体
1,185
社区成员
14,330
社区内容
发帖
与我相关
我的任务
GAME,图形处理/多媒体
Delphi GAME,图形处理/多媒体
复制链接
扫一扫
分享
社区描述
Delphi GAME,图形处理/多媒体
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章