Recently I’ve been spending some time improving MediaCoder’s support for Intel MSDK encoder, the GPU acclerated H.264 and MPEG-2 encoder from the chip giant. A new revision of MediaCoder (before I can finish and implement all the major improvements in my mind and release MediaCoder 2012), is released containing several improvements including slight performance boost when using Intel MSDK encoder to perform hardware accelerated encoding.
Actually the performance of Intel MSDK encoder is astonishing. This comes from the good implementation of the underlying multimedia facilities of Intel Media SDK framework, as well as the multi-threaded design of MediaCoder, espeically its built-in large circulla frame buffer used for efficiently transferring raw audio and video data from decoder to encoder.
Here I give some tips for using Intel MSDK encoder in MediaCoder.
- Only H.264 and MPEG-2 are supported for hardware acceleration which most people should already know. Don’t expect legacy formats to be supported. Stick to CPU encoding for them.
- Set higher priority (on the Task tab) for encoder can boost the speed a bit and this won’t slow down your system response noticablly because the GPU encoder will never eat up all the processor power.
- In the new version, I added the “Use D3D Surface” option. Though I found that some systems can use this and some other cannot, by enabling this, you can get some extra speed boost.
- On the picture tab, set “Effects” to “Encoder Filters”. This will hand over the video filtering job to the hardware accelerated encoder (by default it’s done by video decoders) and will increase transcoding speed noticablly when scaling and cropping are enabled. But please note that the Intel MSDK encoder doesn’t have so much filters implemented (basically it could only do scaling and I just added cropping in the recent release), so if you want to performing denoising or deinterlacing, you should not use this.
- On Intel MSDK encoder tab, you can choose among “Quality”, “Balanced” and “Speed” for speed-quality trading.
Here is what I am getting with the latest version of MediaCoder working on my dev PC which consists of:
- Intel i7-2600 processor
- Asus H67 motherboard (onboard GPU, actually it’s in-processor GPU)
- 16G RAM
In the transcoding, the source content is a H.264 MKV of 1024×576 and target is H.264 MP4 of 720×480. Crop-to-fit was chosen. The transcoding speed reached 17.25x or 413.5fps. That means, a 2-hour movie can be transcoded in less than 7 minutes. The speed is very impressive, isn’t it?