[FFmpeg-devel] mpegtsenc T-STD compliance

Kieran Kunhya kierank at ob-encoder.com
Wed Jan 23 01:25:19 CET 2013

In MPEG-2 you have to stick to the vbv model you are given. In
MPEG-4/AVC you have some freedom with your muxing.

> Well, right now the muxer seems to be capable of generating a valid VBR or CBR transport stream with correct PCRs. Once you are there, enforcing T-STD compliance seems to be a matter of applying the correct offset to each PCR you generate (and add null packets as needed in CBR mode). But of course this may be overly optimistic, I'm sure you have given this much more thought than me.

How are you measuring PCR accuracy in VBR mode? PCR accuracy is only
well-defined in CBR mode.

> Regarding invalid inputs, I guess all we can do is error out. The T-STD models are meant to ensure the encoder generates a stream any compliant decoder can handle, so I think being unforgiving with invalid inputs or use cases is the right thing to do.

This is tricky because you don't know whether the timestamps are good
or not. It's easy when you are getting data from an encoder.

I am not sure how current packet writing calls in libavformat can
follow T-STD since each lavf packet needs to be split up and muxed
sequentially with other packets.

More information about the ffmpeg-devel mailing list