h264流頭型別分辨方法

2021-07-25 20:50:48 字數 749 閱讀 9174

unsigned char *  src  =  (unsigned  char* )bufin +  rtp_headlen;

unsigned char  head1 =   * src; // 獲取第乙個位元組 

unsigned  char  head2 =   * (src + 1 ); // 獲取第二個位元組 

unsigned  char  nal =  head1 &   0x1f; // 獲取fu indicator的型別域, 

unsigned  char  flag =  head2 &   0xe0 ; // 獲取fu header的前三位,判斷當前是分包的開始、中間或結束 

unsigned  char  nal_fua =  (head1 &   0xe0 )  |  (head2 &   0x1f); // fu_a nal 

bool  bfinishframe =   false ;

if  (nal == 0x1c ) // 判斷nal的型別為0x1c=28,說明是fu-a分片 

else   if (flag == 0x40 ) // 結束 

else // 中間 

} else // 單包資料 

unsigned char *  buftmp  = (unsigned  char* )bufin;

if  (buftmp[ 1 ]  &   0x80 )

else 

return  bfinishframe;

}   

H 264碼流結構

a 對照 h.263 的碼流結構 h.263 定義的碼流結構是分級結構,共四層。自上而下分別為 影象層 picture layer 塊組層 gob layer 巨集塊層 macroblock layer 和塊層 block layer psctr ptype pquant cpmpsbi trbdb...

H 264碼流結構

a 對照 h.263的碼流結構 h.263定義的碼流結構是分級結構,共四層。自上而下分別為 影象層 picture layer 塊組層 gob layer 巨集塊層 macroblock layer 和塊層 block layer psc tr ptype pquant cpmpsbi trbdbq...

H264碼流分析

sodb 資料位元串 最原始的編碼資料 rbsp 原始位元組序列載荷 在sodb的後面填加了結尾位元 rbsp trailing bits 乙個bit 1 若干位元 0 以便位元組對齊。ebsp 擴充套件位元組序列載荷 在rbsp基礎上填加了仿校驗位元組 0x03 它的原因是 在nalu加到anne...