传送门:MP4 文档 P31页
这个 Box 包含的信息是对应 Chunk 的在文件里的偏移量,然后根据其它表的关联关系就可以读取每个 Sample 的数据。
结构图:
![](./assets/Stco Box.png)
这里对应 count 就是总的 Chunk 数量,里面对应的是每一个 Chunk Offset。
其中该 Box 是 Full Box,后面有四字节的 version 和 flag 字段,其中 flag 默认值用0,这里分析略过,这里就直接解析 Data 的字段。
字段 | 大小 | 实际值(16进制) | 含义 |
---|---|---|---|
entry count | 4 | 00 00 00 62 | chunk的总个数 |
chunk offset | 4 | 每个chunk在文件中的偏移量(这里的偏移量不是相对的,都是与开头的偏移量) |
// BaseBox.h
// ...
// 其他 Box 的定义
class TimeStcoBox : public BaseBox {
public:
Timebyte version = 0;
Timebyte flags = 0;
unsigned int entry_count=0; // chunk的总个数
unsigned int chunk_offset = 0;
TimeStcoBox(BoxHeader h, Timebyte * d): BaseBox(h, d){};
};
实现
// TimeStcoBox.cpp