如何实现100秒预录制功能

liangyufei 2004-06-08 04:31:10
我在做一个采用康银h264卡作为采集源的监控系统,有一个需求为报警前100秒预录制功能.我考虑如果把100秒数据全部放在内存中的话,内存占用实在太大(最多有24路),各位大虾有没有好办法解决此问题.多谢了.
...全文
171 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
liangyufei 2004-06-12
  • 打赏
  • 举报
回复
多谢楼上的.对于100s预录制的算法,不知大家有何好的建议.
waterflier 2004-06-12
  • 打赏
  • 举报
回复
录制2个100秒,如果这个100秒没什么事发生 就把上一个丢了.等发生事的时候自动完成读取到前100秒的功能.当然是要放在营盘上了
liangyufei 2004-06-11
  • 打赏
  • 举报
回复
没人要分吗?
taianmonkey 2004-06-11
  • 打赏
  • 举报
回复
你是使用硬解压实现,
只能存放到硬盘上!
可以根据你存的文件的格式,创建一个大的虚拟文件实现!

创建大文件的代码如下:

void CreateHugeFile(LPCTSTR strFileName, long nFileLen)
{
HANDLE hFile;
hFile = CreateFile(
strFileName,//"C:\\Temp\\Test.dat",
GENERIC_WRITE, //必须有此权限
0,
NULL,
CREATE_NEW,
FILE_ATTRIBUTE_NORMAL,
NULL);

if( hFile == INVALID_HANDLE_VALUE )
{
//处理出错信息
//获得信息
LPVOID lpMsgBuf; //Windows will allocate
::FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,0,
GetLastError(),MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), //默认语言
(LPTSTR)&lpMsgBuf, 0, NULL );

//显示
::MessageBox(0, (LPCTSTR)lpMsgBuf, _T("GetLastError"), MB_OK|MB_ICONINFORMATION );
//lpMsgBuf中是你要的错误提示.

//释放内存
::LocalFree( lpMsgBuf );

return;
}


DWORD dwPtr = SetFilePointer(
hFile,
nFileLen,//0x02800000, // 200 M
NULL,
FILE_BEGIN);
if (dwPtr == 0xFFFFFFFF)
{
// 处理出错信息
//获得信息
LPVOID lpMsgBuf; //Windows will allocate
::FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,0,
GetLastError(),MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), //默认语言
(LPTSTR)&lpMsgBuf, 0, NULL );

//显示
::MessageBox(0, (LPCTSTR)lpMsgBuf, _T("GetLastError"), MB_OK|MB_ICONINFORMATION );
//lpMsgBuf中是你要的错误提示.

//释放内存
::LocalFree( lpMsgBuf );

return;

} // End of error handler


SetEndOfFile(hFile);
CloseHandle(hFile);
}
快乐鹦鹉 2004-06-10
  • 打赏
  • 举报
回复
那就只能向硬盘中放了。
liangyufei 2004-06-10
  • 打赏
  • 举报
回复
真的没有人知道吗.自己再顶一下.
liangyufei 2004-06-10
  • 打赏
  • 举报
回复
如何做,能否给个思路.
liangyufei 2004-06-09
  • 打赏
  • 举报
回复
没有人知道吗?自己先顶一下.

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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