【发布时间】:2016-02-18 12:42:21
【问题描述】:
我的应用程序通过 GDI 或 DXGI 方法对捕获的帧进行编码。目前我正在使用帮助 x264 库进行编码。
AFAIK x264 是基于软件的库,我想在 GPU 的帮助下进行编码,这样可以节省 CPU 周期,希望速度也会更快。
经过搜索,我找到了一个H.264 Video Encoder MFT,它正在做h264编码。
但我回答了几个问题。
1) 它比 x264 编码库快吗?
2) 可以借助此 MFT 对位图帧进行编码吗?
- 我只见过 MFVideoFormat_I420、MFVideoFormat_IYUV、MFVideoFormat_NV12、MFVideoFormat_YUY2、MFVideoFormat_YV12 这些格式受支持
3) 它是硬件加速的(意味着它使用 CPU 或 GPU)吗?
- 最初我的理解是它使用 GPU,但在阅读这篇文章 MFT Encoder (h264) High CPU utilization 后我感到困惑。
4) H.264 Video Encoder MFT 可以单独使用而不使用 sink writer,因为我必须在网络上发送数据?
5)Windows中还有其他选择吗?
可能有些问题很傻,请随时编辑。
【问题讨论】:
-
我在其他一些问题中发现,使用硬件编码器必须设置标志 MFT_ENUM_FLAG_HARDWARE。我希望它会自动检测硬件。
-
我找到了一个替代选项,但它是第三方实现。我看起来类似于 Windows 的 H.264/AVC Wrapper lib。
标签: windows encoding h.264 ms-media-foundation