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

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

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

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

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

谢谢。

最佳答案

查看此链接以了解如何编写自定义媒体源: 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 创建样本

有关编码视频示例,请查看:http://msdn.microsoft.com/en-us/library/windows/desktop/ee663604(v=vs.85).aspx

关于video - 媒体基金会。使用自定义 IMFMediaSource 从位图编码视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8851166/

相关文章:

video - 为什么ffmpeg示例程序decode_encoding的h264输出文件不能在Quicktime中播放?

javascript - Wistia 视频自定义 Action

javascript - 如何在 Windows Phone 7 上检查 HTML5 视频是否已结束?

android - 16571536 字节分配内存不足

c++ - 从 AVPacket 为 h264 视频填充 CMediaType 和 IMediaSample

java - 如何在视频开始运行之前显示视频的总时间

android - 如何在 Android 中拍照、保存和获取照片

c++ - 如何仅使用直接 WinAPI 将与设备无关的位图放入 Windows 剪贴板? (没有 MFC 或其他包装器)

ffmpeg - GOP 大小与实际延迟无关

iphone - iOS 上的原始 H264 NALU 硬件解码