记某次 Firefox 无法播放 FLAC 文件的排查过程(写于:20230615)

不知道大家平常是怎么试听下载到的音乐资源的呢?

我的话,因为平时习惯一直开着 Firefox 的关系,所以都是下载下来直接把音乐文件往 Firefox 上一拖来用浏览器试听的。

然后前阵子偶然找歌听的时候发现了一个很奇怪的 FLAC 资源,明明不论是用 EDGE 还是系统自带播放器都是能正常听歌的,但是一拖到 Firefox 里,它就会告诉我不支持播放……

讲道理,Firefox 明明是支持播放 FLAC 的啊,我平时听也没什么问题,怎么这次就不行了呢……所以我高低得查查是什么情况!ヾ(≧へ≦)〃

首先我们来看看这个怪怪的 FLAC 文件,使用 Firefox 播放时,它是这么提示的:

如果用 EDGE 打开的话,就毫无问题了:

一开始的时候,我想到的是跟我为这个 FLAC 添加了 Vorbis 注释(为歌曲添加了封面图,还有演唱者歌曲名等元数据)有关,所以我重新把这些注释和封面图都删除了再去测试,发现仍然是有问题的,而且即便是没有做过任何修改的原文件,也会存在这个问题……

那么问题就出在这个文件本身上咯?于是我首先想到了 Spek。

Spek 是一个可以用来查看音频文件音轨信息的小工具,这个工具多用来鉴定无损音频是否是被 MP3 文件扩充假冒的,因为如果是假无损资源的话由于 MP3 文件不保存 20 kHz 以上的频率,在 Spek 里看就是音频文件的频率到 20 kHz 之后直接就没了,而真无损的话至少 20 kHz 以上的频率也是会保留的。如果对这个工具感兴趣的话,这是它的官网:https://www.spek.cc

基于以上的特性,我首先是怀疑是不是跟假无损资源有关系,所以用 Spek 看了一下,它的频率分布是这个样子的:

看这个样子也不像是从 MP3 转的假 FLAC 的样子,那为什么 Firefox 还是会显示不支持呢?

我不死心,难道是资源的实际格式和扩展名有出入,实际上可能是 APE WAV 之类的结果错改成了 FLAC 文件?

抱着这么个想法,我把文件的扩展名给去掉了,然后尝试使用 VLC 等媒体播放工具来播放,看看调用的是什么解码器播放的。结果可想而知,显示的确实是 FLAC 文件……

我还是不死心,也许只是人家兼容性比较好(你看 Firefox 兼容就不太行的样子啊2333)?

于是我又将这个 FLAC 文件丢到了在线检测文件格式的网站里测试了一下,这里我测试了不止一个网站,大多都是显示是音频文件,FLAC 没毛病云云,但我在其中一个网站的检测结果里发现了问题,感觉比别家靠谱一点所以我在这里特别贴一下它的网址:https://filext.com

FILExt 的检测结果有什么问题呢?

首先它告诉我这好像是一个 MP3 文件:

其次在下面的详细检测报告里,我看到了文件里竟然包含了 ID3 信息以及有封面:

MP3 文件这个经过之前的 Spek 检测,确定应该是没可能的,但是奇怪了,之前明明是打开文件编辑标签发现没有图片我才特意去添加的,结果现在告诉我文件里有 MP3 文件才用的 ID3 标签还自带有图片?那我怎么没看到呢……_(:з)∠)_

然后我想到了我用的是 AIMP 编辑标签的,当时确实没看到有 ID3 的标签存在,但是又想到了有那么一眼在 VLC 里确实诡异的看到了封面(还以为是自动下载的)……

为了验证不是网站识别出错,我选择了万能的记事本直接打开了这个 FLAC 文件,然后我在文件的开头中看到了这么个内容:

都是乱码不是关键,关键是从文本信息来看这个 FLAC 文件确实存在 ID3 信息,而且图片也是包含在内的?那么可能就是我常用的 AIMP 识别上出了问题了。

既然 AIMP 不行,那我就用 Mp3tag 吧!这是一个专门用于编辑音频文件标签信息的工具,实际上论编辑标签这块它或许是比 AIMP 要更专业一些的,我之前不用是因为经常使用 AIMP 听歌的关系,所以并没有特意去用它来做标签编辑,这次算是有用武之处了。关于 Mp3tag,它的官网是这个:https://www.mp3tag.de/en/

打开 Mp3tag,毫不意外的看到了这样的信息——专辑里的所有 FLAC 都包含了 ID3 标签:

既然如此,那把这些多余的 ID3 标签删除了再看下 Firefox 还能正常播放吗?想到这里我试了试,发现原来不能播放的 FLAC 文件这次竟然毫无阻碍的就在 Firefox 上正常播放了!

所以到这里就有结论了,之所以 Firefox 无法播放这个 FLAC,就是因为 FLAC 里错误包含了 ID3 信息导致的。

好,到这里算是找到原因了,心结解开!*★,°*:.☆( ̄▽ ̄)/$:*.°★* 。

但是再看看我手里的这个专辑,一想到我要把它们的 ID3 标签都删除了然后再添加 Vorbis 标签,我就有点犯懒……有没有什么快速转换的法子?

于是网上找了一下,还真被我找到了,我可以借助 Mp3tag 的清除标签和撤销操作这两个功能,就可以实现快速转换了,因为针对 FLAC 文件 Mp3tag 的撤销恢复操作会直接把原来的 ID3 标签恢复成 FLAC 正常使用的 Vorbis 标签!

关于这个方法,我是在这里看到的:https://www.mediamonkey.com/forum/viewtopic.php?t=30377

另外,在这个贴子里我也知道了为什么 FLAC 文件里会包含有 ID3 标签,看起来资源发布者可能是通过 EAC 转码得到的 FLAC 文件,并且转码时没注意 EAC 默认勾选了写入 ID3 标签的关系。

那么到这里记录写完了,最后还有一点让我纠结的点是:我到底该说是 Firefox 的 FLAC 兼容性做的不好呢,还是应该说它比别家更遵循标准呢……?╮(╯-╰)╭

PS:文章特色图片出自 Pixiv 画师4B鉛筆的作品,原链接:https://www.pixiv.net/artworks/108096409

文章标题:记某次 Firefox 无法播放 FLAC 文件的排查过程(写于:20230615)
本文作者:希卡米
链接:https://hikami.moe/notebook/4492.html

如非文内特别说明,博客内作品均默认采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。
知识共享许可协议

评论

  1. V.A.
    2 月前
    2024-3-03 21:41:00

    没用的知识增加了!

    • 希卡米
      博主
      V.A.
      2 月前
      2024-3-04 5:36:55

      hhhh

发送评论 编辑评论

|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇