跨平台音乐播放软件 Songbird

Songbird 是一款开源音乐播放软件,目前可以支持在 Windows, Linux 和 Mac 操作系统上运行。从我的角度来看,它有几大特性:(1)支持 iPod——对我来说没诱惑,我又没有 iPod;(2)类 iTunes 界面,这一点我还是很欣赏的,管理音乐比较方便;(3)内嵌浏览器,用某篇文章的话说就是:“如果iTunes和Firefox来一场甜蜜的网络性爱,他们产下的卵就是Songbird。”虽然形同鸡肋,不过也蛮有趣的;(4)支持类似于 Firefox 的插件功能,这将会是 Songbird 的杀手锏;(5)支持大部分中文歌曲 ID3 标签——这一点使我不得不喜欢它,下面我还会说到;(6)可用插件支持歌词显示。

总的来说,Songbird 吸引我的主要原因是后两条,因为我很难在 Linux 下找到实现这两条的播放软件,但是这后两条特性又貌似不那么完全。本地化、本地化,Linux 的本地化一直是一个问题,再加上像我这样的“事儿妈”喜欢在 en_US.UTF-8 的 LOCALE 下追求中文使用的无障碍,使得问题更糟糕。Linux 下的经典播放软件 xmms, RhythmBox, Amarok,无一例外都被中文 ID3 标签显示问题打败(或者说我不知道如何配置?)。

Songbird 让我看到了一丝希望。我目前歌曲库中所有歌曲都是从 Google Music 下载的,乍一装上 Songbird 运行后,我发现它居然能识别出大部分歌曲的 ID3 信息(Windows 和 Linux 平台下效果是一样的),不过仍然有乱码存在。我想可能是 ID3 标签自身问题,于是到 Windows 下用千千静听编辑了一下这些显示为乱码的歌曲信息。经过多次尝试,发现用千千静听将 ID3 信息先写入为 ID3v1,然后再重新以 UTF-16 格式写入为 ID3v1 & ID3v2 貌似可以解决 Songbird 的乱码问题,至少我的歌曲库已经没有乱码了。

这个乱码解决方案的重要之处在于:Windows Explorer 支持该方案,也意味着大部分 MP3 音乐播放器(随身听)支持该方案。不像通常为使 Linux 下的播放软件(比如 Amarok)支持 ID3 标签,要强行将 mp3 文件的 ID3 标签转换为 UTF-8 编码,这样会造成大部分 mp3 随身听和 Windows Explorer 无法显示歌曲信息。(插一句:在我使用过的 mp3 里,只有魅族 Miniplayer(M6) 支持 UTF-8 格式的 ID3 标签和 UTF-8 格式的 txt 文档,这也是我对魅族这间公司有很大好感的原因之一。)

Songbird 的歌词插件也很奇怪,貌似它只支持内嵌于 ID3 标签中的歌词,而且没有时间轴,还好 Google Music 的歌曲大部分内嵌有歌词。不知道存不存在可以从外部文件读取歌词并且以时间轴显示的插件?

关于 ID3 标签,我还有一些疑问,下面列出来,希望对此有了解的朋友能够指点一二。

1. 网上讨论 Linux ID3 标签编码问题时经常会说 ID3 标签的编码是 GBK, BIG5 所以造成了乱码问题。但 Wikipedia 上说,ID3v1 只支持 ISO-8859-1,ID3v2.1 增加了 UTF-16 支持,ID3v2.4 增加了 UTF-8 支持,貌似 ID3 标签根本没有 GBK 编码这一说。那么乱码问题到底和 GBK 有关系吗?

Li Fanxi 网友的重要评论:ID3v1只支持ISO-8859-1,不过很多传统的软件,比如WinAMP或Tag&Rename,都会用System Code Page去存放非ISO-8859-1中的字符。对于CP936,自然就是GB2312了。一些严格符合标准的软件如果没有考虑到这个问题,就会出现乱码。

2. 这篇疑似 Amarok 开发人员的博客中说:“(我们限制自动检测编码功能仅检测 ID3v1 )基于这样的假设:所有的 ID3v2 使用的是 UTF-8 编码,所有的 ID3v1 使用的是非 UTF-8 编码。”但是要知道大部分中文 MP3 歌曲使用的是 ID3v2.3,根本不支持 UTF-8。那是否能得出这样的结论:Amarok 乱码问题是因为 Amarok 不支持 ID3v2 标准,而不是 Windows Explorer 和其他 mp3 播放器厂家不支持标准?那么我想,有了 Songbird,是放弃 Amarok 的时候了。

Li Fanxi 网友的重要评论:ID3v2.3不支持UTF-8,如果用UTF-8存ID3v2.3 Tag可以看成是软件的Bug,我不太确定有多少软件会这么做。

3. 为什么某些同样是 ID3v2.3 编码的 MP3,Windows Explorer 和千千静听能读取正确,Songbird 中却有可能显示为乱码呢?

Li Fanxi 网友的重要评论:这个问题还是要具体问题再具体分析,可以用软件分析一下这个文件中倒底存了多少种Tag,一个文件中可以同时存在几种版本的Tag,比如ID3v1、ID3v2、APE,不同的软件可能对不同的Tag的识别优先级不一样,导致显示结果不一样。

虽然我天天在Linux下工作,不过管理Tag我还是wine一个Windows下的Mp3tag来用,因为以前在Windows下用惯了,而且我也在维护这个软件的简体中文语言文件。这个软件Usability不算好,不过功能很强,适合对MP3 Tag管理有比较高要求的朋友用用。http://www.mp3tag.de/en

对于解决乱码MP3的问题,我用Mp3tag的方案是先对用System Code Page存放的Tag做一次Convert Codepage的Action。然后把MP3 Tag清除动作设成清除所有,写入动作设成只写入ID3v2.3 UTF-16,然后对所有的文件做一次Ctrl+X再Ctrl+V。世界就清静了。

PS: 一定要试试 Songbird 的 MashTape 插件,很好很强大!

《跨平台音乐播放软件 Songbird》上有10条评论

  1. 唉,和所有的 mozilla 一样,太慢-_-,不然还是很值得一用的。

    Mac 和 Linux 里的播放软件大多都是默认 utf-8 id3。不知道为啥国内有那么多的 gbk 编码的 mp3...
    当然 ogg/mpc 才是王道。

  2. ID3v1只支持ISO-8859-1,不过很多传统的软件,比如WinAMP或Tag&Rename,都会用System Code Page去存放非ISO-8859-1中的字符。对于CP936,自然就是GB2312了。一些严格符合标准的软件如果没有考虑到这个问题,就会出现乱码。

    ID3v2.3不支持UTF-8,如果用UTF-8存ID3v2.3 Tag可以看成是软件的Bug,我不太确定有多少软件会这么做。

    第3个问题还是要具体问题再具体分析,可以用软件分析一下这个文件中倒底存了多少种Tag,一个文件中可以同时存在几种版本的Tag,比如ID3v1、ID3v2、APE,不同的软件可能对不同的Tag的识别优先级不一样,导致显示结果不一样。

    虽然我天天在Linux下工作,不过管理Tag我还是wine一个Windows下的Mp3tag来用,因为以前在Windows下用惯了,而且我也在维护这个软件的简体中文语言文件。这个软件Usability不算好,不过功能很强,适合对MP3 Tag管理有比较高要求的朋友用用。http://www.mp3tag.de/en

    对于解决乱码MP3的问题,我用Mp3tag的方案是先对用System Code Page存放的Tag做一次Convert Codepage的Action。然后把MP3 Tag清除动作设成清除所有,写入动作设成只写入ID3v2.3 UTF-16,然后对所有的文件做一次Ctrl+X再Ctrl+V。世界就清静了。

    对于Songbird,前几天刚刚试用了一下,呵呵,感觉相对我的电脑性能来说它太庞大,暂时无视了。

  3. 发现 MashTape 插件很不错,能显示歌手的很多信息,只不过对英文世界的歌手支持比较好。
    要是能配合国内的论坛或者豆瓣就好了。

  4. 現在只需要聽音樂,所以在用mocp.
    songbird歌詞插件的話,估計也沒有中文歌詞吧,而mocp有某人開發過歌詞插件。
    事實上如果你也是一個熱衷于UTF8的理想主義者,我倒覺得把所有id3 tagupdate成utf8的是正道,恩。

  5. audacious中文id3的支持很好设置。另外似乎我曾经从谷歌音乐上面下到apev2和id3的信息不一致的……windows里显示id3,linux里就显示ape了……

发表评论

电子邮件地址不会被公开。 必填项已用*标注