rtmp協議中的資料被稱為message(訊息)。乙個message包含message head和message body。
在網上傳輸的時候,如果乙個message太大,那麼它將會被分段傳輸。乙個分段被稱為chunk,chunk包含chunk head 和chunk body。
chunk的長度初始長度固定為128個位元組,但是這個值可以在建立連線之後進行修改。
其中chunk的具體的格式如下:
basic header 、chunk msg header、 extend timestamp共同組成了chunk header。
basic header長度為1~3位元組,它包含:fmt,stream id。fmt決定了訊息頭的編碼方式,該字段的長度依賴於stream id,因此basic header的長度是可變的。但是目前普通的basic header的長度一般是1位元組。
一位元組長度的basic header典型構成如下(其中fmt佔2bit):
fmt=0,那麼chunk msg header長度是11
fmt=1,那麼chunk msg header長度是7
fmt=2,那麼chunk msg header長度是3
fmt=3,那麼chunk msg header長度是0
chunk msg header的長度可能為0,3,7,11位元組。它包含了將要傳送的message的相關資訊。它的長度由basic header得type欄位決定。
11位元組的chunk msg header
7位元組的chunk msg header
時間戳部分是相對時間,它的值是和上乙個絕對時間之間的差值
3位元組的chunk msg header
0位元組的chunk msg header
這種型別的chunk從前乙個chunk中得到資訊,當乙個單個訊息拆成多個chunk時,這些chunk除了第乙個以外,其他的都應該使用這種型別
長度可能是0,4位元組。它表示擴充套件的時間戳字段(在前面的chunk msg header中還有乙個叫時間戳的字段)。當時間戳字段等於0xffffff的時候,該字段才被傳送,否則不傳送。
RTMP協議分析 一 RTMP包頭
rtmp協議 封包 參考red5 rtmp協議封包 由乙個包頭和乙個包體組成,包頭可以是4種長度的任意一種 12,8,4,1 byte s 完整的rtmp包頭應該是12bytes,包含了時間戳,head type,amfsize,amftype,streamid資訊,8位元組的包頭只紀錄了時間戳,h...
RTMP協議分析 一 RTMP包頭
rtmp協議 封包 參考red5 rtmp協議封包 由乙個包頭和乙個包體組成,包頭可以是4種長度的任意一種 12,8,4,1 byte s 完整的rtmp包頭應該是12bytes,包含了時間戳,head type,amfsize,amftype,streamid資訊,8位元組的包頭只紀錄了時間戳,h...
RTMP 協議學習總結
rtmp協議是乙個網際網路tcp ip五層體系結構中應用層的協議。rtmp協議中基本的資料單元稱為訊息 message 當rtmp協議在網際網路中傳輸資料的時候,訊息會被拆分成更小的單元,稱為訊息塊 chunk 1 訊息 2 訊息塊 在網路上傳輸資料時,訊息需要被拆分成較小的資料塊,才適合在相應的網...