Using the UMC::MP4Splitter with the Intel® Media Software Development Kit

I start to learn how to use the Intel® Media Software Development Kit (Media SDK) (http://software.intel.com/en-us/articles/media/) in order to take advantage of Intel® HD Graphics. Basically, the Intel® Media SDK can be used to encode, transcode, and decode video applications.

The decoder performs the decode operation using hardware acceleration capability of current and future Intel® HD Graphics generations. Input to the decoder can be one of the following compressed video formats: H.264/AVC, MPEG-2 video or VC-1.

I choose the format MP4/AVC to start with because it is a standard for video compression.

The next question is how to get a compressed video data to pass to the decoder. Either I can use MP4 Splitter DirectShow* or using Intel UMC::MP4Splitter (part of the Intel® Primitive Performances) to split a MP4/AVC container to get the compressed video data out. I decided to choose to use UMC::MP4Splitter because the Intel® Primitive Performances (IPP) functions are highly optimized for performance. The responsibility of the MP4Splitter is to separate the compressed video data and the compressed audio data. Users can get UMC by downloading Intel® IPP with samples including UMC (http://software.intel.com/en-us/intel-ipp/). The UMC component is found in the folder …./Samples/en_US/ipp-samples/audio-video-codecs of the IPP software package.

Then, I download a MP4 file from the Internet and use it as the input to the splitter UMC::MP4Splitter. I modified the decoder sample code of the media SDK so that it takes the MP4/AVC container format as input, and calls splitter API’s before the stream gets into the decoder engine. The output is a raw video data of color format NV12.

This NV12 file now can be processed by the pre-processing. To verify, I just use the encoder sample to encode this NV12 file to generate the output video file of format H.264. This output file format (video only) can be viewed by a free media player.

What I learned is it is quite simple to split and decode a MP4/AVC container format by combining the MP4Splitter and the Media SDK. For your information, I used a system equipped with Intel® Core™ i5 CPU running on Windows* 7.

*Other names and brands may be may be claimed as the property of others.

For more complete information about compiler optimizations, see our Optimization Notice.