ftyp box的解析
常见的MP4结构图
ftyp box有且只有一个,在mp4文件最开始的地方。它依次包括1个32位的major brand(4个字符),1个32位的minor version(整数)和1个以32位(4个字符)为单位元素的数组compatible brands。这些都是用来指示文件应用级别的信息
ftyp box的解析代码
int
Mp4Meta::mp4_read_ftyp_atom(int64_t atom_header_size, int64_t atom_data_size)
{
int64_t atom_size;
if (atom_data_size > MP4_MIN_BUFFER_SIZE)
return -1;
// box的大小
atom_size = atom_header_size + atom_data_size;
if (meta_avail < atom_size) { // data unsufficient, reasonable from the first level
return 0;
}
ftyp_atom.buffer = TSIOBufferCreate();
ftyp_atom.reader = TSIOBufferReaderAlloc(ftyp_atom.buffer);
TSIOBufferCopy(ftyp_atom.buffer, meta_reader, atom_size, 0);
// 对ftyp box的内部数据不进行解析,直接丢弃
mp4_meta_consume(atom_size);
content_length = atom_size;
ftyp_size = atom_size;
return 1;
}