关于一个mp3文件格式的问题:有两个id3v2头

BuleRiver 2014-05-15 08:05:03
大家好,我写了一个MP3文件解析类,计算出ID3V2头后,跳过它,然后找到第一帧,解析MP3音频的相关属性。它一直工作的很好,直到我遇到了这个文件:
根据前10个字节,我计算出该ID3V2头的长度是4096个字节,然后跳过4096个字节后,我发现我计算的MP3音频属性是错误的:声道模式错误、采样率错误、比特数错误等,我使用UltraEdit打开该MP3文件之后,发现4096字节处是另外一个ID3V2头。

我修改了程序,如果紧跟在ID3V2头后,是另一个ID3V2头,则继续解析,这样我的类就又可以正常工作了,我这样做有依据吗?
...全文
308 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
kernel.asm 2016-08-13
  • 打赏
  • 举报
回复
楼主,我也遇到了类似的问题。。。我根据ID3V2头(最前面10个字节)算出的大小和所有标签大小加起来不符合.....正在头大......
BuleRiver 2014-05-20
  • 打赏
  • 举报
回复
引用 3 楼 OExpress 的回复:
有可能有多个ID3V2头,需要检测之
mp3标准中好像没有这个啊?
__cc__ 2014-05-16
  • 打赏
  • 举报
回复
是不同帧吗?
__cc__ 2014-05-16
  • 打赏
  • 举报
回复
ID3V2头内部说明了包含音频帧的大小,前面那个应该是没有音频数据的。
CyberLogix 2014-05-16
  • 打赏
  • 举报
回复
有可能有多个ID3V2头,需要检测之
BuleRiver 2014-05-16
  • 打赏
  • 举报
回复
引用 1 楼 neustar1 的回复:
是不同帧吗?
不是。

2,543

社区成员

发帖
与我相关
我的任务
社区描述
专题开发/技术/项目 多媒体/流媒体开发
社区管理员
  • 多媒体/流媒体开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧