- Marquer comme nouveau
- Marquer
- S'abonner
- Sourdine
- S'abonner au fil RSS
- Surligner
- Imprimer
- Signaler un contenu inapproprié
hello,
I have a H264 decoder based on UMC codecs, and it works fine with avc in AVI files. But when I try to decode AVC samples demuxed from a .mov file, I get errors : GetInfo() doesn't return UMC_OK and my samples aren't decoded. My stream is in AVC's main profile and the init phase of the decoder returns UMC_OK.
Is there any difference between AVC in MOV and in AVI, so that the decoder needs a special initialization ?
Thanks in advance
Aymeric
I have a H264 decoder based on UMC codecs, and it works fine with avc in AVI files. But when I try to decode AVC samples demuxed from a .mov file, I get errors : GetInfo() doesn't return UMC_OK and my samples aren't decoded. My stream is in AVC's main profile and the init phase of the decoder returns UMC_OK.
Is there any difference between AVC in MOV and in AVI, so that the decoder needs a special initialization ?
Thanks in advance
Aymeric
Lien copié
9 Réponses
- Marquer comme nouveau
- Marquer
- S'abonner
- Sourdine
- S'abonner au fil RSS
- Surligner
- Imprimer
- Signaler un contenu inapproprié
Hi Aymetric,
AVI and MOV actually is different formats, you need to use appropriate demuxer (splitter). I think that MOV is similar to MP4 format, so you can try to use MP4Splitter from UMC.
Regards,
Vladimir
- Marquer comme nouveau
- Marquer
- S'abonner
- Sourdine
- S'abonner au fil RSS
- Surligner
- Imprimer
- Signaler un contenu inapproprié
hi Vladimir,
Thanks for your reply.
Actually I think the problem doesn't come from the demuxer : I have written a demuxer for mov files which correctly extract frames - I validated it with frames encoded in DV or MJpeg and decoded with UMC codecs.
Codecs like mpeg-4 or H264 don't work, and that's why I was wondering if the encoding in these codecs was the sasme in AVI and MOV files.
regards,
Aymeric
Thanks for your reply.
Actually I think the problem doesn't come from the demuxer : I have written a demuxer for mov files which correctly extract frames - I validated it with frames encoded in DV or MJpeg and decoded with UMC codecs.
Codecs like mpeg-4 or H264 don't work, and that's why I was wondering if the encoding in these codecs was the sasme in AVI and MOV files.
regards,
Aymeric
- Marquer comme nouveau
- Marquer
- S'abonner
- Sourdine
- S'abonner au fil RSS
- Surligner
- Imprimer
- Signaler un contenu inapproprié
Hi Aymeric,
If you compress those streams with the same compression parameters there should not be difference in encoder bitstream (doesn't matter what container do you use)
Regards,
Vladimir
- Marquer comme nouveau
- Marquer
- S'abonner
- Sourdine
- S'abonner au fil RSS
- Surligner
- Imprimer
- Signaler un contenu inapproprié
Hi,
I found the reason : decoders need some metadata to decompresse frames - which is called "extra-data" in ffmpeg, and these data are not contained in every frame in MOV as they are in AVI container. So we just have to get these data once, and add them in every frame before decoding.
Regards,
Aymeric
I found the reason : decoders need some metadata to decompresse frames - which is called "extra-data" in ffmpeg, and these data are not contained in every frame in MOV as they are in AVI container. So we just have to get these data once, and add them in every frame before decoding.
Regards,
Aymeric
- Marquer comme nouveau
- Marquer
- S'abonner
- Sourdine
- S'abonner au fil RSS
- Surligner
- Imprimer
- Signaler un contenu inapproprié
A little old thread., but I have the same problem, could you explain where should this 'extra-data' go. Do you just add it before(after?) compressed data and call GetFrame() ?
- Marquer comme nouveau
- Marquer
- S'abonner
- Sourdine
- S'abonner au fil RSS
- Surligner
- Imprimer
- Signaler un contenu inapproprié
The data/nal units you're looking for are called the Sequence Parameter sets (SPS) and Picture Parameter Sets (PPS). To Initialize the Intel H.264 Decoder, you need to feed it the sps, pps, and first i-frame first. Then you're good to go.
- Marquer comme nouveau
- Marquer
- S'abonner
- Sourdine
- S'abonner au fil RSS
- Surligner
- Imprimer
- Signaler un contenu inapproprié
Thanks for answer.
I still can't get it to work.
Do I just put SPS/PPS in buffer and after this first i-frame and call Init() ?
Or fist call Init() with just SPS/PPS ?
Now I take SPS,PPS append first i-frame and call Init().
Init() return UMC_OK but GetFrame() always UMC_ERR_NOT_ENOUGH_DATA.
Do SPS/PPS need to be in some specific format (need some headers) ?
I still can't get it to work.
Do I just put SPS/PPS in buffer and after this first i-frame and call Init() ?
Or fist call Init() with just SPS/PPS ?
Now I take SPS,PPS append first i-frame and call Init().
Init() return UMC_OK but GetFrame() always UMC_ERR_NOT_ENOUGH_DATA.
Do SPS/PPS need to be in some specific format (need some headers) ?
- Marquer comme nouveau
- Marquer
- S'abonner
- Sourdine
- S'abonner au fil RSS
- Surligner
- Imprimer
- Signaler un contenu inapproprié
I usually Init with no extra data p_data field. Then I feed the frames to the decoder like: GetFrame(mySps,NULL);
GetFrame(myPPS,NULL);
GetFrame(myIFrame,NULL);
You may need to handle specially for access units too.
Dan
GetFrame(myPPS,NULL);
GetFrame(myIFrame,NULL);
You may need to handle specially for access units too.
Dan
- Marquer comme nouveau
- Marquer
- S'abonner
- Sourdine
- S'abonner au fil RSS
- Surligner
- Imprimer
- Signaler un contenu inapproprié
Hi Dan,
Could you help me a bit?
I have a quicktime movie, containing a H264 stream (the MP4Splitter recognizes it). But i'm unable to figure out where to get the SPS, PPS an IFrame info you talk about.
Regards,
Matthijs ter Woord
Ps, i'm relatively new to IPP in general.

Répondre
Options du sujet
- S'abonner au fil RSS
- Marquer le sujet comme nouveau
- Marquer le sujet comme lu
- Placer ce Sujet en tête de liste pour l'utilisateur actuel
- Marquer
- S'abonner
- Page imprimable