我正在尝试使用Win10 Pro Insider Preview上的H.265编码器MFT对视频进行编码。
为了简化问题,我使用IMFSinkWriter创建了一个接收器,因此帧编码/写入完全由sinkwriter处理。但不幸的是,mfh265enc.dll中仍然发生了崩溃。
请注意,在上述两种情况下,我所做的更改是在一个可以成功编码H.264视频的程序上。我只更改了Encoder / SinkWriter的输出媒体类型(将子类型从H.264更改为H.265)。构建视频帧的方式,提供给编码器/写入器保持不变。当用H.264编码时,一切都很好,但一旦改为H.265就崩溃了。
然后我转向示例程序附带 Win7 SDK:MFCaptureToFile ,它可以将视频捕获到MP4文件中。
我确信摄像机的视频格式是H.265编码器可以接受的。
我所做的唯一改变是传递给SinkWrite.AddStream的outputmedia类型。
我已将子类型更改为MFVideoFormat_HEVC,并将MF_MT_MPEG2_PROFILE设置为1(eAVEncH265VProfile_Main_420_8)。
但是上面有两个变化,程序仍然崩溃。在MFCaptureToFile.exe中显示“0x5A025085处于未处理的异常(mfh265enc.dll):0xC0000005:访问冲突读取位置0xFFFFFFFF”
以下是我对MFCaptureToFile程序所做的更改。 https://www.dropbox.com/s/oytqen13m7bcs23/DIFF.PNG?dl=0
希望有人可以提供帮助。感谢
答案 0 :(得分:1)
这是Windows 10(版本10240)的RTM版本以及任何先前的Windows Insider版本中的错误。
我可以确认the latest Insider build (10532)已修复此错误,但此时没有公开发布日期,以便将修补程序推送给所有Windows用户。
我注意到在Visual Studio中的x64版本中没有出现此问题,因此如果构建64位版本的应用程序是可接受的解决方法,那么在此修复程序公开之前,这可能有助于解除阻止。