我想用DirectShow播放视频流,这个流是从网络上传输过来的,解压好的Sample形式。不知道怎么播放
我自己写好了一个Source Filter,但是不知道怎么播放,如果播放是在Renderer Filter里的,那播放操作具体是怎么实现的?希望路过的高手给段代码看看,要播放视频流的,不是播放本地文件!
我自己写好了一个Source Filter,但是不知道怎么播放,如果播放是在Renderer Filter里的,那播放操作具体是怎么实现的?希望路过的高手给段代码看看,要播放视频流的,不是播放本地文件!
选择合适的解码器和render,就可以播放了
最好给段代码看看
2。取得该输出pin,然后render它,后面智能连接,不用你处理
2。里面的socket工作正常
3。格式设置对
4。机器安装了对应格式的解码器
{ 0x504ff8e4, 0xdd79, 0x49fc, { 0xb4, 0x18, 0x1, 0x62, 0x34, 0x30, 0xa4, 0xd3 } };
CSFilter *pSour=new CSFilter(_T("Source"),NULL,gd); CoCreateInstance(CLSID_FilterGraph,NULL,CLSCTX_INPROC_SERVER,IID_IGraphBuilder,(void**)&pGraph);
pGraph->AddFilter((IBaseFilter*)pSour,L"Source");
pGraph->QueryInterface(IID_IMediaControl,(void**)&pControl);
pGraph->QueryInterface(IID_IMediaEvent,(void**)&pEvent);
pGraph->QueryInterface(IID_IVideoWindow,(void**)&pWnd); CSPin *pin=(CSPin*)(pSour->GetPin(0));
pGraph->Render(pin);
pControl->Run(); long code;
pEvent->WaitForCompletion(15,&code);
我是这样播放的,不知道有没有错,还有 那个GD也没注册过
2。应该每步返回HRESULT,判断是否成功
3。那个CSPin 是什么,你封装的pin类???
4。有解码器没?