加入wm asf writer,所有pin都连接正常,但是run失败

tonnyyao 2009-06-19 11:25:11
代码如下:
InitCaptureGraphBuilder();

ListVideoCaptureDevices();
ListAudioCaptureDevices();

pGraph->AddFilter(pVidCap, L"Video Capture");
pGraph->AddFilter(pAudCap, L"Audio Capture");


HRESULT hr;
hr = CoCreateInstance(CLSID_WMAsfWriter,
NULL,
CLSCTX_INPROC_SERVER,
IID_IBaseFilter,
(void**)&pASFWriter);

if (hr)
{
return E_FAIL;
}

hr = pGraph->AddFilter(pASFWriter, L"WM ASF Writer");





IConfigAsfWriter *pConfig = 0;
hr = pASFWriter->QueryInterface(IID_IConfigAsfWriter, (void**)&pConfig);
if (SUCCEEDED(hr))
{
// Configure the ASF Writer filter.
hr = pConfig->SetIndexMode(TRUE);
pConfig->Release();
}


hr = pBuild->SetOutputFileName(
&MEDIASUBTYPE_Asf, // Create a Windows Media file.
L"C:\\VidCap.wmv", // File name.
&pASFWriter, // Receives a pointer to the filter.
NULL); // Receives an IFileSinkFilter interface pointer (optional).


hr = pBuild->RenderStream(
&PIN_CATEGORY_CAPTURE, // Capture pin.
&MEDIATYPE_Video, // Video. Use MEDIATYPE_Audio for audio.
pVidCap, // Pointer to the capture filter.
0,
pASFWriter); // Pointer to the sink filter (ASF Writer).

hr = pBuild->RenderStream(
&PIN_CATEGORY_CAPTURE, // Capture pin.
&MEDIATYPE_Audio, // Video. Use MEDIATYPE_Audio for audio.
pAudCap, // Pointer to the capture filter.
0,
pASFWriter); // Pointer to the sink filter (ASF Writer).
...全文
203 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
tonnyyao 2009-07-02
  • 打赏
  • 举报
回复
谢谢 bottlebox
之前我没有收到你的消息,问题已经解决了,就是你说的那样。今天回来结贴。
瓶盒 2009-06-25
  • 打赏
  • 举报
回复
不会吧,按我给你的短消息修改一下。我改后运行较正常
IFileSinkFilter* pSink = NULL;
pASFWriter->QueryInterface(IID_IFileSinkFilter, (void**) &pSink);
hr=pSink->SetFileName(L"C:\\VidCap.wmv", NULL);
pSink->Release();
/*
hr = pBuild->SetOutputFileName(
&MEDIASUBTYPE_Asf, // Create a Windows Media file.
L"C:\\VidCap.wmv", // File name.
&pASFWriter, // Receives a pointer to the filter.
NULL); // Receives an IFileSinkFilter interface pointer (optional).
*/
tonnyyao 2009-06-25
  • 打赏
  • 举报
回复
还是没有解决,自己顶
c_cacal 2009-06-25
  • 打赏
  • 举报
回复
不会是环境问题吧!
tonnyyao 2009-06-22
  • 打赏
  • 举报
回复
设备枚举和连接都正常的啊,hhygcy说的enumfilter具体怎么看啊,因为我是通过debug跟踪进去,都看到枚举出来了摄像头和声卡,然后绑定,再进行连接的。
wwwllg说的设置wmv的profile,我看了help里面,如果不设定的话,会按照默认配置来执行。在graphedit里面,我用摄像头和声卡,把wm asf writer连接起来就可以录制出wmv文件了。

如果可以,大家留个mail,我把我的代码发给大家来帮我调试运行看看。

谢谢
瓶盒 2009-06-22
  • 打赏
  • 举报
回复
我看下
bottlehe@gmail.com
UDX协议 2009-06-20
  • 打赏
  • 举报
回复
要设置wmv的profile.
hhygcy 2009-06-19
  • 打赏
  • 举报
回复
你的pVidCap和pVudCap都正确吗?
建议你可以enumfilter一下,把pBuild里面的filter都打印出来看看 以及他们的连接情况
alwaystrong 2009-06-19
  • 打赏
  • 举报
回复
如果连接都是好的话,run应该可以成功的,可以调试运行下

2,543

社区成员

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

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