[FFmpeg-devel] PES packet length

Måns Rullgård mans
Mon Dec 3 10:06:53 CET 2007

Trent Piepho <xyzzy at speakeasy.org> writes:

> On Sun, 2 Dec 2007, [iso-8859-1] M?ns Rullg?rd wrote:
>> "Werner Altewischer" <werner.altewischer at gmail.com> writes:
>> > I notice that muxing an MPEG program stream sometimes gives a
>> > large overhead (up to 5% of total stream size). I looked in the
>> > mpegenc.c file and it uses a constant packet_size of 2048 bytes
>> > for any kind of stream. I assume that increasing the packet size
>> > would lower this overhead.
>> >
>> > - Is this assumption true
>> It's maths.
>> > - Is it possible to increase this packet_size without
>> > consequences and if so
>> It depends.  Such files would not be DVD-compatible, and could very
>> well cause trouble for hardware decoders with small buffers.
>> > what would be the maximum value?
>> 65535
> A video elementary stream, if in a transport stream, is allowed to have
> variable length PES packets (the size field is 0) that are longer than
> 65535 bytes.  It's very common for HD broadcast tv.  One frame per packet
> and the frames can be >> than 64k.

This is possible in a transport stream because the
payload_unit_start_indicator signals the start of a PES packet.  In a
program stream, which the OP asked about, the size must be known in
order to find the end of the packet.

M?ns Rullg?rd
mans at mansr.com

More information about the ffmpeg-devel mailing list