无法设置windows媒体视频9屏幕编码器
Cannot setup windows media video 9 screen encoder
设置输入类型时遇到问题。我得到这个错误:
mfe_invalidmediatype:为媒体类型指定的数据为无效、不一致或不支持。
有什么好办法吗?
在SetInputMediaType
处返回错误。
这是输入和输出的设置代码:
hr = MFCreateMediaType(&mediaTypeIn);
hr = mediaTypeIn->SetGUID(MF_MT_MAJOR_TYPE, MFMediaType_Video);
hr = mediaTypeIn->SetGUID(MF_MT_SUBTYPE, MFVideoFormat_RGB24);
hr = mediaTypeIn->SetUINT32(MF_MT_INTERLACE_MODE, MFVideoInterlace_Progressive);
hr = MFSetAttributeSize(mediaTypeIn, MF_MT_FRAME_SIZE, width, height);
hr = MFSetAttributeRatio(mediaTypeIn, MF_MT_FRAME_RATE, fps_num, fps_den);
hr = MFSetAttributeRatio(mediaTypeIn, MF_MT_PIXEL_ASPECT_RATIO, 1, 1);
hr = MFCreateMediaType(&mediaTypeOut);
hr = mediaTypeOut->SetGUID(MF_MT_MAJOR_TYPE, MFMediaType_Video);
hr = mediaTypeOut->SetGUID(MF_MT_SUBTYPE, MFVideoFormat_MSS2);
hr = mediaTypeOut->SetUINT32(MF_MT_INTERLACE_MODE, MFVideoInterlace_Progressive);
hr = mediaTypeOut->SetUINT32(MF_MT_AVG_BITRATE, bit_rate);
hr = MFSetAttributeSize(mediaTypeOut, MF_MT_FRAME_SIZE, width, height);
hr = MFSetAttributeRatio(mediaTypeOut, MF_MT_FRAME_RATE, fps_num, fps_den);
hr = MFSetAttributeRatio(mediaTypeOut, MF_MT_PIXEL_ASPECT_RATIO, 1, 1);
hr = vx->sinkWriter->AddStream(mediaTypeOut, &vx->streamIndex);
// No problems before this point, and the call below returns MF_E_INVALIDMEDIATYPE
hr = vx->sinkWriter->SetInputMediaType(vx->streamIndex, mediaTypeIn, NULL);
你没有告诉我们什么是宽度,高度,fps_num, fps_den等等。例如,如果width为0,您将收到mfe_invalidmediatype…
编辑
答案如下:马特·安德鲁斯微软(MSFT)
正如前面提到的,微软屏幕编码器默认情况下没有注册。屏幕编码器的CLSID是CLSID_CMSSCEncMediaObject2。如果你想在应用程序中使用它,你要么需要使用CoCreateInstance手动创建它,然后将其插入到拓扑中,要么使用MFTRegisterLocalByCLSID在本地注册它。
MFVideoFormat_MSS2系统默认不存在
相关文章:
- 使用 MATLAB 编码器生成C++代码:编译错误"undefined reference to `rgb2gray_tbb_real64'"
- 绝对编码器十六进制输入
- *新的编码器*格式和运算符
- Arduino RPM代码与正交编码器600ppr
- 如何获得GUID编码器,如果我在IMFTransform上有一个指针?
- 如何将 MATLAB 图像处理库内置函数转换为 MATLAB 编码器代码生成不支持的 C++?
- Openh264 编码器增加了 IDR 或 I 帧的数量
- 确定输入"conscalc: calc"的类型时出错。不能联合编码器。具有不同字段集的结构类型
- NVDA屏幕阅读器请求错误的QAccessible::InterfaceType
- 将原始视频图像转换为VPX编码器的I420
- 使用 MATLAB 编码器将代码从注册估算器应用程序导出到C++
- 如何读取旋转编码器
- 防止编码器错误 - 忘记在"std::enable_if<>::type"中添加"::type" (SFINAE)
- 如何使用Imebra库将压缩像素(用我自己的编码器压缩)回到DICOM图像文件中
- 如何从Intel MFT编码器的D11纹理创建IMFSample
- Matlab 编码器转换可变大小单元格错误
- 使用 Arduino 将位置编码器值转换为 RPM 时出现问题
- 防止编码器错误 - 通过参考(悬挂指针)返回临时值
- 编码器的PDF规格:Adobe或ISO
- 无法设置windows媒体视频9屏幕编码器