librtmp 控制流程分析

rtmpstart

目前在研究rtmp协议 使用librtmp  ,目前把里面的链接的过程添加了自己熟悉的打印,先做一个备份,稍后整理下。

有些内容控制命令还不清楚是什么;


rtmp_log Parsing... 
rtmp_log Parsed protocol: 0 
rtmp_log Parsed host    : 180.97.33.188 
rtmp_log Parsed port: 8835 

rtmp_log Parsed app     : live 


rtmp_log RTMP_Connect0 socket setup  4       // 握手开始 ,经过三次握手,完成  RTMP_Connect
rtmp_log RTMP_Connect1, ... connected, handshaking 
rtmp_log HandShake: Client -> Server C0 C1 
 
rtmp_log HandShake:  Server -> Client  S0 
 
rtmp_log HandShake: Type Answer   : 03 
rtmp_log HandShake:  Server -> Client  S1 
 
rtmp_log HandShake: Server Uptime : -414916555 
rtmp_log HandShake: FMS Version   : -118.-104.120.-61 
rtmp_log HandShake: Client -> Server C2 
 
rtmp_log HandShake:  Server -> Client  C2 
 

rtmp_log RTMP_Connect1, handshaked    //握手完成 

-------------------------------------------------------


rtmp_log RTMP_SendPacket: fd=4, size=174             //下面是   RTMP_ConnectStream  完成的交互 动作
rtmp_log Invoking connect 
r tmp_log RTMP_ClientPacket, Client<-Server received: PACKET_TYPE_SERVER_BW 
rtmp_log HandleServerBW: server BW = 2500000 
rtmp_log RTMP_ClientPacket, Client<-Server received: PACKET_TYPE_CLIENT_BW 

rtmp_log HandleClientBW: client BW = 2500000 2 
rtmp_log HandleCtrl, Client<-Server received ctrl. type: 0, len: 6 
rtmp_log HandleCtrl, Client<-Server Stream Begin 0 
rtmp_log RTMP_ClientPacket, Client<-Server eceived: RTMP_PACKET_TYPE_INVOKE invoke 189 bytes 
rtmp_log (object begin) 
rtmp_log Property: <Name:           no-name., STRING: _result> 
rtmp_log Property: <Name:           no-name., NUMBER: 1.00> 
rtmp_log Property: <Name:           no-name., OBJECT> 
rtmp_log (object begin) 
rtmp_log Property: <Name:             fmsVer, STRING: FMS/3,0,1,123> 
rtmp_log Property: <Name:       capabilities, NUMBER: 31.00> 
rtmp_log (object end) 
rtmp_log Property: <Name:           no-name., OBJECT> 
rtmp_log (object begin) 
rtmp_log Property: <Name:              level, STRING: status> 
rtmp_log Property: <Name:               code, STRING: NetConnection.Connect.Success> 
rtmp_log Property: <Name:        description, STRING: Connection succeeded> 
rtmp_log Property: <Name:     objectEncoding, NUMBER: 0.00> 
rtmp_log (object end) 
rtmp_log (object end) 
rtmp_log HandleInvoke, server invoking <_result> 
rtmp_log HandleInvoke, received result for method call <connect> 
rtmp_log  Client->Server RTMP_SendServerBW 
rtmp_log RTMP_SendPacket: fd=4, size=4 
rtmp_log Client->Server : sending ctrl. type: 0x0003 
rtmp_log RTMP_SendPacket: fd=4, size=10 
rtmp_log RTMP_SendPacket: fd=4, size=25 
rtmp_log Invoking createStream 
rtmp_log FCSubscribe: 270 
rtmp_log RTMP_SendPacket: fd=4, size=30 
rtmp_log Invoking FCSubscribe 
rtmp_log RTMP_ClientPacket, Client<-Server eceived: RTMP_PACKET_TYPE_INVOKE invoke 30 bytes 
rtmp_log (object begin) 
rtmp_log Property: <Name:           no-name., STRING: onBWDone> 
rtmp_log Property: <Name:           no-name., NUMBER: 0.00> 
rtmp_log Property: NULL 
rtmp_log Property: <Name:           no-name., NUMBER: 8192.00> 
rtmp_log (object end) 
rtmp_log HandleInvoke, server invoking <onBWDone> 
rtmp_log  Client->Server SendCheckBW 
rtmp_log RTMP_SendPacket: fd=4, size=21 
rtmp_log Invoking _checkbw 
rtmp_log RTMP_ClientPacket, Client<-Server eceived: RTMP_PACKET_TYPE_INVOKE invoke 29 bytes 
rtmp_log (object begin) 
rtmp_log Property: <Name:           no-name., STRING: _result> 
rtmp_log Property: <Name:           no-name., NUMBER: 2.00> 
rtmp_log Property: NULL 
rtmp_log Property: <Name:           no-name., NUMBER: 1.00> 
rtmp_log (object end) 
rtmp_log HandleInvoke, server invoking <_result> 
rtmp_log HandleInvoke, received result for method call <createStream> 
rtmp_log  Client->Server SendPlay 
rtmp_log SendPlay, seekTime=0, stopTime=0, sending play: 270 
rtmp_log RTMP_SendPacket: fd=4, size=32 
rtmp_log Invoking play 
rtmp_log Client->Server : sending ctrl. type: 0x0003 
rtmp_log RTMP_SendPacket: fd=4, size=10 
rtmp_log RTMP_ClientPacket, Client<-Server eceived: RTMP_PACKET_TYPE_INVOKE invoke 78 bytes 
rtmp_log (object begin) 
rtmp_log Property: <Name:           no-name., STRING: onFCSubscribe> 
rtmp_log Property: <Name:           no-name., NUMBER: 0.00> 
rtmp_log Property: NULL 
rtmp_log Property: <Name:           no-name., OBJECT> 
rtmp_log (object begin) 
rtmp_log Property: <Name:               code, STRING: NetStream.Play.Start> 
rtmp_log Property: <Name:        description, STRING: 270> 
rtmp_log (object end) 
rtmp_log (object end) 
rtmp_log HandleInvoke, server invoking <onFCSubscribe>                      // 此命令不太明白为什么,以及失败会影响什么;
rtmp_log RTMP_ClientPacket, Client<-Server eceived: RTMP_PACKET_TYPE_INVOKE invoke 120 bytes 
rtmp_log (object begin) 
rtmp_log Property: <Name:           no-name., STRING: _error> 
rtmp_log Property: <Name:           no-name., NUMBER: 4.00> 
rtmp_log Property: NULL 
rtmp_log Property: <Name:           no-name., OBJECT> 
rtmp_log (object begin) 
rtmp_log Property: <Name:              level, STRING: error> 
rtmp_log Property: <Name:               code, STRING: NetConnection.Call.Failed> 
rtmp_log Property: <Name:        description, STRING: call to function _checkbw failed> 
rtmp_log (object end) 
rtmp_log (object end) 
rtmp_log HandleInvoke, server invoking <_error> 
rtmp_log rtmp server sent error no - CRYPTO 
rtmp_log HandleCtrl, Client<-Server received ctrl. type: 0, len: 6 
rtmp_log HandleCtrl, Client<-Server Stream Begin 1 
rtmp_log RTMP_ClientPacket, Client<-Server eceived: RTMP_PACKET_TYPE_INVOKE invoke 138 bytes 
rtmp_log (object begin) 
rtmp_log Property: <Name:           no-name., STRING: onStatus> 
rtmp_log Property: <Name:           no-name., NUMBER: 0.00> 
rtmp_log Property: NULL 
rtmp_log Property: <Name:           no-name., OBJECT> 
rtmp_log (object begin) 
rtmp_log Property: <Name:              level, STRING: status> 
rtmp_log Property: <Name:               code, STRING: NetStream.Play.Reset> 
rtmp_log Property: <Name:        description, STRING: reset...> 
rtmp_log Property: <Name:            details, STRING: 270> 
rtmp_log Property: <Name:           clientid, STRING: 326471_1_6338352> 
rtmp_log (object end) 
rtmp_log (object end) 
rtmp_log HandleInvoke, server invoking <onStatus> 
rtmp_log HandleInvoke, onStatus: NetStream.Play.Reset 
rtmp_log RTMP_ClientPacket, Client<-Server eceived: RTMP_PACKET_TYPE_INVOKE invoke 138 bytes 
rtmp_log (object begin) 
rtmp_log Property: <Name:           no-name., STRING: onStatus> 
rtmp_log Property: <Name:           no-name., NUMBER: 0.00> 
rtmp_log Property: NULL 
rtmp_log Property: <Name:           no-name., OBJECT> 
rtmp_log (object begin) 
rtmp_log Property: <Name:              level, STRING: status> 
rtmp_log Property: <Name:               code, STRING: NetStream.Play.Start> 
rtmp_log Property: <Name:        description, STRING: start...> 
rtmp_log Property: <Name:            details, STRING: 270> 
rtmp_log Property: <Name:           clientid, STRING: 326471_1_6338352> 
rtmp_log (object end) 
rtmp_log (object end) 
rtmp_log HandleInvoke, server invoking <onStatus> 
rtmp_log HandleInvoke, onStatus: NetStream.Play.Start 
rtmp_log RTMP_ClientPacket, Client<-Server received: PACKET_TYPE_INFO notify 24 bytes 
rtmp_log (object begin) 
rtmp_log Property: <Name:           no-name., STRING: |RtmpSampleAccess> 
rtmp_log Property: <Name:           no-name., BOOLEAN: FALSE> 
rtmp_log Property: <Name:           no-name., BOOLEAN: FALSE> 
rtmp_log (object end) 
rtmp_log RTMP_ClientPacket, Client<-Server received: PACKET_TYPE_INFO notify 280 bytes 
rtmp_log (object begin) 
rtmp_log Property: <Name:           no-name., STRING: onMetaData> 
rtmp_log Property: <Name:           no-name., OBJECT> 
rtmp_log (object begin) 
rtmp_log Property: <Name:              width, NUMBER: 320.00> 
rtmp_log Property: <Name:             height, NUMBER: 240.00> 
rtmp_log Property: <Name:          framerate, NUMBER: 0.07> 
rtmp_log Property: <Name:       videocodecid, STRING: avc1> 
rtmp_log Property: <Name:       audiocodecid, STRING: mp4a> 
rtmp_log Property: <Name:             Server, STRING: C++ RTMP Media Server (www.rtmpd.com)> 
rtmp_log Property: <Name:      audiochannels, NUMBER: 2.00> 
rtmp_log Property: <Name:    audiosamplerate, NUMBER: 44100.00> 
rtmp_log Property: <Name:           avclevel, NUMBER: 12.00> 
rtmp_log Property: <Name:         avcprofile, NUMBER: 77.00> 
rtmp_log Property: <Name:          bandwidth, NUMBER: 0.00> 
rtmp_log Property: <Name:             stereo, BOOLEAN: TRUE> 
rtmp_log (object end) 
rtmp_log (object end) 
rtmp_log Metadata: 
rtmp_log   width                 320.00 
rtmp_log   height                240.00 
rtmp_log   framerate             0.07 
rtmp_log   videocodecid          avc1 
rtmp_log   audiocodecid          mp4a 
rtmp_log   Server                C++ RTMP Media Server (www.rtmpd.com) 
rtmp_log   audiochannels         2.00 
rtmp_log   audiosamplerate       44100.00 
rtmp_log   avclevel              12.00 
rtmp_log   avcprofile            77.00 
rtmp_log   bandwidth             0.00 
rtmp_log   stereo                TRUE 

rtmp_log _multiChannel 2 


----------------------------------------------------------------------

已经开始接受数据

Receive:   327Byte, Total:  0.32kB
Receive:   386Byte, Total:  0.70kB
Receive:   357Byte, Total:  1.04kB
Receive:   386Byte, Total:  1.42kB
Receive:   439Byte, Total:  1.85kB
Receive:   475Byte, Total:  2.31kB
(lldb) 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值