作者WandererM (WM)
看板AudioPlayer
标题[打屁]ID3 Tagv2与各家播放器处理的讨论(1)
时间Wed Aug 13 17:17:10 2008
※ [本文转录自 EZsoft 看板]
作者: WandererM (WM) 看板: EZsoft
标题: [打屁]ID3 Tagv2与各家播放器处理的讨论(1)
时间: Wed Aug 13 17:13:05 2008
本文同步发表在AudioPlayer板,欢迎大家一起讨论。
以下只讨论Windows平台上的现况,欢迎其他平台使用者也来写个一篇XD
文章内含大量连结,请多包涵Orz
首先,先从ID3 TAG到底是什麽标准讲起:
先看看这篇文章→
http://forum.slime.com.tw/post877754-1.html
再看看这篇:
http://liuawei.wordpress.com/2008/05/27/id3tag-ubuntu/
大致上ID3 TAG演进的过程就是这样,
上面那篇文章告诉我们目前建议以ID3v2.3来编辑TAG,比较保险,
因为有些MP3 Player还不支援使用强制使用UTF-8的v2.4,
而Windows Explorer跟Windows Media Player又不认得UTF-8的TAG,
也许你想问那Vista这方面有没有改进啊?
很高兴的是,没有!有图为证:
http://echopic.com/wes
(2-09 昨天是ID3v2.3,可以正确抓到缩图跟TAG资讯,2-07 只能抱着你就真的爆了)
所以我们又少了一股升级到Vista的好诱因XDDD
前几天我心血来潮,想知道官方ID3v2的规格有没有关於Multi Artists的写入支援,
因为整理TAG的时候看到很多合唱曲,中间的分隔符号都没有统一(对,我很龟毛Orz)
想说找找看官方标准对这方面是怎麽定义的:
http://www.id3.org/id3v2.3.0
「TPE1
The 'Lead artist(s)/Lead performer(s)/Soloist(s)/Performing group' is
used for the main artist(s). They are seperated with the "/" character. 」
也就是说ID3v2.3是用/符号来分隔每个演出者,不过其实这个符号挑的不是很好,
因为有个澳洲天团叫做『AC/DC』啊XDDD
http://en.wikipedia.org/wiki/AC/DC
MediaMonkey特地为了这个团体写了个例外处理。
http://www.mediamonkey.com/forum/viewtopic.php?f=3&t=27975
Windows Media Player也有类似的处理,不过foobar2000没有就是,会变成AC, DC。
那新的v2.4对这个有没有更好的办法呢?
http://www.id3.org/id3v2.4.0-frames
「All text information frames supports multiple strings, stored as a null
separated list, where null is reperesented by the termination code
for the charater encoding.」
改用NULL来作分隔字元,不过这个也造成了不少的问题就是。
分隔字元的讨论已经吵很久了:
http://www.hydrogenaudio.org/forums/index.php?showtopic=61317
那麽底下就来发表一下我测试的ID3v2.3跟ID3v2.4分隔字元的相容性测试:
1. Windows Media Player:
v2.3,图:
http://echopic.com/weu,在参与演出者那边用分号取代/做隔开,
表示它认得这是两个演出者,不过在媒体柜里面的演出者只新增一个梁静茹,
而没有新增一个光良,WLM的Now Playing也只接收到梁静茹而没有光良。
v2.4,如前所述,完全认不得UTF-8的TAG。
2. Foobar2000:
v2.3,可以识别,会以A, B的方式显示,编辑时则是A;B,用;表示分隔。
但是没对AC/DC作例外处理。
v2.4,可以识别,一样以A, B的方式显示,编辑时则是A;B,用;表示分隔。
用foo_msnalt送上WLM的Now Playing也是显示「A, B」,非常棒!
3. iTunes:
v2.3,不理会分隔直接显示/。
v2.4,会将NULL字元以空白字元显示。变成「梁静茹 光良」,
送到WLM的Now Playing一样只显示梁静茹。
但是直接新增v2.4的档案iTunes无法加入。
不过将已经加入资料库後的档案修改成v2.4後可以存取,但是用简介开启
来看虽然看得到v2.4的识别,但是演出者栏位也只显示梁静茹。
4. Songbird:
v2.3,跟iTunes一样直接不理会分隔。
v2.4,也跟iTunes一样会以空白字元显示,但是透过LiveTweeter送到
WLM的显示有连光良一起亮相。
虽然Songbird预设编辑的就是v2.4,但开发者告诉我目前只是会把遇到的
第一个Null略过显示空白字元,因为资料库结构还不允许Multi artists,
所以再多来一个Null就会爆炸。
5. MediaMonkey:
v2.3,可以识别,且有对AC/DC作例外处理。
v2.4,可以识别。可说是这个测试的优等生,请看图:
http://echopic.com/wf0
右边框起来的部份表示这是两个不同的档案分别是2.3跟2.4版本。
左边框起来的则是它自动产生了两个演出者的节点,表示它认得这是两个人。
虽然WMP的管理概念跟它类似,但这款软体自动产生节点的能力真的是强!
foobar2000的Library也能做到,希望Songbird也很快有这个功能。
6. AIMP:
v2.3,似乎也是不理会的样子。
v2.4,可以直接加入,也可以播放,不过清单介面上只显示梁静茹,
File Info里面会显示「梁静茹 光良」,但是编辑ID3 v2介面里面只看得到梁静茹。
7. 千千静听:
v2.3,这个也是没有理会分隔。
v2.4,可以直接加入,也可以播放,不过清单介面上只显示梁静茹,
编辑ID3 v2介面里面也只看得到梁静茹。
结论:
大多数音乐管理软体,都直接把2.3的分隔字元当作没有这回事,
只有MediaMonkey跟Foobar2000实做出来(WMP这样算不完整),
而2.4的NULL字元就更麻烦了,没特别处理的话NULL後面的文字还会被鬼隐XDD
另外值得一提的是iTunes转出的MP3预设似乎是用已废弃的ID3 v2.2,
(不知道新版有没有改用2.3了,我很久没把唱片转MP3了)
然後还会在Comment栏位里面写入一堆资料库资讯,内含NULL字元,
会造成不少软体无法正常播放档案,所以这次测试都有把Comment栏位整个清空。
如果你也有遇到少数档案播放异常,记得检查看看是不是iTunes的Comment作怪。
那麽就先到这里打住,剩下的等吃完晚餐再写一篇,谢谢你看完这麽长的废话Orz
--
▄▄A WM Should Not Know Anger, ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
▄▄▄▄▄▄▄▄▄ Nor Hatred,▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
▄▄▄▄▄▄▄▄▄▄▄Nor Love. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
▄ My home: ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
▄ http://kidwm.net/ ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
批踢踢兔个板:WM
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.133.1.178
1F:→ WandererM:foobar2000真不愧是王者!面面俱到Orz 08/13 17:19
※ 编辑: WandererM 来自: 220.133.1.178 (08/13 17:24)
2F:推 cherish731:好文 期待续篇 08/13 18:00
3F:→ ayumi0511:我一直在等Foobar2000 for mac Orz 08/13 18:03
4F:推 Kenqr:推! 08/13 19:17
5F:→ goldie:好文推~:) 08/13 22:09
6F:推 exFREEzy:真的是很棒的文章 版主就欣慰地当作是第二份徵文投稿了XD 08/13 23:48
7F:推 nubi:好文推 = ) 08/14 00:23
8F:推 On1earth:之前整理一堆歌,在采用2.3或2.4之间犹豫很久 08/14 08:03
9F:→ On1earth:後来决定用2.4,再配合v1就好了 08/14 08:04
10F:→ WandererM:建议还是把v1统统拿掉吧XD 08/14 08:06
11F:推 goldie:由於不支援 Unicode 的问题,所以我也不留 ID3v1 08/14 12:09