在directx 11中渲染h264视频帧

时间:2015-10-12 17:38:26

标签: c# wpf video-streaming directx directx-11

我是DirectX的新手。我正在尝试编写一个自定义IP摄像机视频播放器,我正在使用DirectX11以Wpf Gui作为我的前端渲染解码图像。

我是 c#developer ,并使用了不再由 microsoft 更新的托管directx,因此转移到了wpf和directx11。

我的应用程序的所有部分直到渲染帧都工作正常。

我设法创建了一个D3DImage源,它将在Wpf应用程序中使用,成功创建我的视口和我的设备,包括我的共享资源,因为D3DImage仅适用于Directx9。我使用SharpDX作为DirectX API的包装。

现在我的问题是我似乎无法找到一种方法来创建纹理/从解码的图像字节更新纹理,或者这样做的正确方法是从接收的字节渲染解码图像。

对此的任何帮助都会很棒,或者是否有人可以指导我如何接近这个方向?

感谢。

1 个答案:

答案 0 :(得分:2)

经过将近2周的搜索并试图找到我所述问题的解决方案后,我终于找到了以下内容。

然而,这确实显示了图像但不是预期的,但我相信这对我来说是一个开始,因为下面的代码回答了我最初提出的问题。

prop()

使用上面的代码,我现在能够使用我收到的新图像数据填充纹理,但图像没有以正确的颜色/像素呈现,如下图中的红色框所示。

渲染图像的屏幕截图: enter image description here

图像字节通过BGRA32像素格式的解码器接收。 任何解决此问题的建议都会非常有用。