我正在尝试在 Win10 Pro Insider Preview 上使用 H.265 编码器 MFT 对视频进行编码。
- 最初我在自己的程序中创建/初始化一个 H.265 编码器并调用 ProcessInput/ProcessOuput,它在 ProcessOuput 内部崩溃(它没有在第一帧崩溃,而是在处理了几帧后崩溃)。
为了简化问题,我使用 IMFSinkWriter 创建了一个接收器,因此帧编码/写入完全由 sinkwriter 处理。但不幸的是,mfh265enc.dll 内部仍然发生崩溃。
请注意,在上述两种情况下,我所做的更改是针对可以成功编码 H.264 视频的程序。我只更改了 Encoder/SinkWriter 的输出媒体类型(将子类型从 H.264 更改为 H.265)。视频帧的构建方式,提供给编码器/接收器的方式保持不变。使用 H.264 编码时一切正常,但一旦更改为 H.265,它就崩溃了。
然后我转向Win7 SDK 附带的示例程序:MFCaptureToFile,它可以将视频捕获为 MP4 文件。
我确定 H.265 编码器可以接受来自摄像机的视频格式。
我所做的唯一更改是传递给 SinkWrite.AddStream 的输出媒体类型。
我已将子类型更改为 MFVideoFormat_HEVC,并将 MF_MT_MPEG2_PROFILE 设置为 1 (eAVEncH265VProfile_Main_420_8)。
但是通过上述 2 项更改,程序仍然崩溃。显示“MFCaptureToFile.exe 中 0x5A025085 (mfh265enc.dll) 处的未处理异常:0xC0000005:访问冲突读取位置 0xFFFFFFFF”
这是我对 MFCaptureToFile 程序所做的更改。 https://www.dropbox.com/s/oytqen13m7bcs23/DIFF.PNG?dl=0
希望有人可以提供帮助。谢谢