【问题标题】:Windows Media Foundation Position videos in EVRWindows Media Foundation 在 EVR 中定位视频
【发布时间】:2017-03-03 13:43:14
【问题描述】:

我正在尝试使用 Windows Media Foundation。

我创建了一个示例应用程序,如下链接所述:
https://msdn.microsoft.com/en-us/library/windows/desktop/ms703190(v=vs.85).aspx

在上面的例子中,我使用MFCreateAggregateSource添加了两个视频流

在 EVR 渲染器中,我可以听到两个视频的音频,但我只能看到一个第一次加载的视频。

我正在尝试使用以下代码分别定位视频,以便在窗口中看到两个视频:

if (status == MF_TOPOSTATUS_READY)
{

HRESULT hr1 = MFGetService(m_pSession, MR_VIDEO_MIXER_SERVICE,IID_PPV_ARGS(&m_pVideoMixerControl));

MFVideoNormalizedRect objRect1;
objRect1.left = 0;
objRect1.top = 0;
objRect1.right = 100;
objRect1.bottom = 100;
m_pVideoMixerControl->SetStreamOutputRect(0, &objRect1);

MFVideoNormalizedRect objRect2;
objRect2.left = 105;
objRect2.top = 0;
objRect2.right = 200;
objRect2.bottom = 200;
m_pVideoMixerControl->SetStreamOutputRect(1, &objRect2);

hr = StartPlayback();
}

但我没有看到此代码对视频有任何影响,或者我无法将两个视频流分别放置在一个播放器中。

我做错了什么,或者它是如何在 Windows Media Foundation 中完成的。

【问题讨论】:

    标签: video ms-media-foundation


    【解决方案1】:

    MFVideoNormalizedRect 的值在 0.0 到 1.0 的范围内:MFVideoNormalizedRect

    例子:

    objRect1.left = 0.0; // 必须在 0.0 到 1.0 的范围内

    objRect1.top = 0.0; // 必须在 0.0 到 1.0 的范围内

    objRect1.right = 0.5; // 必须在 0.0 到 1.0 的范围内

    objRect1.bottom = 0.5; // 必须在 0.0 到 1.0 的范围内

    【讨论】:

      猜你喜欢
      • 2012-10-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-28
      相关资源
      最近更新 更多