关于DirectShow的问题。急请!
如何使捕捉到的数据存到缓冲区并发送出去呢?另外,在捕捉并实时预览时,不知道如何使捕捉一直进行下去,捕捉到的数据存到avi文件里面后,无法播放。谢谢给予解答,捕捉代码如下:
pBuilder->SetOutputFileName(&MEDIASUBTYPE_Avi, L"E:\\Example.avi", &ppf, &pSink);
pBuilder->RenderStream(&PIN_CATEGORY_CAPTURE,&MEDIATYPE_Video,pSrc,NULL,ppf);
pBuilder->RenderStream(&PIN_CATEGORY_PREVIEW,&MEDIATYPE_Video,pSrc,NULL,NULL);
pBuilder->FindInterface(&PIN_CATEGORY_CAPTURE, &MEDIATYPE_Interleaved,pSrc, IID_IAMDroppedFrames, (void **)&pDropped);
const long ONE_SECOND = 10000000;
REFERENCE_TIME rtStart = 5 * ONE_SECOND , rtStop = 10 * ONE_SECOND;
hr = pBuilder->ControlStream(&PIN_CATEGORY_CAPTURE, &MEDIATYPE_Video,pSrc,&rtStart,&rtStop, 0, 0);
上面是捕捉保存到avi文件,和实时播放的代码,请问如何做呢?
问题点数:0、回复次数:0Top




