小编Tia*_*ães的帖子

使用Media Foundation对Direct X曲面进行编码

我正在尝试使用MediaFoundation API对视频进行编码,但是我在将样本推送到SinkWriter时遇到了问题.

我正在通过桌面复制API获取帧编码.我最终得到的是ID3D11Texture2D,其中包含桌面图像.

我正在尝试创建一个包含此表面的IMFVideoSample,然后将该视频样本推送到SinkWriter.

我尝试过不同的方式:

  • 我调用MFCreateVideoSampleFromSurface(texture, &pSample)了纹理是ID3D11Texture2D,填充在SampleTime和SampleDuration中,然后将创建的样本传递给SinkWriter.
    SinkWriter返回E_INVALIDARG.

  • 我尝试通过传递nullptr作为第一个参数并使用MFCreateDXGISurfaceBuffer自己创建缓冲区,然后将生成的缓冲区传递给Sample来尝试创建示例.
    那也行不通.

  • 我阅读了MediaFoundation文档,但无法找到有关如何使用DirectX纹理创建样本的详细信息.

我没有东西可以试试.
有没有人以前使用过这个API,可以想到我应该检查的东西,或者我可以如何调试这个?

c++ directx-11 dxgi ms-media-foundation

5
推荐指数
1
解决办法
1140
查看次数

标签 统计

c++ ×1

directx-11 ×1

dxgi ×1

ms-media-foundation ×1