用directshow我已经实现了播放,但是我怎样获取数据流,用来进行网络传输.急!急!急!

fengge888 2003-08-02 03:36:47
从摄像头上采集的,然后直接播放.现在我想获取视频的数据.如何获取.
...全文
42 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
singleVC 2003-08-12
  • 打赏
  • 举报
回复
gz
DarthVader 2003-08-04
  • 打赏
  • 举报
回复
Very interested,up!
sun_is_shining 2003-08-03
  • 打赏
  • 举报
回复
up
fengge888 2003-08-02
  • 打赏
  • 举报
回复
谢谢firebolt2002(霹雳) 你真是个大好人 真的很感谢!!!
firebolt2002 2003-08-02
  • 打赏
  • 举报
回复
别急,晚上我帮你,很简单的
fengge888 2003-08-02
  • 打赏
  • 举报
回复
up
fengge888 2003-08-02
  • 打赏
  • 举报
回复
代码如下

IGraphBuilder *pGraph;
ICaptureGraphBuilder2 *pBuilder;
IBaseFilter *ppf;
IFileSinkFilter *pSink;


CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC,IID_IGraphBuilder, (void **)&pGraph);

// Create the Capture Graph Builder.
CoCreateInstance(CLSID_CaptureGraphBuilder2, NULL, CLSCTX_INPROC, IID_ICaptureGraphBuilder2, (void **)&pBuilder);


// Associate the graph with the builder.
pBuilder->SetFiltergraph(pGraph);
// Create the system device enumerator.
ICreateDevEnum *pDevEnum = NULL;
CoCreateInstance(CLSID_SystemDeviceEnum,NULL,CLSCTX_INPROC,IID_ICreateDevEnum, (void **)&pDevEnum);

// Create an enumerator for video capture devices.
IEnumMoniker *pClassEnum = NULL;
pDevEnum->CreateClassEnumerator(CLSID_VideoInputDeviceCategory, &pClassEnum, 0);

ULONG cFetched;
IMoniker *pMoniker = NULL;
IBaseFilter *pSrc = NULL;
if (pClassEnum->Next(1, &pMoniker, &cFetched) == S_OK)
{
// Bind the first moniker to a filter object.
pMoniker->BindToObject(0, 0, IID_IBaseFilter, (void**)&pSrc);
pMoniker->Release();
}

pGraph->AddFilter(pSrc, L"Video Capture");

pClassEnum->Release();
pDevEnum->Release();

pBuilder->SetOutputFileName(&MEDIASUBTYPE_Avi, L"C:\\Example.avi", &ppf, &pSink);

pBuilder->RenderStream(
&PIN_CATEGORY_PREVIEW, // Pin category PIN_CATEGORY_CAPTURE
&MEDIATYPE_Video, // Media type
pSrc, // Capture filter
NULL, // Compression filter (optional)
NULL // Multiplexer or renderer filter
);

pBuilder->RenderStream(
&PIN_CATEGORY_CAPTURE, // Pin category
&MEDIATYPE_Video, // Media type
pSrc, // Capture filter
NULL, // Compression filter (optional)
ppf // Multiplexer or renderer filter
);
pSrc->Release();
IVideoWindow *pivw;
pGraph->QueryInterface(IID_IVideoWindow, (void **)&pivw);
pivw->put_Owner((OAHWND)m_hWnd);
pivw->put_WindowStyle(WS_CHILD | WS_CLIPCHILDREN);
CRect rectClient;
GetClientRect(rectClient);
pivw->SetWindowPosition(0, 0, 320, 240);

pivw->put_Visible(OATRUE);
pMoniker->Release();
IMediaControl *pimc;
pGraph->QueryInterface(IID_IMediaControl, (void **)&pimc);
pimc->Run();

2,543

社区成员

发帖
与我相关
我的任务
社区描述
专题开发/技术/项目 多媒体/流媒体开发
社区管理员
  • 多媒体/流媒体开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧