Hello again!

Well, the parser didn't work so far. But I still have a question:

When I deliver let's say four slices of a non-idr-frame to the
decoder: what about the startcodes?
- Prepending 0x000001 to the whole package?
-> (0x000001 + SSSS)
- Prepending 0x000001 to each Slice, but concantenate those four
slices and send them to decoder?
-> 0x000001 S + 0x000001 S +0x000001 S +0x000001 S


Cheers Sven

2010/9/21 Sven Wasmer <[email protected]>:
> Hey Alex and Huy,
>
> As I coded last night a lot, but still got no nice pictures from my
> stream I searched in the ffmpeg documentation and I have found an
> interesting part in ffmpeg:
>
> av_parser_parse2() ->
> http://cekirdek.pardus.org.tr/~ismail/ffmpeg-docs/avcodec_8h.html#691ca0258e91f99297e7726f56d8c247
>
> There is also a little example how to use it and some description,
> which is a rare case in ffmpeg-documentation ;-)
>
> I think it's ment to be there, just for what we are trying. Maybe you
> use it already and I didn't know. But for h264 it should parse the
> incoming buffer and let us get complete frames into an outputbuffer,
> which could be sent to the decoding process.
> I have read in an older post about it, that you should send the h264
> bitstream through the parser before decoding it.
>
> The av_parser_parse2() - call will send some information to the
> AVCodecContext which is important to decode H264.
>
> related stuff:
> av_parser_parse2() ->
> AVCodecParserContext ->
> http://cekirdek.pardus.org.tr/~ismail/ffmpeg-docs/structAVCodecParserContext.html
> AVCodecParser ->
> http://cekirdek.pardus.org.tr/~ismail/ffmpeg-docs/structAVCodecParser.html
> AVCodecContext
>
> I'm just trying to implement this. On success I post the code here!
>
> If you already knrew this, have you tried out? I think, I can't be
> totally wrong.
>
> cheers
> sven
>
> 2010/9/20 Sven Wasmer <[email protected]>:
>> Hi Huy,
>>
>> thanks for the example picture and the link to the viewer. It's very
>> clear to me now. I used the "JM reference encoder" from Heinrich Hertz
>> Institut (http://iphome.hhi.de/suehring/tml/), but I used a
>> preconfigured flag (I forgot to deactivate it), which generates
>> multiple PPS and with your mentioned viewer I can see a structure of
>> SPS, PPS, PPS, PPS, IDR (only 1 slice!). Thus 3 different PPS with
>> different IDs in a row, that MIGHT confuse ffmpeg, if it expects the
>> IDR right after the first PPS, but I'm not sure about that. I reencode
>> and go on with your suggested method ([785] ...)
>>
>> cheers
>> Sven
>>
>> 2010/9/20 Huy Tran <[email protected]>:
>>> Hi Alex and Sven,
>>>
>>> I  sent to you an image about the H.264 AnnexB payload format (file format).
>>>
>>>
>>> http://img13.imageshack.us/img13/7995/h264d.jpg
>>>
>>> I create this bitstream by using x264:  * x264.exe --slices 4 -o output.264
>>> input.yuv 1920x1080*
>>> My bitstream has 5 frames and each frame has 4 slices. Thus I have total 20
>>> slices.
>>> I use "H.264 Video ES Viewer" to check the length, starcode, nal_unit_type
>>> and so on.
>>>
>>> To decode this bitstream in FFmpeg, you have to collect 4 slices data of a
>>> whole frame before passing it to avcodec_decode_video.
>>> You also have to calculate exactly the length of each slices, FFmpeg need it
>>> to decode H.264.
>>>
>>> Hope it helps.
>>> Huy.
>>> _______________________________________________
>>> libav-user mailing list
>>> [email protected]
>>> https://lists.mplayerhq.hu/mailman/listinfo/libav-user
>>>
>>
>
_______________________________________________
libav-user mailing list
[email protected]
https://lists.mplayerhq.hu/mailman/listinfo/libav-user

Reply via email to