Question

I examined some MPEG-4 video headers and saw some byte arrays like below at the beginning:

00 00 01 B0 01 00 00 01 B5 89 13

I know 00 00 01 parts but what exactly B0 B1 and B5 89 13 parts mean? Actually, if I put this byte array infront of an MPEG-4 stream, it works fine.

But I don't know if those values works with different mpeg-4 stream sources ?

Was it helpful?

Solution

0x000001B0 -> Visual Object Sequence Start (VOSS) Code
0x000001B5 -> Visual Object Start (VOS) Code

You can find the complete MPEG-4 elementary video header details at "ISO/IEC 14496-2" documentation. Here are the details you asked for.

Visual Object Sequence Start (VOSS) Code

-> 4 bytes visual object sequence start code = long hex value of 0x000001B0
-> 8 bits profile/level indicator = 1 byte unsigned number

Visual Object Start (VOS) Code

-> 4 bytes visual object start code = long hex value of 0x000001B5
-> 1 bit has id marker flag = 1/4 nibble flag

_ID_Marker_Section_
-> 4 bits version id = 1 nibble unsigned value - only if marker is true
  - version id types are ISO 14496-2 = 1
-> 3 bits visual object priority = 3/4 nibble unsigned value - only if marker is true
  - priorities are 1 through to 7

-> 4 bits visual object type = 1 nibble unsigned value
  - types are video = 1 ; still texture = 2 ; mesh = 3 ; face = 4
-> 1 bit video signal type = 1/4 nibble flag
  - NOTE: if this is false Y has a sample range of 16 through to 235
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top