1. 程式人生 > >關於rtmp封包中資料型別為0x16的封包

關於rtmp封包中資料型別為0x16的封包

使用rtmp協議從FMS3中拉音視訊資料的時候,會收到AMFType=0x16的封包,這種包在FMS2中從沒有出現過.
rtmp包頭的第8個位元組就是AMFType,也就是資料型別。例如AMFType=0x08表示音訊包,AMFType=0x04表示Ping包等等。FMS3中為了實現H.264資料的直播而增加了一個數據型別,這個型別的值為0x16。AMFType=0x16的包中既包含了音訊幀也包含了視訊幀。其中音訊幀和視訊幀是一種新的格式存放的,類似FLV檔案儲存格式,每個音視訊包作為一個Tag,許多的Tag組成了這個AMFType=0x16的資料型別,Tag的格式如下:
用途 大小(Byte) 資料含義
StreamType 1 流的種類(0x08=音訊,0x09=視訊)
MediaSize 3 媒體資料區域大小
TiMMER 3 絕對時間戳,單位毫秒
Reserve 4 保留,值為0
MediaData MediaSize 媒體資料,音訊或視訊
TagLen 4 幀的大小,值為媒體資料區域大小+引數長度(MediaSize+1+3+3+4)