获取EVR的错误MF_E_STREAMSINKS_FIXED - Windows Media Foundation

时间:2017-03-08 05:57:18

标签: c++ video ms-media-foundation

我正在使用以下链接实施媒体基础的示例 https://msdn.microsoft.com/en-us/library/windows/desktop/ms701605(v=vs.85).aspx

我对此示例所做的更改是我通过调用添加到Streams。

CreateMediaSource(wFile1, &m_pSource_1);
CreateMediaSource(wFile2, &m_pSource_2);

CreateAggregatedSource(m_pSource_1, m_pSource_2, &m_pAggregatedSource);

m_pAggregatedSource->CreatePresentationDescriptor(&pSourcePD);

m_pSession->SetTopology(0, pTopology);

我面临的问题是,我在运行应用程序时遇到错误:

Code: 0xC00D4A3B    
Enum: MF_E_STREAMSINKS_FIXED    
Message: Stream Sinks cannot be added to or removed from this Media Sink because its set of streams is fixed.

我想实施的目标:
我想使用EVR Windows Media Foundation在一个视频渲染器中显示两个视频流。

1 个答案:

答案 0 :(得分:0)

经过对EVR的大量调查并使用视频混合器显示两个视频后,我的结论是evr不是解决方案(至少在Windows 7上)。

在简单的情况下,EVR和混音器视频无法呈现两个或更多视频。也许缺乏文件,也许......

对我来说,最好的方法是使用自定义evr渲染器进行混音,而不使用混音器视频的设计(不需要imftransform)。渲染器处理directx事物,因此它可以直接处理视频混合。