I tried to evaluate mpeg 4 encoding using umc_video_enc_con sample from IPP. The source is 720p. The encoding process had been completed sucessfully, but I was unable to playback the encoded video using any media player except StreamEye. StreamEye shows the video of this file is DIVX4. I expected to have H264 format. I used the following command line for execution: umc_video_enc_con.exe m4 -w 1280 -h 720 -f 30 -b 10000000 -i source.yuv -o target.mp4
Could anybody to point me how could I force to encode mpeg 4 in H264 format.
It seems to me from your description that you are attempting to encode to H.264 muxed into a mp4 container. Or do you want to encode to MPEG4 format?
Could please you try the H.264 option "h264" instead with otherwise the same command line.
For extended configurations using the UMC encoder sample you can use the ".par" configurations files as the input to the encoder instead using the -p option.The "readme.htm" documentation file describes the sample application usage options and gives some examples on how to use it.
Let us know how it works. If you still have issues could you please provide us some details on what version of IPP and samples you are using.
IPP samples are not part of Intel Media SDK, so depending on how you progress we might propose continuing the thread in Intel IPP related forum instead.
I tried "h264" option as well. But the problem is that encoded file has the same issue. It's the elementary stream and I am not able to playback the video using most of the wide-spreaded video players. I could play normally only with Elecard StreamEye. VLC plays the file jumpy.
Initially I started with Intel Media SDK to evaluate 4-core Sandy Bridge with 32-bits Windows 7 without any personal coding and because Media SDK doesn't provide any mpeg 4 sample (Only h264 and mpeg2) I switched to IPP 7.0.2.048 (Intel Compiler XE 2011 using VS 2010). But it looks like that your Intel IPP doesn't use the provided mpeg 4 muxer sample at all.
Ok, I understand your issue now. It turns out the "umc_video_enc_con" sample only supports encoding to elementary streams.
Please refer to the IPP samples component inaudio-video-codecs\codec\mpeg4_mux\ and thesamples documentation in audio-video-codecs\doc\ for details on how to use the the MP4 muxing class to package frames into container.
As far as I know there is not an existing IPP sample that combines encoder with a muxer.
Using ffmpeg I was able to create playable mpeg 4 from encoded by Media SDK h264 video.
If I understood correctly Media SDK is using the basis from IPP and designed for Sandy Bridge chip. Correct me if I am wrong. If so could I use the muxer sample from IPP in addition to Media SDK functionality? Or I have to use only IPP? From my validations looks like that IPP functionality works on Sandy Bridge as well.
Yes, you can use the mp4 muxer sample from Intel IPP samples together with Media SDK. Note that the mp4 muxer is classified a sample, it is not a product grade component so there might be advanced features that you might need that are missing. But since the src code is available you are free to modify the components anyway you like.
Intel IPP libraries are designed and optimized to work with Sandy Bridge and our older platforms aswell.
In case you are still interested, Petter Larsson has recently published a white paperdetailing how to combine theIntel IPP mp4 muxer sample with Media SDK encode sample to provide a solution capable of muxing an H.264/AVC elementary stream into an MPEG4 container.