曾老师要求在动作重现的同时,RGB视频也要与其同步。也就是说,当用户准备好录制动作的时候,RGB视频也要保存下来,直到动作结束。我个人觉得,RGB视频是对三维动作重现一个补充和参考。 ———————————————————————分割线—————————————————————— 在kinect中截获视频流,按帧压缩保存成avi文件。 capGetVideoFormat(m_hWndVideo,&m_InInfo ,sizeof(BITMAPINFO)); capGetVideoFormat(m_hWndVideo,&m_OutInfo,sizeof(BITMAPINFO)); memset(&m_Com,0,sizeof(COMPVARS)); m_Com.cbSize=sizeof(m_Com); //利用代码选择压缩器 m_Com.dwFlags=ICMF_COMPVARS_VALID; m_Com.fccHandler=875967096;//mmioFOURCC('x','v','i','d'); // m_Com.fccHandler = 859189837; m_Com.fccType=ICTYPE_VIDEO; m_Com.lFrame=0; m_Com.fccHandler = mmioFOURCC('m','p','4','2'); // m_Com.fccHandler = mmioFOURCC('d','i','v','x'); m_Com.lKey=15; m_Com.lKeyCount=0; m_Com.lDataRate = 300;//780; m_Com.lQ=10000; m_Com.lpbiOut=(BITMAPINFO*)&m_OutInfo; m_Com.hic=ICOpen(ICTYPE_VIDEO,m_Com.fccHandler,ICMODE_COMPRESS|ICMODE_DECOMPRESS); // m_Com.hic=ICOpen(ICTYPE_VIDEO,mmioFOURCC('x','v','i','d'),ICMODE_COMPRESS); m_Com.cbState = 9048; //利用对话框选择压缩器 // ICCompressorChoose(NULL,ICMF_CHOOSE_ALLCOMPRESSORS ,(LPVOID)&m_InInfo,NULL,&m_Com,"选择压缩类型"); //上面这句函数的意思让用户选择压缩器 ICCompressGetFormat(m_Com.hic,&m_InInfo.bmiHeader,&m_OutInfo.bmiHeader); //开始压缩 int ret = ICCompressBegin(m_Com.hic,(BITMAPINFO*)&m_InInfo,(BITMAPINFO*)&m_OutInfo);
视频压缩编码转换
最新推荐文章于 2024-04-28 17:10:04 发布