Windows 媒体基金会在 EVR 中定位视频
Windows Media Foundation Position videos in EVR
我正在试验 Windows Media Foundation。
我创建了一个示例应用程序,如下所述 link:
https://msdn.microsoft.com/en-us/library/windows/desktop/ms703190(v=vs.85).aspx
在上面的示例中,我使用 MFCreateAggregateSource
添加了两个视频流
在 EVR 渲染器中,我能够听到两个视频的音频,但我只能看到一个首先加载的视频。
我正在尝试使用以下代码分别定位视频,以便在 window 中看到两个视频:
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 中是如何完成的。
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
范围内
我正在试验 Windows Media Foundation。
我创建了一个示例应用程序,如下所述 link:
https://msdn.microsoft.com/en-us/library/windows/desktop/ms703190(v=vs.85).aspx
在上面的示例中,我使用 MFCreateAggregateSource
在 EVR 渲染器中,我能够听到两个视频的音频,但我只能看到一个首先加载的视频。
我正在尝试使用以下代码分别定位视频,以便在 window 中看到两个视频:
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 中是如何完成的。
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
范围内