ms-media-foundation - 将 MFVideoFormat 从 RGB24 转换为编码器支持的任何其他格式

标签 ms-media-foundation

我需要使用encoder H264但问题是编码器不接受除 MFVideoFormat 列表之外的内容。

MFVideoFormat_I420

MFVideoFormat_IYUV

MFVideoFormat_NV12

MFVideoFormat_YUY2

MFVideoFormat_YV12

问题是我的相机的样本是 RGB24,我该怎么办?

最佳答案

您(至少)有两个选择:

  1. 在将 RGB24 样本(位图)传递给编码器之前,将它们(自行)转换为 NV12(或其他)样本。这并不难。有例子:https://www.google.bg/search?q=RGB+to+NV12

  2. 您可以创建 Color Converter DSP ( https://msdn.microsoft.com/en-us/library/windows/desktop/ff819079%28v=vs.85%29.aspx ) 的实例,并将其输入配置为接收 RGB24 样本,并将其输出配置为所需的色彩空间。然后调用 ProcessInput() 和 ProcessOutput() 进行转换。

关于ms-media-foundation - 将 MFVideoFormat 从 RGB24 转换为编码器支持的任何其他格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29006327/

相关文章:

c++ - 如何从 D11 纹理为英特尔 MFT 编码器创建 IMFSample

camera - IMFTransform 隐蔽相机流颜色格式,IMFTransform::ProcessOutput 返回卡住图像数据

c++ - Visual Studio 2012 不存在 mfplatf.lib

c# - NAudio 正确传输 MediaFoundationReader 的方法

c++ - 当应用程序是视频源并通过网络流式传输视频时如何使用媒体基础?

video-encoding - 是否可以在 Media Foundation 中编码非常大的视频(大于 4K)

c - Media Foundation 使用 C 而不是 C++

c++ - SetInputType 返回错误代码 c00d6d60

c# - 使用带有 C# 的 MediaTranscoder 将 PCM 音频转码为 MP3