← 返回首页

MSM 文件头规范

Mini Sample/media 容器格式 · v1.0 / v2.0 / v3.0

属性值
扩展名.msm
MIME 类型audio/msm(非官方)
魔数字节MSM1 / MSM2 / MSM3

三个版本共享相同的 30 字节文件头布局,小端序。仅 magic、version、sample_rate、pcm_samples 四个字段不同。18432 是 MSM 容器的帧大小(每声道 PCM 样本数),由格式本身定义。

文件头布局

偏移大小字段类型说明v1.0v2.0v3.0
04magicchar[4]文件标识"MSM1""MSM2""MSM3"
42versionuint16_t格式版本0x01000x02000x0300
62flagsuint16_t固定 0x5A53(ASCII "SZ")相同相同相同
82channelsuint16_t声道数(1 或 2)相同相同相同
104sample_rateuint32_t采样率跟随输入固定 48000固定 48000
144frame_countuint32_t总帧数相同相同相同
184pcm_samplesuint32_t每声道总样本数有效样本frame_count × 18432(含填充)frame_count × 18432(含填充)
224data_offsetuint32_t帧数据偏移= 30= 30= 30
264reserveduint16_t[2]保留,必须为 0相同相同相同

版本对比

版本编码依赖体积
v1.0ADPCM零外部依赖~200–500 KB
v2.0Opuslibopus~1.5–2.5 MB
v3.0Opus(原生采样率直通)libopus~1.5–2.5 MB

三个版本格式不兼容(魔数分别为 "MSM1" / "MSM2" / "MSM3")。解码器必须按魔数分发,不能混用。

开源

MSM 以 MIT 许可开源。你可以自由使用、修改、闭源商用,唯一要求是保留版权声明。

GitHub: github.com/20260509/minimsm