RTMP 协议

RTMP 协议在这里插入图片描述

Real Time Messaging Protocol (Handshake C0+C1)
    Handshake C0+C1
        Protocol version: 03
        Handshake data: 9bb6b6520000000096000956faa30569f3a75071a37c4266…
Real Time Messaging Protocol (Handshake S0+S1+S2)
    Handshake S0+S1+S2
        Protocol version: 03
        Handshake data: 9bb6b6520000000096000956faa30569f3a75071a37c4266…
        Handshake data: 9bb6b6520000000096000956faa30569f3a75071a37c4266…
Real Time Messaging Protocol (Handshake C2)
    Handshake C2
        Handshake data: 9bb6b6520000000096000956faa30569f3a75071a37c4266…
Real Time Messaging Protocol (Set Chunk Size 4096)
    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: 4096
Real Time Messaging Protocol (AMF0 Command connect('live'))
    Response to this call in frame: 1021
    RTMP Header
        00.. .... = Format: 0
        ..00 0011 = Chunk Stream ID: 3
        Timestamp: 0
        Body size: 179
        Type ID: AMF0 Command (0x14)
        Stream ID: 0
    RTMP Body
        String 'connect'
            AMF0 type: String (0x02)
            String length: 7
            String: connect
        Number 1
            AMF0 type: Number (0x00)
            Number: 1
        Object (5 items)
            AMF0 type: Object (0x03)
            Property 'app' String 'live'
            Property 'type' String 'nonprivate'
            Property 'flashVer' String 'FMLE/3.0 (compatible; FMSc/1.0)'
            Property 'swfUrl' String 'rtmp://10.155.32.220:1935/live'
            Property 'tcUrl' String 'rtmp://10.155.32.220:1935/live'
            End Of Object Marker
Real Time Messaging Protocol (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
Real Time Messaging Protocol (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)
Real Time Messaging Protocol (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
Real Time Messaging Protocol (AMF0 Command _result('NetConnection.Connect.Success'))
    Call for this response in frame: 1018
    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'
            AMF0 type: String (0x02)
            String length: 7
            String: _result
        Number 1
            AMF0 type: Number (0x00)
            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
Real Time Messaging Protocol (AMF0 Command releaseStream('1'))
    RTMP Header
        01.. .... = Format: 1
        ..00 0011 = Chunk Stream ID: 3
        Timestamp delta: 0
        Timestamp: 0 (calculated)
        Body size: 30
        Type ID: AMF0 Command (0x14)
    RTMP Body
        String 'releaseStream'
            AMF0 type: String (0x02)
            String length: 13
            String: releaseStream
        Number 2
            AMF0 type: Number (0x00)
            Number: 2
        Null
            AMF0 type: Null (0x05)
        String '1'
            AMF0 type: String (0x02)
            String length: 1
            String: 1
Real Time Messaging Protocol (AMF0 Command FCPublish('1'))
    RTMP Header
        01.. .... = Format: 1
        ..00 0011 = Chunk Stream ID: 3
        Timestamp delta: 0
        Timestamp: 0 (calculated)
        Body size: 26
        Type ID: AMF0 Command (0x14)
    RTMP Body
        String 'FCPublish'
            AMF0 type: String (0x02)
            String length: 9
            String: FCPublish
        Number 3
            AMF0 type: Number (0x00)
            Number: 3
        Null
            AMF0 type: Null (0x05)
        String '1'
            AMF0 type: String (0x02)
            String length: 1
            String: 1
Real Time Messaging Protocol (AMF0 Command createStream())
    Response to this call in frame: 1026
    RTMP Header
        01.. .... = Format: 1
        ..00 0011 = Chunk Stream ID: 3
        Timestamp delta: 0
        Timestamp: 0 (calculated)
        Body size: 25
        Type ID: AMF0 Command (0x14)
    RTMP Body
        String 'createStream'
            AMF0 type: String (0x02)
            String length: 12
            String: createStream
        Number 4
            AMF0 type: Number (0x00)
            Number: 4
        Null
            AMF0 type: Null (0x05)
Real Time Messaging Protocol (AMF0 Command _result())
    Call for this response in frame: 1025
    RTMP Header
        00.. .... = Format: 0
        ..00 0011 = Chunk Stream ID: 3
        Timestamp: 0
        Body size: 29
        Type ID: AMF0 Command (0x14)
        Stream ID: 0
    RTMP Body
        String '_result'
            AMF0 type: String (0x02)
            String length: 7
            String: _result
        Number 4
            AMF0 type: Number (0x00)
            Number: 4
        Null
            AMF0 type: Null (0x05)
        Number 1
            AMF0 type: Number (0x00)
            Number: 1
Real Time Messaging Protocol (AMF0 Command publish('1'))
    RTMP Header
        00.. .... = Format: 0
        ..00 0100 = Chunk Stream ID: 4
        Timestamp: 0
        Body size: 31
        Type ID: AMF0 Command (0x14)
        Stream ID: 1
    RTMP Body
        String 'publish'
            AMF0 type: String (0x02)
            String length: 7
            String: publish
        Number 5
            AMF0 type: Number (0x00)
            Number: 5
        Null
            AMF0 type: Null (0x05)
        String '1'
            AMF0 type: String (0x02)
            String length: 1
            String: 1
        String 'live'
            AMF0 type: String (0x02)
            String length: 4
            String: live
Real Time Messaging Protocol (AMF0 Command onStatus('NetStream.Publish.Start'))
    RTMP Header
        00.. .... = Format: 0
        ..00 0101 = Chunk Stream ID: 5
        Timestamp: 0
        Body size: 105
        Type ID: AMF0 Command (0x14)
        Stream ID: 1
    RTMP Body
        String 'onStatus'
            AMF0 type: String (0x02)
            String length: 8
            String: onStatus
        Number 0
            AMF0 type: Number (0x00)
            Number: 0
        Null
            AMF0 type: Null (0x05)
        Object (3 items)
            AMF0 type: Object (0x03)
            Property 'level' String 'status'
            Property 'code' String 'NetStream.Publish.Start'
            Property 'description' String 'Start publishing'
            End Of Object Marker
Real Time Messaging Protocol (AMF0 Data @setDataFrame())
    RTMP Header
        00.. .... = Format: 0
        ..00 0100 = Chunk Stream ID: 4
        Timestamp: 0
        Body size: 399
        Type ID: AMF0 Data (0x12)
        Stream ID: 1
    RTMP Body
        String '@setDataFrame'
            AMF0 type: String (0x02)
            String length: 13
            String: @setDataFrame
        String 'onMetaData'
            AMF0 type: String (0x02)
            String length: 10
            String: onMetaData
        ECMA array (20 items)
            AMF0 type: ECMA array (0x08)
            Array length: 20
            Property 'duration' Number 0
            Property 'fileSize' Number 0
            Property 'width' Number 1280
            Property 'height' Number 720
            Property 'videocodecid' String 'avc1'
            Property 'videodatarate' Number 2500
            Property 'framerate' Number 30
            Property 'audiocodecid' String 'mp4a'
            Property 'audiodatarate' Number 160
            Property 'audiosamplerate' Number 44100
            Property 'audiosamplesize' Number 16
            Property 'audiochannels' Number 2
            Property 'stereo' Boolean true
            Property '2.1' Boolean false
            Property '3.1' Boolean false
            Property '4.0' Boolean false
            Property '4.1' Boolean false
            Property '5.1' Boolean false
            Property '7.1' Boolean false
            Property 'encoder' String 'obs-output module (libobs version 24.0.6)'
            End Of Object Marker
Real Time Messaging Protocol (Audio Data)
    RTMP Header
        00.. .... = Format: 0
        ..00 0100 = Chunk Stream ID: 4
        Timestamp: 0
        Body size: 4
        Type ID: Audio Data (0x08)
        Stream ID: 1
    RTMP Body
        Control: 0xaf (HE-AAC 44 kHz 16 bit stereo)
        Audio data: 001210
Real Time Messaging Protocol (Video Data)
    RTMP Header
        00.. .... = Format: 0
        ..00 0100 = Chunk Stream ID: 4
        Timestamp: 0
        Body size: 45
        Type ID: Video Data (0x09)
        Stream ID: 1
    RTMP Body
        Control: 0x17 (keyframe H.264)
        Video data: 000000000164001fffe100196764001facd9405005ba1000…
Real Time Messaging Protocol (Video Data)
    RTMP Header
        01.. .... = Format: 1
        ..00 0100 = Chunk Stream ID: 4
        Timestamp delta: 33
        Timestamp: 33 (calculated)
        Body size: 49
        Type ID: Video Data (0x09)
    RTMP Body
        Control: 0x27 (inter-frame H.264)
        Video data: 0100004200000028419e42426f00000300006d1eaa0001ad…
Real Time Messaging Protocol (AMF0 Command FCUnpublish())
    RTMP Header
        01.. .... = Format: 1
        ..00 0011 = Chunk Stream ID: 3
        Timestamp delta: 0
        Timestamp: 25480792 (calculated)
        Body size: 28
        Type ID: AMF0 Command (0x14)
    RTMP Body
        String 'FCUnpublish'
            AMF0 type: String (0x02)
            String length: 11
            String: FCUnpublish
        Number 6
            AMF0 type: Number (0x00)
            Number: 6
        Null
            AMF0 type: Null (0x05)
        String '1'
            AMF0 type: String (0x02)
            String length: 1
            String: 1
Real Time Messaging Protocol (AMF0 Command deleteStream())
    RTMP Header
        01.. .... = Format: 1
        ..00 0011 = Chunk Stream ID: 3
        Timestamp delta: 0
        Timestamp: 25480792 (calculated)
        Body size: 34
        Type ID: AMF0 Command (0x14)
    RTMP Body
        String 'deleteStream'
            AMF0 type: String (0x02)
            String length: 12
            String: deleteStream
        Number 7
            AMF0 type: Number (0x00)
            Number: 7
        Null
            AMF0 type: Null (0x05)
        Number 1
            AMF0 type: Number (0x00)
            Number: 1
Real Time Messaging Protocol (AMF0 Command onStatus('NetStream.Unpublish.Success'))
    RTMP Header
        00.. .... = Format: 0
        ..00 0101 = Chunk Stream ID: 5
        Timestamp: 0
        Body size: 108
        Type ID: AMF0 Command (0x14)
        Stream ID: 1
    RTMP Body
        String 'onStatus'
            AMF0 type: String (0x02)
            String length: 8
            String: onStatus
        Number 0
            AMF0 type: Number (0x00)
            Number: 0
        Null
            AMF0 type: Null (0x05)
        Object (3 items)
            AMF0 type: Object (0x03)
            Property 'level' String 'status'
            Property 'code' String 'NetStream.Unpublish.Success'
            Property 'description' String 'Stop publishing'
            End Of Object Marker
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值