调用MetadataExtractor读取MP3元数据报MPEG-2.5不支持异常如何解决
结论
.NET版MetadataExtractor的默认Mp3MetadataReader实现不支持MPEG-2.5格式的MP3文件,你遇到的报错属于库本身的功能限制,并非调用逻辑错误。
报错根因
- 官方文档标注的MP3支持范围为标准MPEG-1、MPEG-2层I/II/III格式的音频文件,MPEG-2.5属于非正式扩展标准,仅应用于低比特率场景,库的内置MP3解析逻辑未兼容该格式
- 你触发报错的所有MP3文件,均为MPEG-2.5编码的非标准MP3,触发了内置解析的格式校验规则,因此抛出对应异常
兼容处理方案
如果需要读取这批MPEG-2.5编码的MP3元数据,可采用以下两种方案:
- 转码预处理:使用FFmpeg将MPEG-2.5编码的MP3转码为标准MPEG编码的MP3后,再调用MetadataExtractor读取,转码参考命令:
ffmpeg -i 输入文件路径.mp3 -codec:a libmp3lame -q:a 2 输出文件路径.mp3 - 自定义扩展库逻辑:拉取MetadataExtractor开源源码,修改
Mp3MetadataReader类的编码校验逻辑,新增MPEG-2.5帧头解析规则,编译自定义版本的库接入项目使用
内容的提问来源于stack exchange,提问作者Brian H
相关产品推荐
相关产品推荐

