Media Foundation h264编码器性能不佳
我正在编写一个实时记录PC屏幕的应用程序,并使用Media Foundation h264编解码器对其进行编码。 编码会占用大量CPU资源。在我停止录制视频(或通过简单地停止向带有视频和音频帧的编码器进行暂停)之后,CPU负载会长时间保持很长时间(5-10秒甚至更长)。在此期间,应用程序将等待,直到IMFSinkWriter :: Finalize方法完成。
我的电脑配置:
编解码器配置:
这是MF h264编解码器性能的限制还是由于我的代码中存在错误/错误配置?
答案 0 :(得分:0)
具有长内部队列的管道的预期行为是在队列为空之前保持编码视频。由于 - 似乎 - 正在使用软件编码器并且它非常慢,因此您的屏幕捕获源会生成足够的数据来填充队列,以至于需要额外的秒来对其进行排序。
您的解决方案是控制/降低数据速率,或者使用更快,尤其是。硬件辅助编码器。但是,Media Foundation可以自动利用硬件编码器,因此我认为它不适合您。您可以使用MediaFoundationVideoEncoderTransforms tool检查硬件编码器的可用性。