nalu
buff :nal資料buff
len :nal資料長度
cnt :包數
max_fu_size :每包長度,一般1400
nalu_type :nal型別
cnt = ((len % max_fu_size) == 0) ? (len / max_fu_size) : ((len / max_fu_size) + 1)
nalu_type = buff[0] & 0x1f //得出nal型別
fu indicator = buff[0] & 0xe0 | 0x1c; //0x1c數fu打包型別,28
fu header = ((i == 0) ? (0x80) : 0x00) | /*s*/
((i == (cnt - 1)) ? (0x40) : (0x00)) | /*e*/
nalu_type;
首包:0x7c 0x85
0 是f
11 是nri
11100 是fu type,這裡是28,即fu-a
1 是s,start,說明是分片的第一包
0 是e,end,如果是分片的最後一包,設定為1,這裡不是尾包
0 是r,remain,保留位,總是0
00101 是nal type,這裡是5,說明是關鍵幀
中間的n個包:
0x7c 0x05
0 是f
11 是nri
11100 是fu type,這裡是28,即fu-a
0 是s,start,說明是分片的第一包
0 是e,end,如果是分片的最後一包,設定為1,這裡不是尾包
0 是r,remain,保留位,總是0
00101 是nal type,這裡是5,說明是關鍵幀
尾包:0x7c 0x45
0 是f
11 是nri
11100 是fu type,這裡是28,即fu-a
0 是s,start,說明是分片的第一包
1 是e,end,如果是分片的最後一包,設定為1,這裡是尾包
0 是r,remain,保留位,總是0
00101 是nal type,這裡是5,說明是關鍵幀
sps的nal單元的首位元組為0x67,nal type 為 7。
fu indicator的前三位nal單元的首位元組的前三位,後五位為nal單元的型別,剛好與nal單元的首位元組是一致。所以單包時,rtp包頭後直接跟h264資料即可。
RTP中H264封裝NALU SPS,PPS等
h264使用rtp傳輸時,以sps和pps開頭,如下圖 h264幀由nalu頭和nalu載荷構成,以sps為例如下圖 5 idr影象中的片 6 補充增強資訊單元 sei 7 sps 8 pps 9 序列結束 10 序列結束 上圖中sps的nalu頭中的type值為7,表示sps sequence p...
對H264進行RTP封包原理
1.引言 2.rtp 協議關鍵引數的設定 其中比較關鍵的引數設定解釋如下 1 標示位 m 1 位,該標示位的含義一般由具體的 應用框架 profile 定義,目的在於標記處rtp 流中的重要事件。3 序號 16 位,每傳送乙個 rtp 資料報,序號加 1。接受者可以用它來檢測分組丟失和恢復分組順序。...
H264關於RTP協議的實現
tag h264 rtprfc3984 端和客戶端分別進行了功能模組設計。伺服器端 rtp封裝模組主要是對h 264碼流進行打包封裝 rtcp分析模組負責產牛和傳送rtcp包並分析接收到的rtcp包 qos反饋控制模組則根據rr報文反饋資訊動態的對傳送速率進行調整 傳送緩衝模組則設定埠傳送rtp r...