zoukankan      html  css  js  c++  java
  • 封装格式---FLV---数据分析

    转自:https://blog.csdn.net/mm792261167/article/details/69396493

    第一帧报文:

    1) 0x46 4c 56字符FLV头,固定字符

    2) 0x01:版本,目前为固定字符

    3)0x05:01表示有视频,04表示有音频,05表示既有视频又有音频。

    4)0x00 00 00 09:flv包头长度

    5)0x00 00 00 00 :这个是第1帧的PreviousTagSize0(前帧长度),因为是第一帧,所以肯定是0;

    6)0x08:帧开头第一字节:0x08表示音频,0x09表示视频,0x12表示脚本信息,放一些关于FLV视频和音频的参数信息,如duration、width、height等。

    7)0x00 00 04:帧payload长度:因为音频第一帧是ASC,所以只有4字节。

    8) 0x 00 00 00 00:timestamp,时间戳

    9) 0x 00 00 00:streamid,流ID

    10) 0x AF 00 13 90:

    音频payload: 0xaf00开头的后面是asc flag, 0xaf01开头的后面是真正的音频数据

    0x13 90,也就是0b0001 0011 1001 0000, 

    ASC flag格式:xxxx xyyy yzzz z000

    x字符: aac type,类型2表示AAC-LC,5是SBR, 29是ps,5和29比较特殊asc flag的长度会变成4;

    y字符:  sample rate, 采样率, 7表示22050采样率

    z字符:  通道数,2是双通道

    11) 0x 00 00 00 0F

    这个还是PreviousTagSize1,上一帧长度15bytes

    12) 0x09 视频类型,新的一帧

    13)0x00 00 22

    视频帧payload长度

    14) 0x00 00 0a 00 

    时间戳:这个地方有个大坑,顺序是:a[3] a[0] a[1] a[2],最后一位是最高位。

    15) 0x00 00 00

    streamid, 流id。

    16) 0x 17 00 

    视频帧开头2字节:

    0x17 00: 表示内容是SPS和PPS

    0x17 01: 表示内容是I-FRAME

    0x27:      表示内容是P-FRAME

    17) 

    0000002bh: 17 00 00 00 00 01 42 C0 1F FF E1 00 0E 67 42 C0 ; ......B??.gB?
    0000003bh: 1F 8C 8D 40 F0 28 90 0F 08 84 6A 01 00 04 68 CE ; .實@??.刯...h?
    0000004bh: 3C 80 ; <€

    第12, 13字节: 0x00 0E是spslen,也就是14字节长度

    跳过14字节后,0x01是pps开始的标识,跳过它。

    0x00 04是ppslen,也就是4个字节,最后0x68 ce 3c 80就是pps。

  • 相关阅读:
    java 实验五保存网页到本地
    Codeforces Round #485 (Div. 2)F. AND Graph
    算法设计分析实验三——贪心求最小生成树
    D. XOR-pyramid Codeforces Round #483 (Div. 2) dp
    C. Finite or not? Codeforces Round #483 (Div. 2)
    Educational Codeforces Round 44 F. Isomorphic Strings
    Educational Codeforces Round 44 (Rated for Div. 2)+E. Pencils and Boxes+树状数组
    BZOJ 1012 [JSOI2008]最大数maxnumber
    BZOJ 1207 [HNOI2004]打鼹鼠(简单dp)
    POJ 3067 Japan(树状数组求逆序对)
  • 原文地址:https://www.cnblogs.com/qing1991/p/10146681.html
Copyright © 2011-2022 走看看