微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在Windows中使用H264video编码器MFT对位图进行编码

我的应用程序做从GDI或dxgi方法捕获帧的编码。 目前我正在做编码与帮助x264库。

AFAIK x264是基于软件的库,我想用GPU来编码,所以可以节省cpu周期,希望速度也会更快。

经过search,我find了一个正在做h264编码的H.264video编码器 MFT。

但几个问题都回答了我。

1)它比x264编码库快吗?

2)可以帮助这个MFT编码位图帧吗?

– 我只看到MFVideoFormat_I420,MFVideoFormat_IYUV,MFVideoFormat_NV12,MFVideoFormat_YUY2,MFVideoFormat_YV12支持这些格式

3)是硬件加速(是指使用cpu还是GPU)?

– 最初我的理解是使用GPU,但是在阅读这篇文章之后,我感到困惑MFT编码器(h264)cpu利用率高 。

4)H.264 Video Encoder MFT可以独立使用而不使用接收器,因为我必须在networking上发送数据?

5)有没有其他的select在Windows中?

这可能是一些非常愚蠢的问题,请随时编辑。

将string从EBCDIC转换为Unicode / UTF8

我应该使用哪种字符集来编码和解码8位值?

Windows上的文件是否具有编码属性

Linux更新后在JVM中错误文件编码

Java的Apache FileUtils的readFiletoString和writeStringToFile的问题

Media Foundation H.264视频编码器是软件编码器。 从我的[主观]经验来看,它比x264慢,也许更重要的是,x264提供了更广泛的设置,特别是当选择速度超过范围的模式。 无论哪种方式,库存MS编码器都不是硬件加速的。

但是,可能还有其他可用硬件加速H.264编码的MFT(通常与各自的硬件驱动程序一起安装)。 您可以通过枚举MFT来发现它们,也许最受欢迎的是英特尔快速同步视频(QSV)编码器。

HardwareVideoEncoderTransform应用程序进行枚举并为您提供相关的详细信息:

典型的输入是NV12,一些提供其他输入选择(例如32位RGB)。 如果您需要其他格式,则必须预先转换输入。

硬件支持的编码器cpu消耗低,其效率取决于硬件实现。 是的,您可以单独使用它们,完全独立使用,也可以使用DirectShow过滤器包含在普通的DirectShow管道中。

替代的H.264编码器通常是基于SDK的,或者是在DirectShow / MFT格式的这些SDK上进行封装,因为供应商将其实现方式打包为多媒体开发人员熟知的已知形式。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐