Some problem for decode/encode H264, MPEG-2 video, and MediaSDK utility

Some problem for decode/encode H264, MPEG-2 video, and MediaSDK utility

Hi,

I have some problems as follows, please help, thanks a lot.

1. When I try to implement H264 decode function in "GraphicEdit" tool, some video sources occur error.

Description:

When I try to link the [video source]->[Output] and [Intel MediaSDK MP4 Splitter]->[Input], some video sources occur error.

The error message is "80040217: No combination of intermediate filters could be found to make the connection".

It seems the [Intel MediaSDK MP4 Splitter] can not identify this source format, but this source is H264 video format.

Are there any format limitations for H264 video to be decode ?

Why some H264 videos can be decode formally, some can not ?

2. I want to decode/encode H264,MPEG-2 video and do not display out in any media player.

Are there any utility that it can only do as follows procedures ?

H264 video source

-> decode H264 bit streams to raw frames

-> encode raw frames to MPEG-2 bit streams

-> decode MPEG-2 bit streams to raw frames

-> raw frames file

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

Hi raywu,

The Media SDK has a few samples that should help.

- Sample_multi_transcode - it will allow you to decode a h264 file, re-encode it to a mpeg then write it to a file. No rendering to the display. Has a few command line settings that let you tweek the encoder

- Sample_Dshow - This gui application has a limited set of transcode profiles but it uses DShow. You can inspect the active filters by using Connect to remote Graph in GraphEdit (Make sure you register proppage.dll)

- Sample_Decode - To decode h264 and MPEG2 bitstreams to raw frames

- Sample_Encode To encode ream frames to MPEG-2 bit streams

The muxers, and splitters that get registered with the Media SDK are only part of the distribution so that Sample_DShow can be guaranteed to create a complete graph. They are not a robust filter solution. However, I was able to create the graph below that solves you query:

Hope this helps
-Eric

Hi Eric,

Thanks for your help,
Could you give me your test video file ?

There are still some problem when I transcode my video file.

In Media SDKdecode samplecode source,
"pipeline_decode.cpp" -> "CDecodingPipeline::InitMfxParams()" -> "sts = m_pmfxDEC->DecodeHeader(&m_mfxBS, &m_mfxVideoParams);"

When the program runs to this function; MFXVideoDECODE_DecodeHeader
The sts parameter will equal to MFX_ERR_MORE_DATA many times in this function loop, and finally the program will terminate.
Why my test video cause the sts parameter equal to MFX_ERR_MORE_DATA many times ?

Thanks
Ray Wu

Hi Ray,

My source file is Transformers Revenge of the Fallen trailer that I downloaded off the web (Apple site I think). I then took that file and Demuxed It using Elecards XMuxer Pro software the evaluation version can also be downloaded.

About the repetitive More Data problem.. Check the bitstream syntax. You are going to need an Annex B formatted bitstream. If I recall correctly, using a NAL formatted AVC1 bitstream type (w/o startcodes in it) could cause that problem. I wrote a blog on this a while back: http://software.intel.com/en-us/blogs/2010/05/18/media-sdk-mpc-and-avc/ Try using XMuxer to create different bitstreams, try them and let me know.

-Eric

Hi Eric,

Sorry, thereis aquestions for Media SDK.

1. What's the application that Intel use to demonstrate the Hardware acceleration with Media SDK transcoder ? (on Intel Q67(QM67) chipset and sandy bridge CPU)

Note :
1. Cyberlink Media Espresso 6.0 version not support DXVA enabled on Intel Q67 chipset + sandy bridge CPU.

We use a number of tools and applications to demonstrate the hardware acceleration paths. Starting with the Media SDK samples. Theres a whole host of usages and settings in those tools to demonstrate the MSDK using the hardware acceleration.

We also work closely with our partners to enable their applications with the new features. For instance, Cyberlink We showed Cyberlink running SNB acceleration at IDF. This was an early-pre released version of the application that will be available in the future.

Hope this helps

Eric

Hi Eric,

I've got the similar problem with MFXVideoDECODE_DecodeHeader, in the Media SDK 2014, sample_decode.

(file:pipeline_decode.cpp, function: InitMfxParams)

When I decode a raw h264 stream with sample_decode, using the params as"h264 -i in.h264 -o out.yuv -hw -calc_latency", the decoder will be entry the endless loop for "DecodeHeader" in the function "CDecodingPipeline::InitMfxParams". But when I use the params as "h264 -i in.h264 -o out.yuv -hw", it works well.  

And I found that the object "m_FileReader" will be set as "CH264FrameReader" when using -calc_latency , otherwise it will be set as "CSmplBitstreamReader" .

How can I fix the problem?

Leave a Comment

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