码流分析记录如下:
使用IPhone接收码流 并写入文件
下面是接收到的一帧码流数据:
0X00,0X00,0X00,0X01,0X27,0X64,0X00,0X29,0XAC,0XE8,0X2C,0X4C,0X40,0X00,0X00,0X00,
0X01,0X28,0XEE,0X04,0X08,0XCB,0X00,0X00,0X00,0X01,0X26,0X05,0X1A,0XDC,0X45,0XE9,
0XBD,0XE6,0XD9,0X48,0XB7,0X96,0X2C,0XD8,0X20,0XD9,0X23,0XEE,0XEF,0X56,0X36,0X30,
0X33,0X46,0X52,0X41,0X4D,0X45,0X00,0X80,0X00,0X00,0X00,0X01,0X25,0XB8,0X40,0X5D,
0XD3,0XDC,0XCD,0X54,0X1B,0XAC,0X73,0X17,0XFF,0X0D,0XC6,0XC7,0XFA,0XDA,0X6C,0XA2,
0X07,0X3B,0X8A,0X4B,0XBD,0XF2,0XA0,0X63,0XA5,0X07,0X03,0X7A,0X6C,0XAD,0XD6,0XFC,
当前帧是一个I帧分析如下:
依照NAL unit types in elementary streams
0X00,0X00,0X00,0X01是信息起始部分
之后0x27拆分为:
高1位:默认为0
2-3位:表示重要级别 10
4-8位:表示 NAL unit types in elementary streams 基础码流流 网络抽象层类型 7 表示 SPS 8 表示 PPS 6 表示 Iframe 其他信息在ISO/IEC14496-15 NAL unit types in elementary streams 表 中有详细说明。
SPS PPS IFrame信息 都以 0X00,0X00,0X00,0X01 作为间隔。
从码流中可以获取码流SPS PPS以及是否关键帧等信息,其中当一帧数据头中包含 SPS PPS 则后面必定跟着
I帧信息,同时如果是P帧则帧头中 没有 SPS PPS 则将会直接是 0X00,0X00,0X00,0X01,0X21开头,标识此帧身份。