summaryrefslogtreecommitdiff
path: root/content
diff options
context:
space:
mode:
authoreltrac <hi@eltr.ac>2026-03-26 12:39:29 +0800
committereltrac <hi@eltr.ac>2026-03-26 12:39:29 +0800
commitd54686c080e81189a5c5b546d02d32e59c27cf6f (patch)
tree2cf3a9d6c846d49520bbd759056ca291361e10c5 /content
parente539a04f7e42d3d9f4af871a666d6280189c9b43 (diff)
docs: publish /article/got-flac
Diffstat (limited to 'content')
-rw-r--r--content/article/got-flac.md42
1 files changed, 26 insertions, 16 deletions
diff --git a/content/article/got-flac.md b/content/article/got-flac.md
index 865a511a..b69d70ec 100644
--- a/content/article/got-flac.md
+++ b/content/article/got-flac.md
@@ -2,10 +2,10 @@
title = '去营地整点 FLAC'
subtitle = 'I don’t stream. I own.'
slug = 'got-flac'
-tags = []
+tags = ['自由','隐私','音乐','技术']
categories = '软件杂谈'
-date = 2026-03-22T19:23:16+08:00
-draft = true
+date = 2026-03-26 12:38:33
+draft = false
toc = true
endnotes = [
'本页面 slug 是在恶搞已经被玩烂的广告词「Got Milk?」',
@@ -27,7 +27,7 @@ FLAC 作为自由的开源项目,不仅包含对 FLAC 音频格式的规格制
其实 `.mp3` 一开始并不是开放和自由格式,开发它的公司曾经试图向使用者收费,后来才有替代的算法被研发,用于解码和编码 `.mp3` 文件。即便是这样,`.mp3` 在 2017 年 4 月 16 日之前是受到专利保护的,直到最近几年才进入公有领域,成为了自由格式。[^3]
-开放格式(Open Format)和自由格式的概念不同,开放格式是指这个文件格式的标准和规格说明被定义在人人都可以访问的文档里,大家都能看到这个格式是如何制定的,并且能以此为依据编写编码和解码器。这个概念和开放标准(Open Standards)类似,其实前几天的[一篇文章](https://www.geedea.pro/article/webmention/)提到的 Webmention 也是开放标准,它的文档被 W3C 组织公开[于此](https://www.w3.org/TR/webmention/),任何人都能根据这篇文档,自己实现 Webmention 发送器和接收器。如果标准不开放,就只能求助于逆向工程了。
+开放格式(Open Format)和自由格式的概念不同,开放格式是指这个文件格式的标准和规格说明被定义在人人都可以访问的文档里,大家都能看到这个格式是如何制定的,并且能以此为依据编写编码和解码器。这个概念和开放标准(Open Standards)类似,其实前几天的[一篇文章](/article/webmention/)提到的 Webmention 也是开放标准,它的文档被 W3C 组织公开[于此](https://www.w3.org/TR/webmention/),任何人都能根据这篇文档,自己实现 Webmention 发送器和接收器。如果标准不开放,就只能求助于逆向工程了。
对于普通人而言,这些技术规格的差异意味着什么?
@@ -57,7 +57,7 @@ FLAC 作为自由的开源项目,不仅包含对 FLAC 音频格式的规格制
>
> 为了回应指责这种「路易模式」只是个例、完全无法推广的反驳者们的嘴,我们再来一些更现代的例子。比如说,Bandcamp。如果您不熟悉 BC:它是一个独立音乐平台,核心商业模式就是你付钱,获得可以下载的高音质开放格式文件,比如 .flac 和 .wav 之类。小氯闲着没事也喜欢去 BC 上买点 .flac 专辑听。
-{{< right "—— Garden of Outlier《[岁时录(二十三](https://chlo.is/weekly-23/)》" >}}
+{{< right "—— Garden of Outlier《[岁时录(二十三)](https://chlo.is/weekly-23/)》" >}}
实际上,在音乐流媒体占据现代人生活之前,盗版就已经泛滥了,比如盗版光碟。即便是有 DRM 技术,逆向工程在大多数时候也都算容易,至少对于音频而言,普通人花点时间就能找到已有的解码工具。Paul Graham 在《黑客与画家》里写道,对黑客而言,上锁的门是一种侮辱,他们会想尽办法把锁撬开。
@@ -93,7 +93,7 @@ FLAC 作为自由的开源项目,不仅包含对 FLAC 音频格式的规格制
### MP3 vs. FLAC:什么是无损?
-无压缩、原样录制的音频往往是 `.wav` 格式,由微软开发,苹果也有对应的 `.aiff` 格式。这些音频格式的音质是最好的,`.wav` 往往是音乐发烧友的首选格式之一。[^4]由于没有经过压缩,这类格式的文件体积也很大,储存成本很高。
+无压缩、原样录制的音频往往是 `.wav` 格式,由微软开发,苹果也有对应的 `.aiff` 格式[^4]。由于没有经过压缩,这类格式的文件体积也很大,储存成本很高。
于是就有了支持压缩的音频格式。谈到压缩,就要分出无损和有损两种压缩方式。听起来很像玄学的有损和无损两个词,其实是实打实的技术规格。
@@ -101,7 +101,7 @@ FLAC 作为自由的开源项目,不仅包含对 FLAC 音频格式的规格制
这听起来还是很抽象,让我画个图。
-![音频进入编码器,被编码器编码为音频文件;音频文件进入解码器,被解码为音频。](https://r2.eltr.ac/geedeapro/article/got-flac/how-audio-is-made.png)
+![音频进入编码器,被编码器编码为音频文件;音频文件进入解码器,被解码为音频。](https://r2.eltr.ac/geedeapro/article/got-flac/how-audio-is-made.png "音频 → 编码器 → 音频文件 → 解码器 → 音频")
{.dark:invert}
需要注意,这里的音频并非是物理世界的声波,而是经过**脉冲编码调制**(PCM)转化成的数字信号,是对模拟信号的编码。PCM 就是用比特(0 和 1)表示音频的方法,可以理解为声波在数字世界的一比一复刻(当然实际上不是 100% 精确的)。PCM 比特被输入到编码器中,得到了特定格式的音频文件,音频文件再作为解码器的输入被解码,解码的结果就是 PCM 比特。
@@ -137,7 +137,7 @@ FLAC 并不是唯一的无损压缩格式,苹果有开发名为 Apple Lossless
![A、B 是两个波形图,A 图上有非常频繁出现的点,B 图上的点则相对稀疏,每个点都表示一次采样。](https://r2.eltr.ac/geedeapro/article/got-flac/sample-rate.jpg "A 的采样率要高于 B 的采样率。")
{.dark:invert}
-采样的频率就是采样率,单位是 kHz(千赫兹),也就是每秒采样几千次。ALAC 支持的最高采样率为 384 kHz,如果采样率更高就无法承受了;而 FLAC 支持的最高采样率为 1.048 MHz。[^6]尽管大部分音乐播放器不一定支持这么高的采样率,音频本身的采样率也很少超过 100 kHz(我下载的音乐有不少采样率都只有 44.1kHz,听感依然很好),但…… 为什么不选一个更好的音频格式呢?又没有什么开销。
+采样的频率就是采样率,单位是 kHz(千赫兹),也就是每秒采样几千次。ALAC 支持的最高采样率为 384 kHz,如果采样率更高就无法承受了;而 FLAC 支持的最高采样率为 1.048 MHz[^6]。尽管大部分音乐播放器不一定支持这么高的采样率,音频本身的采样率也很少超过 100 kHz(我下载的音乐有不少采样率都只有 44.1kHz,听感依然很好),但…… 为什么不选一个更好的音频格式呢?又没有什么开销。
所谓比特深度,就是每次采样包含了多少比特的信息。深度其实就是字长(word length),是每次采样时,声波的振幅。比特深度不同的音频之间的区别,就像是 32 位操作系统和 64 位操作系统之间的区别,都能跑,但就是会有差别。
@@ -184,15 +184,15 @@ FLAC 支持 4~32 位的比特深度,而 ALAC 支持 16、20、24 和 32 位。
除了调整响度的算法,不同的流媒体平台可能还会有其他修改音频的算法,我印象中网易云音乐就有一些可选的类似音效滤镜的东西。不过这些算法是如何实现的,究竟对音频本身做了什么修改,我们不知道,毕竟它们不是开源的。
-还有说法是,不同的流媒体平台可能会得到不同的母带(master recordings),得到什么版本的母带完全是由唱片公司决定的。这中间具体发生了什么交易,我们不知道,毕竟他们不会公开商业机密。不过,我个人倾向于相信,没有多少唱片公司会专门为不同的平台制作不同的母带,母带工程师的工资可不便宜。不过,根据 [Lucida](https://lucida.to/faq#:~:text=Some%20artists%20and%20labels%20are%20known%20to%20post%20upscaled%20files%20onto%20streaming%20services.) 网站上的信息所言,一些艺术家和唱片会给流媒体提供增加过响度的音频文件,和 CD 里刻录的音频有所不同(至于黑胶,由于存储介质和原理完全不同,在制作母带时就会有差异)。
+还有说法是,不同的流媒体平台可能会得到不同的母带(master recordings),得到什么版本的母带完全是由唱片公司决定的。这中间具体发生了什么交易,我们不知道,毕竟他们不会公开商业机密。不过,我个人倾向于相信,没有多少唱片公司会专门为不同的平台制作不同的母带,母带工程师的工资可不便宜。不过,据 [Lucida](https://lucida.to/faq#:~:text=Some%20artists%20and%20labels%20are%20known%20to%20post%20upscaled%20files%20onto%20streaming%20services.) 所言,一些艺术家和唱片会给流媒体提供增加过响度的音频文件,和 CD 里刻录的音频有所不同(至于黑胶,由于存储介质和原理完全不同,在制作母带时就会有差异)。
而且,流媒体究竟会不会给用户提供无损音频也是个问题。据说 Tidal 使用的是 FLAC 格式的音频,而 Apple Music 可以开启无损音频,提供的是 ALAC 格式。无损音频肯定比有损压缩的音频更占空间,消耗更多网络资源,大部分免费和部分付费(即 Freemium 模式)的平台可能都不会提供真正的无损音频格式。更何况,就算本身是无损格式,最终解码得到的 PCM 比特流真的和母带一模一样吗?中间有没有再做其他的处理?就算关掉了响度均衡也一样吗?我们不知道,再次强调,**它们不是开源的**。
-无论怎么看,流媒体上的音乐都很混乱。简单来说,流媒体是在音乐家和粉丝之间再加了一层中间人,而这两者之间本来就已经有唱片公司、发行商干扰了。加了这么多中间人,我们就不难想象那些真正创造音乐的人能被分到多少钱了。当然,我不关心那些*钱多得能在里面游泳的*大明星,我关心的是小艺术家。诚然,我喜欢 Lady Gaga 和她的作品,但我绝对不会同情她。
+无论怎么看,流媒体上的音乐都很混乱。简单来说,流媒体是在音乐家和粉丝之间再加了一层中间人,而这两者之间本来就已经有唱片公司、发行商干扰了。加了这么多中间人,我们就不难想象那些真正创造音乐的人能被分到多少钱了。当然,我不关心那些*钱多得能在里面游泳的*大明星,我关心的是小艺术家。我喜欢 Lady Gaga 和她的作品,但我绝对不会同情她。
## 抛弃流媒体
-既然流媒体这么混乱,那就跑路吧。当然,要求每个人都购买 CD 听音乐是不现实的,尽管这是直接从发行商那里获取音乐的好方式。那么有没有地方,可以直接获取高质量的音乐,以自由且开放的音频格式提供下载,并且能够直接向艺术家付款呢?
+既然流媒体这么混乱,那就跑路吧。要求每个人都购买 CD 听音乐是不现实的,那么有没有地方,可以直接获取高质量的音乐,以自由且开放的音频格式提供下载,并且能够直接向艺术家付款呢?
*cartlE:你这个铺垫不是很到位,你前面都提了好几次 [Bandcamp](https://bandcamp.com/) 了。*
@@ -200,7 +200,7 @@ FLAC 支持 4~32 位的比特深度,而 ALAC 支持 16、20、24 和 32 位。
### 去营地整点 FLAC
-[Bandcamp](https://bandcamp.com/) 是一个音乐销售平台,也提供流媒体播放,但一般来说,用户都会直接以 FLAC 格式下载音乐,平台也提供 ALAC、WAV 和 AIFF 等高质量音频格式和 MP3 和 AAC 等有损压缩格式。Bandcamp 上几乎都是独立艺术家,在这里,你可以直接给艺术家或者他们的唱片公司付费,他们最终会收到粉丝支付金额的 82%[^10]。
+[Bandcamp](https://bandcamp.com/) 是一个音乐销售平台,也提供流媒体播放,但一般来说,用户都会直接以 FLAC 格式下载音乐,平台也提供 ALAC、WAV 和 AIFF 等高质量音频格式和 MP3、AAC 等有损压缩格式。Bandcamp 上几乎都是独立艺术家,在这里,你可以直接给艺术家或者他们的唱片公司付费,他们最终会收到粉丝支付金额的 82%[^10]。
购买之后,Bandcamp 会显示「You own this」,表示你拥有这张专辑,之后可以无限流媒体播放,或者以任意格式下载到本地,用任何支持该格式的播放器播放。没有 DRM 加密,你真的拥有这张专辑。下载时还会标注音频的采样率和比特深度,可以说足够透明了。
@@ -218,7 +218,7 @@ FLAC 支持 4~32 位的比特深度,而 ALAC 支持 16、20、24 和 32 位。
我当然不会说用百度网盘或者夸克网盘,这种被严格监管的、中心化的平台我是不信任的。想必不需要我来骂百度网盘,读者应该也可以自己想象了。
-不过,我会建议你尝试 [Soulseek](https://www.slsknet.org/),这是一个跨平台的 P2P 文件分享网络,带有房间、搜索引擎和搜索相关系统能帮助用户方便地找到有相同兴趣的人。Soulseek 上常分享一些小众音乐,在上面很容易找到音乐资源,不过,加入 Soulseek 网络之前,自己也需要准备一些文件来分享,因为一些 Soulseek 用户只会分享文件给那些也开放分享的人。
+我建议读者尝试 [Soulseek](https://www.slsknet.org/),这是一个跨平台的 P2P 文件分享网络,带有房间、搜索引擎和搜索相关系统能帮助用户方便地找到有相同兴趣的人。Soulseek 上常分享一些小众音乐,在上面很容易找到音乐资源,不过,加入 Soulseek 网络之前,自己也需要准备一些文件来分享,因为一些 Soulseek 用户只会分享文件给那些也开放分享的人。
Soulseek 还有一个更现代的客户端,叫作 [Nicotine+](https://nicotine-plus.org/)。
@@ -244,7 +244,9 @@ Soulseek 还有一个更现代的客户端,叫作 [Nicotine+](https://nicotine
要提前说明的是,我能听出明显区别的音乐大多数都是摇滚乐、迪斯科和电子舞曲,或者是那些使用了大量乐器和电子合成的音乐,音频中包含很多细节。主要的不同是我从 Lucida 上下载的(准确来说是从 Amazon Music 或者 Tidal 上偷来的)音乐,音频中的细节更清晰,比如我使用 Apple Music 听音乐时,使用相同的设备,就从来没有听到 Lady Gaga 的《Venus》的背景里有一个空灵的声音在重复 *TO THE PLANET*,没有听到 Harry Styles 的《Dance No More》背景里一直有不同的人声在发出叫声。
-一些乐器或合成音的重音会更清晰,甚至有种*砸地感*。我甚至觉得,一些歌曲的质感在本地播放的质感完全不同,一些乐器的声音更突出,我听到了好多我之前没有听过的细节。
+顺带一提,我在本地播放《Artpop》这张专辑的时候感到非常意外,因为我突然听到了一首我从未听过的名为《Jewels N’ Drugs》的歌,打开 Apple Music 查看才发现 Track 5 的确从平台上被移除了,可能是审查机制。我印象中《Harry's House》这张专辑里有一首歌也在 Apple Music 上听不到,而 Lady Gaga 的《Judas》也曾因为涉及宗教被不少国内平台封杀。
+
+在本地播放的音乐,乐器或合成音的重音会更清晰,甚至有种*砸地感*。我甚至觉得,一些歌曲的质感在本地播放的质感完全不同,一些乐器的声音更突出,我听到了好多我之前没有听过的细节。
上面这些感受有可能是流媒体平台之间音频质量差异导致的,可能不具有代表性。于是我又在 Steam 上购买了《To The Moon》这款游戏的原声带(Steam 也提供 FLAC 格式下载),听完的感受是:我这辈子所有的《For River》都白听了。*怎么回事?连钢琴的声音都有差别?*
@@ -266,11 +268,11 @@ Soulseek 还有一个更现代的客户端,叫作 [Nicotine+](https://nicotine
### 分析统计和推荐怎么办?
-我很想发表暴论说,年度回顾和音乐统计之类的东西是流媒体给用户创造的需求,没有人需要被提醒自己今年最喜欢的歌手是谁,最喜欢的专辑是什么,播放得最多的歌是那首——如果你真的喜欢,那你自己会知道的。不过,唉,我其实没资格说这话,因为我的确也想要一些实在的数据。
+我很想发表暴论说,年度回顾和音乐统计之类的东西是流媒体给用户创造的需求,没有人需要被提醒自己今年最喜欢的歌手是谁,最喜欢的专辑是什么,播放得最多的歌是哪首——如果你真的喜欢,那你自己会知道的。不过,唉,我其实没资格说这话,因为我的确也想要一些实在的数据。
推荐算法在社交媒体和视频平台上可能是令人成瘾的毒瘤,但对想要发现新音乐的人来说,可能是真的有用。如果离开了流媒体,是不是也没有办法享受这些服务了呢?当然不是。
-[Last.fm](https://www.last.fm/) 提供音乐追踪服务,你可以使用支持 last.fm 的播放器或者相关插件,向这个服务发送 Scrobble,它就会记录你播放了什么音乐。所谓 Scrobble 就是对一次播放音乐的记录,只有一首歌播放时长超过一半的时候才会算作 Scrobble。有了记录之后你可以查看上周、上个月和去年的听歌报告,最近听了什么歌,听得最多的艺人和专辑是什么,last.fm 还会显示你当前正在播放什么歌。
+[Last.fm](https://www.last.fm/) 提供音乐追踪服务,你可以使用支持 last.fm 的播放器或者相关插件,向这个服务发送 Scrobble,它就会记录你播放了什么音乐。所谓 Scrobble 就是对一次播放音乐的记录,只有一首歌播放时长超过一半的时候才会算作 Scrobble。有了记录之后你可以查看上周、上个月和去年的听歌报告,最近听了什么歌,听得最多的艺人和专辑是什么,last.fm 还会显示你当前正在播放什么歌。当然,last.fm 也会根据你的喜好为你推荐专辑和歌手。
他们有提供详细的 [API 文档](https://www.last.fm/api/scrobbling),只要向对应的 URL 发送 POST 请求即可。如果你是用的播放器不支持 last.fm,大概也能很容易地找到或者自己做一个插件。再者,媒体播放一般都受到操作系统控制,所以理论上可以在操作系统层面监听音乐播放情况,然后发送记录。
@@ -328,6 +330,14 @@ Soulseek 还有一个更现代的客户端,叫作 [Nicotine+](https://nicotine
很主观的建议:忘掉歌单,听一张完整的专辑吧。
+## 最后
+
+*我不是只想记录一下我抛弃流媒体,拥抱本地音乐的心路历程吗?怎么一路狂飙,从开放格式写到数字信号处理,又写到响度战争和 Piracy 了?*
+
+事已至此,就这样吧。
+
+希望你也能自由地听到自己喜欢的音乐。
+
[^1]: 参见:[FLAC - 维基百科](https://zh.wikipedia.org/zh-cn/FLAC#:~:text=%E8%87%AA%E7%94%B1%E6%8C%87%E7%9A%84%E6%98%AF%E8%BF%99%E4%B8%AA%E9%9F%B3%E9%A2%91%E6%A0%BC%E5%BC%8F%E5%8F%AF%E4%BB%A5%E5%9C%A8%E4%B8%8D%E9%9C%80%E4%BA%8B%E5%85%88%E8%AE%B8%E5%8F%AF%E7%9A%84%E6%83%85%E5%86%B5%E4%B8%8B%E4%BD%BF%E7%94%A8%EF%BC%88xiph.org%E4%BF%9D%E7%95%99%E4%BA%86%E5%88%B6%E5%AE%9AFLAC%E8%A7%84%E6%A0%BC%E5%8F%8A%E8%AE%A4%E8%AF%81%E5%85%BC%E5%AE%B9%E8%A7%84%E6%A0%BC%E7%9A%84%E6%9D%83%E5%88%A9%EF%BC%89)
[^2]: 参见:[Audio file format - Wikipedia](https://en.wikipedia.org/wiki/Audio_file_format#List_of_formats)