流媒体跳坑: 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 不然会花屏!
作者微信号: xh66i88