Search code examples
nvidiavideo-encodingms-media-foundation

Using Nvidia Encoder NVENC with Media Foundation for H264 on Windows 8.1


I am trying to use hardware accelerated encode in Media Foundation with Nvidia GTX GPUs. While I can see a MFT registered for Quick Sync (for my i7) I cannot see a MFT for the Nvidia. I can see a generic Microsoft H264 Encoder MFT as well, but that seems to be software and synchronous only.

If I choose the microsoft encode one and I try to hw accelerate it (by passing a d3d device and assigning it a direct x manager, I get a not implemented (E_NOIMPL) result. This call returns E_NOIMPL:

encoder->ProcessMessage(MFT_MESSAGE_SET_D3D_MANAGER, (ULONG_PTR)((IMFDXGIDeviceManager*)(m_MFDXGIDeviceManager)))

Am I missing something? Is there something that has to be done to install/register the nvidia mft?


Solution

  • The Nvidia NVENC MFT for H.264 does not exist in windows 8.1 Upgrading to windows 10 and installing the nvidia driver makes it appear. From there it is easy to get it to work