美文网首页
WireShark 抓到的 Rtmp video 包介绍

WireShark 抓到的 Rtmp video 包介绍

作者: miniminiming | 来源:发表于2023-03-09 17:03 被阅读0次

    转自:https://my.oschina.net/u/2326611/blog/854463
    https://blog.csdn.net/zero_sama/article/details/69802783

    第一个 rtmp body: avc sequence header

    首先看看包 video data


    image.png

    Message Type id: 0x09 表示视频

    rtmp body 每个字节表示的含义

    字节 1:高四位表示 key frame,1表示关键帧,2表示中间帧,低四位表示视频类型如7表示H264编码格式;上图中的17就表示H264编码格式的关键帧

    字节 2:AVC packet type : 1字节
    0x00: AVC Sequence Header
    0x01: AVC NALU

    字节 3,4,5:0 表示 composition time 3字节, AVC时无意义,全为0

    当AVC packet type为AVC Sequence Header时,接下来就是AVCDecoderConfigurationRecord的内容:

    字节 6:1 表示 version

    字节 7:0x64 表示 profile

    字节 8:0 表示 profile compat

    字节 9:0x1f 表示 level

    字节 10:0xff,6 bits reserved (111111) + 2 bits nal size length - 1 (11)

    字节 11:0xe1,3 bits reserved (111) + 5 bits number of sps (00001)

    字节 12,13:0x1e,nal size

    字节 14:0x67,nal type,其中 7 表示 sps

    字节 44:1 表示 number of pps。其中字节 44 为 0x1e+nal type 的地址

    字节 45,46:5 表示 pps size

    第二个 rtmp body: AVC NALU

    首先看看包 video data


    image.png

    当AVC packet type为AVC NALU(0x01)时:
    audio / video 信息:1字节
    AVC packet type:AVC NALU
    后跟1个或多个NALU
    composition time:3字节,AVC时无意义,全为0
    NALU length:(lengthSizeMinusOne & 3) + 1字节 NALU长度
    NALU Data:
    NALU length:
    NALU Data:

    上面截图中的body size 为 870,包括两个 NAL。

    另外封装的时候去掉了 H264 的 start code prefix 00 00 01,或者 00 00 00 01,该 body 包括两个 NAL,第一个 nal 的大小为 0x02af,nal type 值为 6 表示 SEI,第二个 nal 的大小为 0xaa,nal type 值为 5, 表示 IDR

    相关文章

      网友评论

          本文标题:WireShark 抓到的 Rtmp video 包介绍

          本文链接:https://www.haomeiwen.com/subject/otoaldtx.html