关于:visual c++视频技术方案宝典
发表在C语言图书答疑 2010-08-20
是否精华
版块置顶:
   我现在在看visual c++视频技术方案宝典这本书,第2章2.2.6视频录像设计方案是通过VFW的回调函数录像,但是程序运行之后点击录像,马上弹出“压缩失败”的对话框,这个是怎么回事?
   还有我能不能不用压缩直接存储视频呢?我就是想不压缩直接存储视频,您能不能给我提供点建议
if (ICCompress(pDlg->m_Com.hic, 0, &pDlg->m_OutInfo.bmiHeader, buffer, &pDlg->m_InInfo.bmiHeader, (unsigned char *)lpVHdr->lpData, &dwCkID, &dwCompFlags, pDlg->m_Frame++,0, dwQuality, NULL, NULL) == ICERR_OK)这个函数我不懂什么意思?

   LRESULT WINAPI EncodeCallback(HWND hWnd, LPVIDEOHDR lpVHdr)
{
CVideoEncodeDlg* pDlg = (CVideoEncodeDlg*)AfxGetMainWnd();
if ((pDlg->m_Captured) && (lpVHdr->dwFlags&VHDR_DONE))
{
char* buffer = new char [lpVHdr->dwBytesUsed+1];
memset(buffer,0,lpVHdr->dwBytesUsed+1);
DWORD dwCkID         ; 
DWORD dwCompFlags    ; 
DWORD dwQuality = 100; 

//视频压缩
if (ICCompress(pDlg->m_Com.hic, 0, &pDlg->m_OutInfo.bmiHeader, buffer, &pDlg->m_InInfo.bmiHeader, 
(unsigned char *)lpVHdr->lpData, &dwCkID, &dwCompFlags, pDlg->m_Frame++,0, dwQuality, NULL, NULL) == ICERR_OK)
{
AVIStreamSetFormat(pDlg->ps,pDlg->m_Frame,&pDlg->m_OutInfo,sizeof(pDlg->m_OutInfo));
AVIStreamWrite(pDlg->ps,pDlg->m_Frame ,1, (LPBYTE)  buffer,pDlg->m_OutInfo.bmiHeader.biSizeImage ,AVIIF_KEYFRAME,
NULL,NULL);
}
delete []buffer;
}
  return 1;
}
分享到:
精彩评论 1
stabber
学分:0 LV1
2010-08-20
沙发
可以不进行压缩,直接将图像数据写入视频流中,压缩的代码如果你不明白,可以参考本书5.3.2节的内容进行学习
首页上一页 1 下一页尾页 1 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照