2012-01-13 90 views
3

任何人都可以澄清以下问题吗?一个体面的源代码片段或例子将是美好的,我迄今发现的唯一相关示例是SDK中的WavSource。媒体基金会。使用自定义IMFMediaSource编码位图视频

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

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

谢谢。

回答

2

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

原料基本上是位样品中编码。您可以简单地为32 BPP分配一个大小为4 *行*高的样本并传递原始缓冲区。

你可以这样做:

  1. MFCreateMemoryBuffer创建缓冲区
  2. MFCopyImage复制你的位图缓存
  3. MFCreateSample创建示例

对于编码视频样本,取看看:http://msdn.microsoft.com/en-us/library/windows/desktop/ee663604(v=vs.85).aspx

+0

迟来的谢谢 – 2014-12-20 13:40:23

+0

你会吗能够共享代码,如果你有它的工作?谢谢! – 2016-04-12 15:48:29