这两天研究了RTMP协议,在此对它做一个总结
参考了比较有用的几篇博客,供大家参考:
0×02Unknown
0×03Bytes Readsend every x bytes read by both sides
0×04Pingping is a stream control message, has subtypes
0×05Server BWthe servers downstream bw
0×06Client BWthe clients upstream bw
0×07Unknown
0×08Audio Datapacket containing audio
0×09Video Datapacket containing video data
0x0A_0x0E Unknown
0x0FFLEX_STREAM_SENDTYPE_FLEX_STREAM_SEND
0x10FLEX_SHARED_OBJECTTYPE_FLEX_SHARED_OBJECT
0x11FLEX_MESSAGE TYPE_FLEX_MESSAGE
0×12Notifyan invoke which does not expect a reply
0×13Shared Objecthas subtypes
0×14Invokelike remoting call, used for stream actions too.
0×16StreamData这是FMS3出来后新增的数据类型,这种类型数据中包含AudioData和VideoData
在1-7的消息用于协议控制,这些消息一般是RTMP协议自身管理要使用的消息,用户一般情况下无需操作其中的数据,1和2用于RTMP块流协议,这里的rtmp 数据部分都有固定的大小。
为8,9的消息分别用于传输音频和视频数据。
为15-20的消息用于发送AMF编码的命令,负责用户与服务器之间的交互,比如播放,暂停等等,这部分的数据解析参考:RTMP协议分析 二、AMF数据。