librtmp分析(接收数据包处理)
生活随笔
收集整理的這篇文章主要介紹了
librtmp分析(接收数据包处理)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
RTMP詳細(xì)分析(三次握手)
RTMP詳細(xì)分析(Message 消息,Chunk分塊)
librtmp分析(發(fā)送數(shù)據(jù)包處理)
rtmp協(xié)議中的message的接收涉及有message 組合多個chunk、相對時間戳計算絕對值。
分析一下librtmp庫中的int RTMP_SendPacket(RTMP *r, RTMPPacket *packet, int queue)函數(shù)可以更好的理解。
目錄
- 1、剛開始接收一個字節(jié)的判斷Basic Header占用多少個字節(jié),獲取fmt、csid。
- 2、申請用來保存上一次Packet的Packet*空間和保存上次時間戳空間
- 3、判斷這次Packet是否是RTMP_LARGE_HEADER_SIZE,就知道是否是絕對值。否則將上次的Packet復(fù)制過來,就是同一個消息了。
- 4、讀取message header中的字段。
- 5、讀擴展時間戳
- 6、申請消息體的空間
- 7、讀取消息體
- 8、備份這次Packet,和判斷這次Packet消息是否完整了(一個或多個Packet組成)計算時間戳。
1、剛開始接收一個字節(jié)的判斷Basic Header占用多少個字節(jié),獲取fmt、csid。
2、申請用來保存上一次Packet的Packet*空間和保存上次時間戳空間
3、判斷這次Packet是否是RTMP_LARGE_HEADER_SIZE,就知道是否是絕對值。否則將上次的Packet復(fù)制過來,就是同一個消息了。
4、讀取message header中的字段。
5、讀擴展時間戳
6、申請消息體的空間
7、讀取消息體
8、備份這次Packet,和判斷這次Packet消息是否完整了(一個或多個Packet組成)計算時間戳。
總結(jié)
以上是生活随笔為你收集整理的librtmp分析(接收数据包处理)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。