NAL單元類型定義(圖從《新一代視頻壓縮編碼標準H.264》摘錄):
假設一段h264的碼流爲:00 00 00 01 41 E6 60……
其中的00 00 00 01爲起始碼,而起始碼之後的下一個字節就可以檢測出這一幀的類型。
在上面的碼流中起始碼之後的字節位 0x41,換算成二進制爲 0100 0001。
注:我解讀順序爲從左往右算。
對於0100 0001
(1)第1位禁止位,值爲1表示語法出錯
(2)第2~3位爲參考級別
(3)第4~8爲是nal單元類型,在此處爲 0 0001換算成十進制爲1。根據上圖可知道這段碼流是【不分區、非IDR圖像的片】,在baseline的檔次中就是P幀,因爲baseline沒有B幀。
如果是另一段碼流:00 00 00 01 65 E8……
那麼根據0x65字節(0110 0101)根據後5位換算十進制爲5,也就是【IDR圖像中的片】,即I幀。
用代碼的方式可以這樣寫,int type = 0x65 & 0x1f,然後根據type在表中查找即可獲得需要的結果。