[Libav-user] Detection of the first NAL unit of a primary coded picture in H.264 bitstream
Joshua Kordani
jkordani at lsa2.com
Mon Feb 24 16:51:33 CET 2014
On 2/23/14 5:38 PM, Stanislav Smida wrote:
> Hi everyone,
>
> I believe the problem will be trivial for experienced lib users, but I’m desperate (I’ve never used ffmpeg before). I have raw H.264 bitstream (NALUs as (const void *)bytes) and I need to determine which NALU is access unit (first NALU of the next frame). Can someone give me a hint how to do that?
>
> In <libavcodec/h264.h> I’ve found `H264Context` struct and its fields like `got_first` and `ref_count[]` but I don’t have an idea how to initialize this context and flow particular NALUs through this context.
>
> Thanks, best,
> Stano
>
> _______________________________________________
> Libav-user mailing list
> Libav-user at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/libav-user
The answer depends on the bitstream that you have, but as far as I can
tell, you likely have a bitstream that ships frames in one of two ways.
Those ways are outlined here:
http://en.wikipedia.org/wiki/Network_Abstraction_Layer#Access_Units
This section and the section right after should help you figure out
The second section might be a little obtuse at the moment, but what it
describes is that (I think), if you find an IDR nalu, the decoder should
be able to use the whole nalu for decoding one picture, and that
subsequent i-frames will not refer to i-frames prior to the idr in front
of them, as in (I think), one picture gets shipped as
(idr)(non-idr)(non-idr)(non-idr) ... (idr) <-this begins a new whole
picture. For one complete self-contained frame, you may obviously need
the sps and pps. So far, IDR, non IDR, and the units listed in the
first section of the wiki link area all nalu types, refer to any google
search for the values, or go download the spec.
--
Joshua Kordani
LSA Autonomy
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://ffmpeg.org/pipermail/libav-user/attachments/20140224/078eeced/attachment.html>
More information about the Libav-user
mailing list