媒体基金会。使用自定义IMFMediaSource从位图编码视频

时间:2012-01-13 13:15:09

标签: video bitmap h.264 video-encoding ms-media-foundation

有人可以澄清以下问题吗?一个不错的源代码片段或示例会很精彩,到目前为止我发现的唯一相关示例是SDK中的WavSource。

  1. 如何将原始位图数据呈现给编码器?它是(A)RGB 32BPP还是类似的?

  2. 在WavSource示例的基础上调用输入流上的RequestSample(),这将返回数据,播放时间和持续时间。所以我将返回一个具有播放时间且持续时间为1s的格式适当的缓冲区?

  3. 感谢。

1 个答案:

答案 0 :(得分:3)

请看一下如何编写自定义媒体资源的链接: http://msdn.microsoft.com/en-us/library/windows/desktop/ms700134(v=vs.85).aspx

基本上原始位图在样本中编码。您可以简单地为32 BPP分配大小为4 * row * height的样本并传递原始缓冲区。

你可以这样做:

  1. MFCreateMemoryBuffer创建缓冲区
  2. MFCopyImage将位图复制到缓冲区
  3. MFCreateSample创建示例
  4. 要对视频样本进行编码,请查看:http://msdn.microsoft.com/en-us/library/windows/desktop/ee663604(v=vs.85).aspx