| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 827 人关注过本帖
标题:AVI视频存储
只看楼主 加入收藏
tanchaoacl
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2010-8-13
结帖率:0
收藏
 问题点数:0 回复次数:0 
AVI视频存储
我现在在用视频采集卡做视频存储的工作,点击“保存”按钮对摄像头采集的视频进行算法处理后以AVI的格式存储到硬盘中,保存按钮函数的内容是:
void CShowStreamDlg::OnBaocun()  
{  
CString filename;
CFileDialog FileDlg(FALSE,_T("avi"));
if(FileDlg.DoModal()==IDOK)
{
ilename=FileDlg.GetPathName();
nFrames=0;
m_bIsbaocun=true;
}

}
下面是回调函数里的内容,但是保存成AVI视频文件时,文件占存储空间,里面有视频数据,但是打不开,用暴风影音打开提示说文件头不完整,不是标准的视频文件。然后我用视频修复软件对AVI视频进行修补,能打开视频,但是只能很模糊的看见里面的画面。
难道视频存储必须进行编码后才能存储,直接将视频信息流往AVI文件里一帧一帧的写不行吗?
初学者问题比较多,请老师们见谅,请多多指点!谢谢了!
if(m_bIsbaocun==true)
{
if(nFrames==0)
{
AVIFileInit();
AVIFileOpen(&pfile,filename,OF_WRITE|OF_CREATE,NULL);
memset(&strhdr,0,sizeof(strhdr));
strhdr.fccType=streamtypeVIDEO;
strhdr.fccHandler=0;
strhdr.dwScale=1;
strhdr.dwRate=25;
strhdr.dwSuggestedBufferSize=pInfo->bmiHeader.biSizeImage;
SetRect(&strhdr.rcFrame,0,0,pInfo->bmiHeader.biWidth,pInfo->bmiHeader.biHeight);
AVIFileCreateStream(pfile,&ps,&strhdr);
}
AVIStreamSetFormat(ps,nFrames,&(OutHeader),sizeof(OutHeader));
AVIStreamWrite(ps,nFrames,1,(LPBYTE)GrayImage,OutHeader.biSizeImage,AVIIF_KEYFRAME,NULL,NULL);
nFrames++;
}
if(m_bIstingzhibaocun==true)
{
AVIStreamClose(ps);
if(pfile!=NULL)
AVIFileExit();
MessageBox("保存成功");
m_bIsbaocun=false;
m_bIstingzhibaocun=false;
有懂视频存储的老师们请多多给点建议。谢谢了!
搜索更多相关主题的帖子: 视频 AVI 
2010-08-25 16:56
快速回复:AVI视频存储
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018654 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved