我研究了好久directshow,终于在MFC对话框显示了视频画面,现在很想知道要怎么把这些视频画面保存到指定的文件里????怎么保存起来。
求救求救,在线等,急急急

解决方案 »

  1.   

    DirectShow教程自己看第四章节
      

  2.   

    IGraphBuilder *pGraph;ICaptureGraphBuilder2 *pBuild;IBaseFilter* pSrc;IMediaControl *m_pMediaControl;IBaseFilter *vedioWriter;HRESULT hr;CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC, IID_IGraphBuilder, (void**)&pGraph);hr = CoCreateInstance(CLSID_CaptureGraphBuilder2, NULL,CLSCTX_INPROC_SERVER, IID_ICaptureGraphBuilder2, (void**)&pBuild);pBuild->SetFiltergraph(pGraph);pGraph->QueryInterface(IID_IVideoWindow, (void **)&m_pVidWin);ICreateDevEnum *pDevEnum=NULL;IEnumMoniker *pClsEnum=NULL;//创建设备枚举COM对象CoCreateInstance(CLSID_SystemDeviceEnum,NULL,CLSCTX_INPROC,IID_ICreateDevEnum,(void **)&pDevEnum);//创建视频采集设备枚举COM对象pDevEnum->CreateClassEnumerator(CLSID_VideoInputDeviceCategory,&pClsEnum,0);if(pClsEnum == NULL){MessageBox(_T("Sorry, you have no video capture hardware.\r\n\r\nVideo capture will not function properly."));//如果没有设备,返回return FALSE;}IMoniker *pMoniker = NULL;if(pClsEnum->Next(1,&pMoniker,NULL)==S_OK){//调用imoniker::bindtoobject建立一个和选择的device联合的filterpMoniker->BindToObject(0,0,IID_IBaseFilter,(void **)&pSrc);pMoniker->Release();}//将设备添加到管理器graphhr = pGraph->AddFilter(pSrc, L"Video Capture");hr=pBuild->RenderStream(&PIN_CATEGORY_CAPTURE,&MEDIATYPE_Video,pSrc,NULL,NULL);//设定视频窗口为主窗口的一个子窗口m_pVidWin->put_Owner((OAHWND)m_hWnd);m_pVidWin->put_WindowStyle(WS_CHILD | WS_CLIPSIBLINGS | WS_CLIPCHILDREN);CRect rc;GetDlgItem(IDC_BUTTON2)->GetWindowRect(rc);ScreenToClient(rc);//设定视频窗口m_pVidWin->SetWindowPosition(rc.left, rc.top, rc.Width(), rc.Height());hr=pGraph->QueryInterface(IID_IMediaControl, (void **)&m_pMediaControl);hr=m_pMediaControl->Run(); //运行Filter Graphif(FAILED(hr)){MessageBox(_T("加载运行失败!"));return FALSE;}大神求救啊,我已经做到打开视频,并且也有画面了,但是我愣是不知道要在哪里保存录制的视频??或者说怎么开始录制视频,,它根本没开始录制,也没存,,,只是有画面了。
      

  3.   

    http://read.pudn.com/downloads155/ebook/688263/win32/CameraDemo/CameraDemo/EricCamera.cpp__.htm参考下这里,不知道行不行,然后下面红色的是路径
    //14,创建ASF多路(复用)器,并加入到过滤器图中   
        CHK(m_pCaptureGraphBuilder->SetOutputFileName( &MEDIASUBTYPE_Asf,strFileName, &pASFMultiplexer, &pFileSinkFilter )); 
      

  4.   

    如果做毕业设计的话强烈建议楼主改用opcv的库,这样只需研究算法。