有熟悉directshow的吗?求助
现在有一个棘手的问题请教:我现在用directshow把视频采集下来,我希望的是存到缓冲区,然后通过网络,用ip组播的形式发出去(你觉得可以吗,或者有更好的方式?)现在的问题是,我使用 Sample Grabber filter接收数据,(sdk上说用这个可以复制每个sample):
这样:pBuilder->RenderStream(&PIN_CATEGORY_PREVIEW, &MEDIATYPE_Video,pCapFilter,pGrabberF,NULL);
pGrabber->SetBufferSamples(TRUE);
pControl->Run();
//得到缓冲区大小
long cbBuffer = 0;
pGrabber->GetCurrentBuffer(&cbBuffer, NULL);
char *pBuffer = new char[cbBuffer];
//获取数据
pGrabber->GetCurrentBuffer(&cbBuffer, (long*)pBuffer);
问题:
1 这样得不到数据?!只有在pControl->Run();后加上一个Sleep()函数好像才可以得到数据,否则 pGrabber->GetCurrentBuffer(&cbBuffer, (long*)pBuffer);返回VFW_E_WRONG_STATE 说明没有得到sample
2 我不明白一个pGrabber->GetCurrentBuffer(&cbBuffer, (long*)pBuffer);
怎么就可以得到每一个sample?这个函数不就执行一次?还有缓冲区满了怎么办?
3 怎么将缓冲区的数据拿出来?
谢谢啦,我都看了好几天,网上查了好久,都没有结果,指导一下吧 谢了
...全文
相关推荐
DirectShow
在开发DirectShow应用程序时,开发者需要熟悉COM(Component Object Model)编程,因为DirectShow是基于COM的。
DirectShow9
描述中的“有些程序需要DirectShow9和QuickTime7支持”暗示了DirectShow9与QuickTime7的兼容性问题。
directshow.zip
DirectShow的API被封装在Qt的类或模块中,使得开发者能够通过熟悉的Qt接口来调用底层的DirectShow服务,无需深入理解DirectShow复杂的编程模型。2.
DirectShow.rar
这个压缩包“DirectShow.rar”包含了与DirectShow相关的源码,适合使用Visual Studio 2017(VS2017)集成开发环境,并结合OpenCV 3.4.1图像处理库以及MFC
DirectShow下载安装配置心得.
例如,可以访问[http://hotdl.com/dl/showfile.php?id=640&category=52](http://hotdl.com/dl/showfile.php?


多媒体/流媒体开发
