流媒体跳坑: 01-Mp4 文件解析

1. 比较有用的资料

   https://www.jianshu.com/p/529c3729f357 

 

 

 

2. H264 帧查找

1. stsz/stz2  这个保有所有帧的的列表,当然包含个数

2. stss 这是关键帧列表

3. 还原  帧 --> chunk 的之间的映射(stsc),并用 stco 知道每个 chunk 的位置 (原文说很巧,但真的很麻烦), 

4. 知道 chunk 位置了 就可以推断出每个 帧 数据的位置 

5.  最终的一张表

        public UInt32 index;            //序号
        public UInt32 key_index;        //关键帧的序号

        public long sample_size;        //大小
        public UInt32 duration;         //这个帧是多少时间
        public UInt32 check_index;      //所属的check序号

        public bool bkeyframe;           // 是不是关键帧
        public long offset;            // 文件中所属的偏移

 

 

3. 展示一下:

 

 

跳坑说明:

1. mp4里的h264格式做了转化 原来的 00 00 00 01 变成了 长度, 查了好久才查到,被坑死了! 

2. H264 的任意帧解析时,要按 I+p+p+p+p+p 来解析,不能跳 p 不然会花屏! 

 

posted @ 2020-06-04 11:58  睡觉的虫  阅读(471)  评论(0编辑  收藏  举报