Media Foundation h264 编码器性能不佳

Media Foundation h264 encoder poor performance

Media Foundation h264 编码器性能不佳

我正在编写一个实时记录 PC 屏幕并使用 Media Foundation h264 编解码器对其进行编码的应用程序。 编码消耗大量 CPU 资源。在我停止录制视频(或通过简单地停止向编码器提供视频和音频帧来暂停它)之后,CPU 负载在很长一段时间内(5-10 秒或更长时间)保持非常高。在此期间,应用程序等待 IMFSinkWriter::Finalize 方法完成。

我的电脑配置:

编解码器配置:

这是 MF h264 编解码器性能的限制还是由于我的代码中的 bugs/misconfiguration?

具有较长内部队列的管道在队列为空之前一直对视频进行编码,这是预期的行为。由于 - 看起来 - 正在使用软件编码器并且它非常慢,您的屏幕捕获源会生成足够的数据来填充如此紧张的队列,以至于需要额外的几秒钟才能将其整理出来。

您的解决方案是 control/reduce 数据速率,或者使用更快的速度,尤其是。硬件辅助,编码器。然而,Media Foundation 可以自动利用硬件编码器,所以我想这不是你的选择。您可以使用 MediaFoundationVideoEncoderTransforms tool.

检查硬件编码器的可用性