[FFmpeg-devel] [FFmpeg-soc] GSoC 2008 qualification task TS Muxer

Måns Rullgård mans
Wed Mar 19 13:33:56 CET 2008

Baptiste Coudurier wrote:
> Hi,
> Thorsten Jordan wrote:
>> M?ns Rullg?rd schrieb:
>>> Baptiste Coudurier wrote:
>>>> Hi,
>>>> I don't think extracting duplicated code from mpegenc.c and mpegtsenc.c
>>>> is that hard. H264 muxing might be slightly harder.
>>> Assuming the H264 data is correctly encoded for TS muxing (i.e. has
>>> AUD NAL units and the like), it shouldn't be any harder to mux than
>>> anything else.  All that's needed is a descriptor in the PMT.  The
>>> PES packetisation is no different from MPEG2.
>> Just as reminder: you only have to handle the extra pitfalls of PAFF
>> encoded h264: the stream timebase is e.g. 1/25 even if there are 50
>> fields with PAFF, and there are 50 access units to mux. Either the
>> bottom fields get same pts/dts as the top fields or +1/2 frame duration
>> - in that case it is harder to write the muxer.
>> As far as I know, the two fields of a PAFF-coded frame don't need to be
>> consecutive in the stream, and can be mixed with other frames - so its
>> hard to compute PTS/DTS for a bottom field. Using the values from
>> av_interleaved_write_frame() or AVPacket the bottom field will get the
>> same PTS/DTS as the topfield.
> And here you scared everyone ;)

This is a more fundamental problem, not specific to MPEG TS.  A muxer
should be able to trust the timestamps of the packets it is given.
The problem is that lavf/ffmpeg sometimes gets it wrong.

M?ns Rullg?rd
mans at mansr.com

More information about the ffmpeg-devel mailing list