tags:

views:

1518

answers:

2
0000 0109 1000 0001 6742 0020 e900 800c
3200 0001 68ce 3c80 0000 0001 6588 801a

As far as I know, 0000 01 is the start prefix code to identify a NAL Unit. What does "09 .... " mean? Is it the header type byte?

A: 

That defines the packet type. The format is:

+---------------+
|0|1|2|3|4|5|6|7|
+-+-+-+-+-+-+-+-+
|F|NRI|  Type   |
+---------------+

Are you sure this is an h.264 NAL header? From what you provided, this doesn't appear to be the header with the context you provided.

Matt
I used a video stream analysis tool to analyze the video stream and it marks the boundary of frames. I picked up the beginning of an I frame.And the prefix code "00 00 01" also showed that this is a NAL.
ablmf
That prefix code doesn't show that it is a NAL because 0000 0109 is 8 bytes (64 bits) and no mangling of the first 16 bytes will give the prefix code indicating it's NAL. Remember, you're looking at a hex dump but all the specs and definitions refer to binary.
Matt
err, I failed at my math in the above comment, 0000 0109 is 4 bytes, not 8 (and 32 bits, not 64), but still will not mangle out to the prefix code you're looking for.
Matt
+1  A: 

0x000001 is the NAL start prefix code (it can also be 0x00000001, depends on the encoder implementation). 0x09 is 0b00001001, which means F=0, NRI = 0, and type is 0b01001. That particular type is an access unit delimiter. Notice that it is immediately followed by another NAL unit defined by 0x67, which is a NAL type of 7, which is the sequence parameter set.

There's also the picture parameter set:

00 0001 68...

...and the start of a keyframe:

0000 0001 65...

kidjan