I'm having issue implementing a transcoder converting from MPEG4- to H.263 or even MPEG4 - MPEG4 (used this for only test purposes) Im only dealing with relativley small images QCIF 176x144 so I dont think its a speed/performance issue (It decodes/encodes relatively fast on an atom processor.
I've got the Decoder working correctly as I can write the Decoding YUV to a file and view it using a standard YUV player, however the Encoder doesn't seem to work. After Encoding when I try to play the encoded file using an external player all I get is a black screen. The encoder doesn't throw up any errors and It seems to encode correctly as I do see a start code for either H263 or MPEG4 when looking at the encoded bitstream but I just cant view the encoded file. I've even tried to Decode the Encoded file with no success.
I've attached my source code plus the paramter files im using, have I done anything incorrect when the Encoder is initialised or I'm i missing a critical step needed for encoding?
(*Note - I've used an external Muxer to generate the final atom needed to play with quick time or any other player but I do have a playe that can play the encoded raw bitstream)
Im totally lost so any help would be appreciated
You may get simple raw compressed video stream from your program. Most of media players will not play that format, they expect some container format, like MPEG transport or system stream, MP4, MOV or AVI formats. You may need to put muxer into your transcoding pipeline to wrap raw compressed video stream to some container format or look for player which support raw format (if I remember it correctly, open source VLC player may work for you)
Your output is exactly the same as mine. I've now sorted the issue now it all has to do with the Decoder Spec Info I was using. I've hard coded Specific info for Profile 2 but the bitstream i'm passing is level 1. I was under the assumption that Level 2 would work fine for level 1 but was incorrect
Thanks for taking the time to look at it