概述
握手之后就是连接(connect),由客户端发起,服务端响应,connect指定的app。
1、C->S : connect
- app:需要connect的app名称
- flashVer
- tcUrl
- fpad
- capabilities
- audioCodecs
- videoCodecs
- videoFunction
2、S->C : Window Acknowledgement Size
指定Window Acknowledgement Size
3、S->C : Set Peer Bandwidth
码流带宽
3、S->C : Set Chunk Size
指定媒体数据拆分成块时的块大小
4、S->C : _result
connect结果是否成功
5、C->S : Window Acknowledgement Size
对服务端的Window Acknowledgement Size的响应
举例
以下为使用wireshark抓包的部分内容:
C->S
AMF0 Command connect(‘live’)
RTMP Header
00.. .... = Format: 0
..00 0011 = Chunk Stream ID: 3
Timestamp: 0
Body size: 220
Type ID: AMF0 Command (0x14)
Stream ID: 0
RTMP Body
String 'connect'
Number 1
Object (9 items)
AMF0 type: Object (0x03)
Property 'app' String 'live'
Property 'flashVer' String 'LNX 9,0,124,2'
Property 'tcUrl' String 'rtmp://192.168.4.158/live'
Property 'fpad' Boolean false
Property 'capabilities' Number 15
Property 'audioCodecs' Number 3191
Property 'videoCodecs' Number 252
Property 'videoFunction' Number 1
Property 'objectEncoding' Number 0
End Of Object Marker
S->C
Window Acknowledgement Size 5000000
RTMP Header
00.. .... = Format: 0
..00 0010 = Chunk Stream ID: 2
Timestamp: 0
Body size: 4
Type ID: Window Acknowledgement Size (0x05)
Stream ID: 0
RTMP Body
Window acknowledgement size: 5000000
S->C
Set Peer Bandwidth 5000000,Dynamic
RTMP Header
00.. .... = Format: 0
..00 0010 = Chunk Stream ID: 2
Timestamp: 0
Body size: 5
Type ID: Set Peer Bandwidth (0x06)
Stream ID: 0
RTMP Body
Window acknowledgement size: 5000000
Limit type: Dynamic (2)
Set Chunk Size 4000
RTMP Header
00.. .... = Format: 0
..00 0010 = Chunk Stream ID: 2
Timestamp: 0
Body size: 4
Type ID: Set Chunk Size (0x01)
Stream ID: 0
RTMP Body
Chunk size: 4000
AMF0 Command _result(‘NetConnection.Connect.Success’)
RTMP Header
00.. .... = Format: 0
..00 0011 = Chunk Stream ID: 3
Timestamp: 0
Body size: 190
Type ID: AMF0 Command (0x14)
Stream ID: 0
RTMP Body
String '_result'
Number 1
Object (2 items)
AMF0 type: Object (0x03)
Property 'fmsVer' String 'FMS/3,0,1,123'
Property 'capabilities' Number 31
End Of Object Marker
Object (4 items)
AMF0 type: Object (0x03)
Property 'level' String 'status'
Property 'code' String 'NetConnection.Connect.Success'
Property 'description' String 'Connection succeeded.'
Property 'objectEncoding' Number 0
End Of Object Marker
C->S
Window Acknowledgement Size 5000000
RTMP Header
00.. .... = Format: 0
..00 0010 = Chunk Stream ID: 2
Timestamp: 0
Body size: 4
Type ID: Window Acknowledgement Size (0x05)
Stream ID: 0
RTMP Body
Window acknowledgement size: 5000000