rtmp信令交互过程分析七-音视频数据(video audio data)

概述

在传输完元数据onMetaData之后就开始传输音视频数据了,如视频是H.264编码,第一帧视频帧需要是SPS和PPS,后面才是I帧和P帧。

如果是发布端向服务器推流,方向是C->S,如果是播放器向服务器拉流,方向是S->C。

音视频数据包的封装后面的文章在详谈,这里只是讲信令交互。

举例

发布端向服务器推流 C->S

Video Data

RTMP Header
    00.. .... = Format: 0
    ..00 0101 = Chunk Stream ID: 5
    Timestamp: 0
    Body size: 31
    Type ID: Video Data (0x09)
    Stream ID: 1
RTMP Body
    Control: 0x17 (keyframe H.264)
    Video data: 00000000014d401effe1000b674d401e95a0280f69b01001...

Video Data

RTMP Header
    01.. .... = Format: 1
    ..00 0101 = Chunk Stream ID: 5
    Timestamp delta: 0
    Timestamp: 0 (calculated)
    Body size: 14488
    Type ID: Video Data (0x09)
RTMP Body
    Control: 0x17 (keyframe H.264)
    Video data: 010000000000388f00000001674d401e95a0280f69b01000...

Audio Data

RTMP Header
    00.. .... = Format: 0
    ..00 0100 = Chunk Stream ID: 4
    Timestamp: 137
    Body size: 321
    Type ID: Audio Data (0x08)
    Stream ID: 1
RTMP Body
    Control: 0x86 (G711U 11 kHz 16 bit mono)
    Audio data: fffefffffffffffefeffffffffffffffffffffffffffffff...

Video Data

RTMP Header
    01.. .... = Format: 1
    ..00 0101 = Chunk Stream ID: 5
    Timestamp delta: 40
    Timestamp: 40 (calculated)
    Body size: 1383
    Type ID: Video Data (0x09)
RTMP Body
    Control: 0x27 (inter-frame H.264)
    Video data: 010000000000055e0000000106f0023410800000000141e0...

Audio Data

RTMP Header
    10.. .... = Format: 2
    ..00 0100 = Chunk Stream ID: 4
    Timestamp delta: 2
    Timestamp: 139 (calculated)
RTMP Body
    Control: 0x86 (G711U 11 kHz 16 bit mono)
    Audio data: 7f7f7fffffffffffffffffffffffffffffffffffffffffff...
播放器向服务器拉流 S->C

Audio Data

RTMP Header
    00.. .... = Format: 0
    ..00 0110 = Chunk Stream ID: 6
    Timestamp: 52601
    Body size: 321
    Type ID: Audio Data (0x08)
    Stream ID: 1
RTMP Body
    Control: 0x86 (G711U 11 kHz 16 bit mono)
    Audio data: ffffffffffffffffffffffffffffffffffffffffffffffff...

Audio Data

RTMP Header
    01.. .... = Format: 1
    ..00 0110 = Chunk Stream ID: 6
    Timestamp delta: 43
    Timestamp: 52644 (calculated)
    Body size: 321
    Type ID: Audio Data (0x08)
RTMP Body
    Control: 0x86 (G711U 11 kHz 16 bit mono)
    Audio data: ffffffffffffffffffffffffffffffff7f7f7fffff7fffff...

Video Data

RTMP Header
    00.. .... = Format: 0
    ..00 0111 = Chunk Stream ID: 7
    Timestamp: 56128
    Body size: 31
    Type ID: Video Data (0x09)
    Stream ID: 1
RTMP Body
    Control: 0x17 (keyframe H.264)
    Video data: 00000000014d401effe1000b674d401e95a0280f69b01001...

Video Data

RTMP Header
    01.. .... = Format: 1
    ..00 0111 = Chunk Stream ID: 7
    Timestamp delta: 40
    Timestamp: 56168 (calculated)
    Body size: 14478
    Type ID: Video Data (0x09)
RTMP Body
    Control: 0x17 (keyframe H.264)
    Video data: 010000000000388500000001674d401e95a0280f69b01000...

Video Data

RTMP Header
    01.. .... = Format: 1
    ..00 0111 = Chunk Stream ID: 7
    Timestamp delta: 40
    Timestamp: 56208 (calculated)
    Body size: 515
    Type ID: Video Data (0x09)
RTMP Body
    Control: 0x27 (inter-frame H.264)
    Video data: 01000000000001fa0000000106f002180e800000000141e0...