【发布时间】:2011-06-16 18:00:26
【问题描述】:
我已经有 mp3 二进制数据,我只想知道如何从中提取信息。 v1 很简单,取最后 128 个字符即可。但 v2 的长度可变。文档说标签大小将在标题中,但我无法在我测试的任何歌曲中找到它。
但无论如何我只是想提取专辑和艺术家信息.. jsut 这两个,用 javascript。为简单起见,我在变量中有 Taylor swift 歌曲的前 2000 个字节(下面是歌曲的实际二进制数据):
ID3!vTYER2010TIT2
Last KissMCDI¬E+96+4484+918B+E800+12F4B+1A636+1EC24+23A8E+2905F+2F7DD+33868+3914B+3D931+44555+4A27BTRCK13TCON(2)CountryPRIVPeakValue¡PRIVAverageLevel{ TPE2
Taylor SwiftPRIV)WM/MediaClassSecondaryIDPRIV'WM/MediaClassPrimaryID¼}`Ñ#ãâK¡H¤*(DPRIVWM/ProviderAMGPRIVWM/WMContentIDÇ1t>êDëþëPRIV"WM/WMCollectionID ¨F}âH"Y#7 ÈPRIV'WM/WMCollectionGroupID ¨F}âH"Y#7 ÈTPUBBig MachinePRIVWM/UniqueFileIdentifierAMGa_id=R 2026672;AMGp_id=P 816977;AMGt_id=T 22057912TALB
Speak NowTPE1
Taylor SwiftTLEN369120ÿûà@üK
现在我可以轻松找到专辑和艺术家姓名(最后两行)。而且我还可以很容易地找到数据以 js 开头的位置。只需找到TALB 和TPE1。简单的。但是我到底怎么知道数据在哪里结束..?在其他歌曲中,它们可能彼此相邻,也可能不相邻。它们可能是也可能不是大写。所有其他库如何确定数据的结束位置?
如文档所示,开头也没有“大小”。
编辑谁能帮帮我?我真的很需要这个
【问题讨论】:
-
似乎 ID3 标头丢失了一部分。你有机会分享文件,我们可以看看吗?
-
@TankorSmash from file 您是指音频文件还是提取 id3 标头的代码?正如 J. Andrew Laughlin 的回答所说,所有字符都是不可打印的,所以也许这就是数据不完整的原因?
-
我的意思是音频文件,我目前使用 Python,我可以看看它,看看是否确实缺少数据,或者它只是无法打印。除非你处理好了,否则你就准备好了?
-
是的,我实际上放弃了解析id3v2的想法,我只使用id3v1。
-
哦,真可惜,我正准备尝试帮助你,因为我正在尝试做同样的事情
标签: javascript mp3 id3