摄像头录像怎才能后台运行

zhanghelpsgz 2009-09-06 08:21:19
一段开启摄像头的代码(BCB)- -
虽然简单,但还算实用,大家将就着用吧,
至于视频录像以及网络传输的大家慢慢改吧, 用来做木马还算不错....^_&
//---------------------------------------------------------------------------
// author: ZwelL
// http://www.donews.net/zwell/
//---------------------------------------------------------------------------
#include
#pragma hdrstop
#include "Unit1.h"
#include "vfw.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
HWND hWndC;
CAPDRIVERCAPS CapDrvCaps;
CAPSTATUS CapStatus;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormShow(TObject *Sender)
{
char szDeviceName[80];
char szDeviceVersion[80];
for (int wIndex = 0; wIndex < 10; wIndex++)
{
if (capGetDriverDescription (wIndex, szDeviceName,
sizeof (szDeviceName), szDeviceVersion,
sizeof (szDeviceVersion)))
{
ComboBox1->Items->Add(szDeviceName);
}
}

if(ComboBox1->Items->Count>0)
ComboBox1->ItemIndex=0;
else
{
ShowMessage("没有找到视频软件");
Close();
}
Button1Click(NULL);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
hWndC = capCreateCaptureWindow (
(LPSTR) "My Capture Window", // window name if pop-up
WS_CHILD | WS_VISIBLE, // window style
0, 0, 160, 120, // window position and dimensions
(HWND)Panel2->Handle,//(HWND)Application->Handle,//(HWND) hwndParent,
ComboBox1->ItemIndex+1);//(int) nID /* child ID */);
//连接设备:
capDriverConnect(hWndC,0);
capPreviewRate(hWndC, 50); // rate, in milliseconds
capPreview(hWndC, TRUE); // starts preview
//获取视频驱动相关性能
capDriverGetCaps(hWndC, &CapDrvCaps, sizeof (CAPDRIVERCAPS));
//获取捕获窗口状态
capGetStatus(hWndC, &CapStatus, sizeof (CAPSTATUS));
SetWindowPos(hWndC, NULL,
0,
0,
CapStatus.uiImageWidth,
CapStatus.uiImageHeight, SWP_NOZORDER | SWP_NOMOVE);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
if(hWndC)
{
capPreview(hWndC, FALSE); // starts preview
capDriverDisconnect (hWndC);
}
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)
{
// Video format dialog box.
if (CapDrvCaps.fHasDlgVideoFormat)
{
capDlgVideoFormat(hWndC);
// Are there new image dimensions?
capGetStatus(hWndC, &CapStatus, sizeof (CAPSTATUS));
SetWindowPos(hWndC, NULL,
0,
0,
CapStatus.uiImageWidth,
CapStatus.uiImageHeight, SWP_NOZORDER | SWP_NOMOVE);
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
// Video source dialog box.
if (CapDrvCaps.fHasDlgVideoSource)
capDlgVideoSource(hWndC);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button4Click(TObject *Sender)
{
//设置相关参数
CAPTUREPARMS CaptureParms;
float FramesPerSec = 30.0;
capCaptureGetSetup(hWndC, &CaptureParms, sizeof(CAPTUREPARMS));
CaptureParms.dwRequestMicroSecPerFrame = (DWORD) (1.0e6 /
FramesPerSec);
capCaptureSetSetup(hWndC, &CaptureParms, sizeof (CAPTUREPARMS));
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button5Click(TObject *Sender)
{
//设置预览时的比例
capPreviewScale(hWndC, 1);
//设置预览时的帧频率
capPreviewRate(hWndC,66);
//如果要捕获视频流,则要使用函数指定不生成文件。否则将会自动生成AVI文件
capCaptureSequenceNoFile(hWndC);
//指定是否使用叠加模式,使用为1,否则为0
capOverlay(hWndC, 1);

//Video display dialog box.
if (CapDrvCaps.fHasDlgVideoDisplay)
capDlgVideoDisplay(hWndC);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button6Click(TObject *Sender)
{
if(SaveDialog2->Execute())
capFileSaveDIB( hWndC, (SaveDialog2->FileName+".bmp").c_str() ); //截取当前帧
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button7Click(TObject *Sender)
{
if(Button7->Caption == "开始捕获")
{
if(SaveDialog1->Execute())
{
// Set up the capture operation.
capCaptureSequence(hWndC);
// Capture.
capFileSaveAs(hWndC, (SaveDialog1->FileName+".avi").c_str());//视频
}
Button7->Caption="停止捕获";
}
else
{
Button7->Caption="开始捕获";
capCaptureStop(hWndC);
}
}
//---------------------------------------------------------------------------
来自
http://jzchddj.bokee.com/2717209.html


上面这个例子录像时,窗口变为活动(当前)时录像正确,变为非活动(后台)时录像是切换窗口前的图像,怎么才能让它继续最新的画面. 谢谢!
...全文
3470 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
anjaiwook 2012-04-18
  • 打赏
  • 举报
回复
请问一下,我想在截获的图片上加入当前时间水印要怎么做呢???
chmdcr 2009-09-22
  • 打赏
  • 举报
回复
mark
「已注销」 2009-09-21
  • 打赏
  • 举报
回复
呵呵, 看不懂
blackiron_sh 2009-09-20
  • 打赏
  • 举报
回复
最近在用DirectShow做这方面 的东西
heisedeyongheng 2009-09-20
  • 打赏
  • 举报
回复
用directshow,我就刚用这个做了个录屏和录像的软件。把程序隐藏就行了。
gyc198215 2009-09-19
  • 打赏
  • 举报
回复
学习
nbzip 2009-09-07
  • 打赏
  • 举报
回复
做成服务程序,把得到的数据,在私下做成图片文件传送.

不要用他的显示或录像啊.(可能他那边一显示就直接跳出一个界面播放,那还偷什么看什么啊.)

呵呵,我也推一个OPENCV吧,这里面也有视频头的程序.
我不懂电脑 2009-09-07
  • 打赏
  • 举报
回复
现在都是用directx了或opengl
laowang2 2009-09-07
  • 打赏
  • 举报
回复
vfw?不了解,帮顶了,可以考虑directshow。
软件介绍 《MiniVCap》——强大、稳定的摄像头监控录像软件。 综述:MiniVCap 是一款使用普通电脑摄像头做监控录像的软件,可用做店铺的监控录像。支持开机自动录像、后台隐身录像、同时多个摄像头录像,循环录像(磁盘空间循环利用),支持普通和高清两种画质模式,支持同步录音、人脸识别、邮件报警等。她空间占用少、资源消耗低、可无限期连续监控,是最好用的家用USB摄像头监控录像软件。 一、软件主要用途: * 视频录制:用普通USB摄像头录制各种有意思的视频,例如生活片段、宠物录像。 * 视频监控:打造自己的迷你视频监控系统,可用于店铺监控录像、家用安全防盗、工作实验录像等。 二、视频监控特征: * 循环录像模式:空间将满时(少于0.75G),自动删除部分最旧的视频文件。 * 开机自动录像:可实现开机登录系统后自动启动录像(包括隐身录像)。 * 多路视频监控:可开机后自动启动多个摄像头监控(启动多个程序实例)。 * 支持后台运行:可最小化为桌面右下角任务栏小图标,也可完全隐藏。 * 人脸识别报警:人脸识别拍照,并发送图片到邮箱,远程报警灵敏度高且误报率低。 * 长期连续监控:支持循环录像、磁盘写缓存、开机自动录像等功能,并采用定时重启电脑的方法(例如每隔一天),使得无限期的、稳定的监控得以实现。 * 定时重启电脑:定时重启、定时开机、定时关机推荐用《MiniShutoff》。 三、普通录像特征: * 占用空间较小:压缩率大,录制一整天只需 1-5G 左右的硬盘空间。 * 同步录音功能:可音视频同步录,支持各种音源例如麦克风等。 * 日期时间显示:可在画面上打印日期时间、镜头名。 * 硬盘缓存机制:采用硬盘写缓存机制,保证了硬盘的效率。 * 其它常见功能:摄像头拍照功能、低画质和高清画质两种模式、支持多个摄像头(通过打开多个程序实例)、自动记忆上次录像格式设置、可调节亮度对比度等。 * 延长拍摄距离:含放大电路的usb延长线,常见规格有10、15米,usb延长器的常见规格有50、100米。请到淘宝搜“延长线 10米”、“延长器 50米”。
综述:MiniVCap 是一款使用普通电脑摄像头做监控录像的软件,可用做店铺的监控录像。支持开机自动录像、后台隐身录像、同时多个摄像头录像,循环录像(磁盘空间循环利用),支持普通和高清两种画质模式,支持同步录音、人脸识别、邮件报警等。她空间占用少、资源消耗低、可无限期连续监控,是最好用的家用USB摄像头监控录像软件,系统兼容 Windows 2000/XP/Vista/Win7。 一、软件主要用途 * 视频录制:用普通USB摄像头录制各种有意思的视频,例如生活片段、宠物录像。 * 视频监控:打造自己的迷你视频监控系统,可用于店铺监控录像、家用安全防盗、工作实验录像等。 二、视频监控特征 * 循环录像模式:空间将满时(少于0.75G),自动删除部分最旧的视频文件。 * 开机自动录像:可实现开机登录系统后自动启动录像(包括隐身录像)。 * 多路视频监控:可开机后自动启动多个摄像头监控(启动多个程序实例)。 * 支持后台运行:可最小化为桌面右下角任务栏小图标,也可完全隐藏。 * 人脸识别报警:人脸识别拍照,并发送图片到邮箱,远程报警灵敏度高且误报率低。 * 长期连续监控:支持循环录像、磁盘写缓存、开机自动录像等功能,并采用定时重启电脑的方法(例如每隔一天),使得无限期的、稳定的监控得以实现。 * 定时重启电脑:定时重启、定时开机、定时关机推荐用《MiniShutoff》。 三、普通录像特征 * 占用空间较小:压缩率大,录制一整天只需 1-5G 左右的硬盘空间。 * 同步录音功能:可音视频同步录,支持各种音源例如麦克风等。 * 日期时间显示:可在画面上打印日期时间、镜头名。 * 硬盘缓存机制:采用硬盘写缓存机制,保证了硬盘的效率。 * 其它常见功能:摄像头拍照功能、低画质和高清画质两种模式、支持多个摄像头(通过打开多个程序实例)、自动记忆上次录像格式设置、可调节亮度对比度等。 * 延长拍摄距离:含放大电路的usb延长线,常见规格有10、15米,usb延长器的常见规格有50、100米。请到淘宝搜“延长线 10米”、“延长器 50米”。
软件介绍:   TP-LINK是国内安防设备生产内之一,有一定市场占有率,本软件为TPLINK专用摄像头监控软件,最多支持64画面同时预览,可根据网络情况选择流畅、高清视频显示。  支持录像截图及录像保存,支持硬件解码。  录像导出,导出指定的日期的录像到指定位置。  路径设置,当你截图或录像后,在所选路径下自动按操作日期生成文件夹,文件夹下包括:  Picture:保存抓图文件  Video:保存录制文件  在该路径下还会自动创建“Cloud“文件夹,云录像下载后将出现在这里:  Cloud:下载云录像文件  使用方法:  先安装并连接了摄像头,然后运行TP-LINK安防系统,注册一个帐户,登陆事添加摄像头即可(添加的时候需要对摄像头分配ip地址和密码)。  ip注意别跟电脑ip冲突了。  添加好摄像头后,我们需要设置存放录像的分区,一般放在电脑硬盘比较大的分区里,这样才能保证视频录制时间更长。  海康威视视频格式转换工具4.0.0真免费版  海康威视官方自己出的视频格式转换器,只要转换监控视频文件为mp4文件,转换后就可以在手机上或者其他地方播放了,它支持批量转换,可以一次性转换大量的视频文件,当然功能不止如此。  还支持将*.mp4,*.flv,*.avi,*.3gp,*.mp3等文件转换为MP4或者aac。  主要功能:  支持CPU状态显示;  支持转换参数设置;  支持转换视频参数复制;  支持设置输出文件路径;  支持批量视频添加;  支持视频预览。  如果你在使用海康威视的视频文件,想要转换为通用格式就可以使用本工具了,另外其他的视频文件只要满足它的格式要求也是可以轻松转换的,对于一款免费的视频转换器来说,海康威视还是值得安装的。

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧