Media Foundation编码AVI Raw索引错误

时间:2016-11-24 07:47:31

标签: c++ directshow video-encoding avi ms-media-foundation

我正在尝试使用Windows 8.1上的MediaFoundation编码视频,输出文件应该是一个avi容器,带有原始流NV12。 视频已生成,我可以播放但是当我用VLC打开它时,我会检测到损坏的索引(使用选项按原样播放或临时修复)。如果按原样按下播放,则播放正常。但这在其他软件中产生了问题。 我试图研究这个并注意到AVI支持两种类型的索引

https://msdn.microsoft.com/en-us/library/windows/desktop/dd318189(v=vs.85).aspx

但这是针对DirectShow的,而我正在使用MediaFoundation,而且我无法在MediaFoundation中找到与此相关的任何内容。

任何帮助或建议将不胜感激。 感谢。

编辑: 这就是我创建IMFMediaSink的方式:

hr = MFCreateAttributes(&sinkAttributes, 5);
assert(SUCCEEDED(hr));
sinkAttributes->SetUnknown(MF_SINK_WRITER_ASYNC_CALLBACK, this);
sinkAttributes->SetGUID(MF_TRANSCODE_CONTAINERTYPE, MFTranscodeContainerType_AVI);
if (SUCCEEDED(hr)){
    hr = MFCreateSinkWriterFromURL(videoURL, NULL, sinkAttributes, (IMFSinkWriter**)&sinkWriter);
}

0 个答案:

没有答案