magicnumber前12位计算mp4规则

动态 未结 0 96
小小草
小小草 LV1 2023年9月23日 23:40 发表
在MP4文件中,Magic Number是一个12字节的固定值,用于标识该文件为MP4格式。Magic Number的前12个字节如下: ``` 00 00 00 18 66 74 79 70 6D 70 34 32 ``` 其中,前4个字节(0x00000018)表示后面的Box的大小(单位为字节),这里是24字节。接下来的4个字节(0x66747970)表示Box的类型,即ftyp(file type)。最后的4个字节(0x6D703432)表示MP4文件的版本号和兼容性。 计算MP4文件的Magic Number可以使用以下代码: ```dart import 'dart:io'; void main() { File file = File('example.mp4'); List bytes = file.readAsBytesSync(); if (bytes.length < 12) { print('Invalid MP4 file.'); return; } int size = ((bytes[0] & 0xFF) << 24) | ((bytes[1] & 0xFF) << 16) | ((bytes[2] & 0xFF) << 8) | (bytes[3] & 0xFF); String type = String.fromCharCodes(bytes.sublist(4, 8)); String version = String.fromCharCodes(bytes.sublist(8, 12)); if (size == 24 && type == 'ftyp' && version == 'mp42') { print('This is an MP4 file.'); } else { print('Unknown file type.'); } } ``` 在上面的示例中,我们首先读取MP4文件的前12个字节,并将其存储在`bytes`列表中。然后,我们提取前4个字节作为Box的大小,并使用位运算将它们组合成一个整数`size`。接下来,我们提取4个字节的Box类型和4个字节的版本号,并将它们转换为字符串类型。最后,我们将`size`、`type`和`version`与预期的Magic Number进行
收藏(0)  分享
相关标签: 智能问答
问题没解决?让AI助手帮你作答 AI助手
0个回复
  • 消灭零回复