What Codec API properties are supported by the Intel H264 MFT

What Codec API properties are supported by the Intel H264 MFT

Hi,

I'm developing a voip app that needs to work on windows 7/8/10 and am struggling to get the Intel H264 encoder to do what I want. 

I am using Media Foundation and have a topology built where I an able to place in a video processor/colour convertor before the transform and a sample grabber after to get the frames.  This is working fine and I have the sample being delivered to another machine and am able to decode and play the back pretty much without any latency.  Using GPU-Z on my encoding machine I can see my Intel HD 4000 card on my laptop taking the load of the encoding at about 10% GPU load.  So, mostly I have the basics working.

The piece I want to add in now is the ability to control the bitrate that the encoder is spitting out so that I can wire this up to RTCP style feedback mechanism from the receiving end.

If I don't use the Intel encoder but instead use the Microsoft H264 Encoder, on Windows 8, then I can set the CODECAPI_AVEncCommonMeanBitRate property on the encoder whilst streaming and effect the bitrate without have to stop and start the video.  But, with the Intel encoder in the pipeline I can't.

So, my main question is, what are the Codec API properties supported by the Intel H264 MFT?  

Can they be changed after the SetOutputType has been set on the MFT?

Also, I read that in version 2 of the Media SDK there used to be a sample showing how to make an MFT using the SDK.  I can't find a way to download that version of the SDK, I only have versions 5 and 6 of hte SDK here.  

- Is this the MFT that is installed with the graphics cards?

- Are the windows 7 and 8/10 MFT's different?

Many Thanks

Richard

4 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

Hi Richard,

Can you send the log from system analyzer to us for help us understanding your system configuration ?
system analyzer  location :  < mediasdk  installed folder>\tools\mediasdk_system_analyzer.

Thanks

Zachary

Hi,

 

Here's the configuration from my dev machine.

 

Intel Media SDK System Analyzer (64 bit)

The following versions of Media SDK API are supported by platform/driver:

        Version Target  Supported       Dec     Enc
        1.0     HW      Yes             X       X
        1.0     SW      Yes             X       X
        1.1     HW      Yes             X       X
        1.1     SW      Yes             X       X
        1.3     HW      Yes             X       X
        1.3     SW      Yes             X       X
        1.4     HW      Yes             X       X
        1.4     SW      Yes             X       X
        1.5     HW      Yes             X       X
        1.5     SW      Yes             X       X
        1.6     HW      Yes             X       X
        1.6     SW      Yes             X       X
        1.7     HW      Yes             X       X
        1.7     SW      Yes             X       X
        1.8     HW      Yes             X       X
        1.8     SW      Yes             X       X

Graphics Devices:
        Name                                         Version             State
        Intel(R) HD Graphics 4000                    10.18.10.4252       Active
        NVIDIA GeForce GT 640M                       10.18.13.5362       08

System info:
        CPU:    Intel(R) Core(TM) i7-3612QM CPU @ 2.10GHz
        OS:     Microsoft Windows 10 Pro
        Arch:   64-bit

Installed Media SDK packages (be patient...processing takes some time):
        Intel« Media SDK Media Foundation* Sample 5.0.461.91752
        Intel« INDE Media SDK for Windows 6.0.0.349

Installed Media SDK DirectShow filters:

Installed Intel Media Foundation Transforms:
  Intel« Hardware M-JPEG Decoder MFT : {00C69F81-0524-48C0-A353-4DD9D54F9A6E}
  Intel« Quick Sync Video H.264 Encoder MFT : {4BE8D3C0-0515-4A37-AD55-E4BAE19AF
471}

 

Analysis complete... [press ENTER]

 

Thanks

Richard

 

 

Hi Richard,

Thank you for sharing the logs. Intel h264 hardware MFT supports all the standard h264 codec properties. These hardware MFT (HMFT) are provided and distributed as part of our graphics drivers. These provide Quick sync (hardware accleration) support on platforms. Quick Sync Video H.264 Encoder MFT is a fixed function implementation, hence there is limited flexibility to make any changes to the pipeline.  Yes, hmft distributred via graphic driver  on win7 includes dx9 support, Win8/8.1 dx11 and Win10 dx12. Currently you on right track, use Microsoft H264 encoder which works with underlying platform (hardware) MFT to provide hardware accleration. Hope this provides answer to all of the above questions. Let me know if any further questions.

Thanks, 

 

Leave a Comment

Please sign in to add a comment. Not a member? Join today