Re: Identifying h264 frame types?
will--- via gstreamer-devel <[email protected]> Fri, 26 Jan 2024 11:16:30 +0000
| Newsgroups | gmane.comp.video.gstreamer.devel |
|---|---|
| Message-ID | <[email protected]> |
On 2024-01-25 13:54, Tim-Philipp Müller via gstreamer-devel wrote: > Hi, > >> Short version: >> >> Is there a way to identify if a sample/frame provided to an >> appsink >> >> has been produced from an h264 I-frame (or P-frame/B-frame)? > > Encoded H.264 frames coming out of qtdemux should have the DELTA_UNIT > flag set on buffers if it's a P/B frame, and should have the > DELTA_UNIT flag cleared (not set) if it's a key/IDR frame. This will > be based on information in the container. > > After a decoder you can't know if a decoded raw video frame was > generated from a keyframe or not. (If that flag happens to be set > right in some cases that would likely be an accident, not by design, > and you probably can't rely on that). > > Cheers > Tim Hi Tim, Thanks for your feedback! I will explore if it is possible to listen to the frame's metadata after the qtdemux (using one of: a probe / an identity element with handoff / tee ! appsink ) to see if I can use the information from the qtdemux to build my lookup table with one pass. Thanks Stephane too! I'll explore ESExtractor if I'm struggling. All the best, Will.