【发布时间】:2014-02-24 13:34:02
【问题描述】:
目前我正在使用一个 VMR9 渲染器同时渲染两个不同的视频,并将其放在 XNA 纹理上。我目前使用的代码管理一个视频渲染,但是它在两个视频上有些俗气。在我的工作设置中,完整的视频播放完美无缺,但是当我尝试切换计算机时,它让我黑屏。
我正在使用本主题中建议的过滤器图:Can one Video Mixing Renderer 9 (VMR9) render more video streams?
如果我在当前运行的程序上附加 GraphStudioNext,它会显示以下图表: http://s11.postimg.org/z7d3qyyxf/graph.png
起初我认为问题是编解码器设置之间存在一些差异,但在我在两台不同的机器上管理相同的配置后,只有图表发生了变化:即使一台机器正确显示视频而另一台机器只显示黑屏。
我什至尝试过手工重新制作图表,看看图表本身是否有问题,并且运行顺利。
我使用以下代码 sn-p 将视频源添加到 VMR9 渲染器:
protected override HRESULT OnInitInterfaces()
{
IBaseFilter bsFilter;
m_GraphBuilder.AddSourceFilter(@"C:\Video\Digitales CLP_tic tac Strawberry Mix_HUN_FIN.mp4", "first", out bsFilter);
IEnumPins ePins;
bsFilter.EnumPins(out ePins);
IPin[] pins = new IPin[1];
IntPtr fetched = IntPtr.Zero;
ePins.Next(1, pins, fetched);
int hr = m_GraphBuilder.Render(pins[0]);
m_GraphBuilder.AddSourceFilter(@"C:\Video\UIP_StarTrek.mp4", "second", out bsFilter);
bsFilter.EnumPins(out ePins);
ePins.Next(1, pins, fetched);
hr = m_GraphBuilder.Render(pins[0]);
return (HRESULT)hr;
}
任何帮助将不胜感激。
【问题讨论】:
标签: c# xna directshow