[FFmpeg-user] pict_type="I"

Oliver Fromme oliver at fromme.com
Wed Jul 17 12:47:37 EEST 2024


Mark Filipak wrote:
 > Thank you for your summary, Oliver. That has really, really helped. As you know, H.264 is 
 > prescriptive, not descriptive, which makes understanding it very difficult.
 > 
 > It also lacks the strings: "I[- ]frame" "P[- ]frame" "B[- ]frame" "I[- ]picture" "P[- ]picture" "B[- 
 > ]picture" and "GOP.+".

Well, reading the standard document itself is probably not a very
good idea, unless you're already an expert and about to implement
your own software from scratch.

But there are heaps of secondary literature.  Just use the internet
search engine of your choice -- it's actually difficult *not* to find
useful information.

BTW, terms like "I-frame" are generic for video compression, not
specific to H.264 or even MPEG.  The standard itself might not call
it like that, but the concept is there.

 > I've taken my 40 second clip of a Criterion mastered video and am trying to parse it. The TS packets 
 > are 192 bytes.

TS packets are 188 bytes maximum.  It would have been helpful if you
had included a hexdump of the first few packets of your file.

 > What are the 4 bytes, 0..3, that precede the 0x47 sync byte? I can't find any documentation on them. 
 > What can you tell me?

My guess is that you actually have a so-called M2TS file.  These are
used on Blu-ray disks, some DV cameras and similar equipment that
uses AVCHD.

In that case, each TS packet is preceded by 4 bytes that contain
2 bits of copy permission flags and 30 bits ATS (arrival time stamp)
with 27 MHz resolution.  Note that the ATS restarts every 40 seconds,
and it's *not* related to the DTS/PTS of the actual video.

The reason for that is that the MPEG-TS format is actually intended
to be used for broadcast at constant bitrates, but it's not optimized
for storage, such as on Blu-ray.  Therefore, M2TS uses a variable
bitrate.  In order to reconstruct a transport stream that is suitable
for broadcast, the additional ATS information is required.  It can be
ignored for ordinary playback.

Best regards
 -- Oliver


More information about the ffmpeg-user mailing list