最近需要做乙個rtmp伺服器,著手分析一下rtmp協議,開幹。
rtmp握手
這個推薦一篇文章講解得比較透徹
rtmp協議中除了握手,其他的資料都是通過rtmp包傳送的。
rmtp包完(有完整就當然有不完整了)整結構如下:以下內容參考了
用途大小(byte)
含義head_type1包頭
timer
3時間戳
amfsize
3資料大小
amftype
1資料型別
streamid
4流id
head_type&0x3f表示資料通道id channelid
head_type&0xc0即高兩bit的值,和該rtmp包頭的關係如下
bits
header length
0012 bytes
018 bytes
104 bytes
111 byte
0表示完整的包頭 即12個位元組
1表示8個位元組即不包含streamid
2表示4個位元組 只包含head_type和timer
3表示1個位元組 只包含head_type位元組
RTMP協議分析
rtmp協議封包 由乙個包頭和乙個包體組成,包頭可以是4種長度的任意一種 12,8,4,1 byte s 完整的rtmp包頭應該是12bytes,包含了時間戳,amfsize,amftype,streamid資訊,8位元組的包頭只紀錄了時間戳,amfsize,amftype,其他位元組的包頭紀錄資訊...
RTMP協議分析
用途 大小 byte 含義head type1包頭 timer 3時間戳 amfsize 3資料大小 amftype 1資料型別 streamid 4流id 一 head type 包頭型別 head type占用rtmp包的第乙個位元組,這個位元組裡面記錄了包的型別和包的channelid。hea...
RTMP協議分析
用途 大小 byte 含義head type1包頭 timer 3時間戳 amfsize 3資料大小 amftype 1資料型別 streamid 4流id 一 head type 包頭型別 head type占用rtmp包的第乙個位元組,這個位元組裡面記錄了包的型別和包的channelid。hea...