Spotube FLAC 无法播放——从 v5.0 到 v5.1 的关键变化
为什么 v5.0.x FLAC 有问题
Spotube v5.0.x 之前的播放管线:
音频流 → Spotube 内部统一转码 → MPV 播放
统一转码意味着:所有格式不管是什么,都会被强制转换到 MP3 或 AAC 的固定参数(48kHz / 16-bit)。FLAC 在这个过程中:
- 被降级:24-bit / 96kHz FLAC 变成 16-bit / 48kHz AAC
- 可能崩溃:某些高采样率 FLAC 转码过程中 Spotube 的转码器溢出(特别是 192kHz)
- 无声:少数 FLAC 文件的元数据解析失败导致整个管线中断
v5.1.0 怎么修的
v5.1.0 引入 codec passthrough——Spotube 不再统一转码:
音频流 → Spotube 检测 codec → 如果是 FLAC / WAV / Opus / MP3 → 直接交给 MPV 播放
关键变化:
- AudioAPI 插件可以声明自己的
codec("flac" / "mp3" / "aac" / "opus" / "wav") - Spotube 检测到 FLAC → 原样交给 MPV
- MPV 原生支持 FLAC 解码,不需要 Spotube 做任何处理
- 24-bit / 96kHz / 192kHz 的高采样率 FLAC 可以完整播放
升级到 v5.1.0 后仍然有问题
1. 某些 FLAC 还是降级了
Spotube 设置 → Playback → Audio quality:
- 确认设为 "Follow source"(跟随音源),不要固定选 AAC / MP3
- 如果选了固定格式,FLAC 会被强制转码
2. FLAC 播放时 CPU 占用飙升 100%
这是正常现象——FLAC 解压缩确实比 AAC 吃 CPU(无损压缩比更高)。如果是笔记本/手机(无硬件 FLAC 解码),CPU 跑满是预期行为。
解法:
- 桌面端:开启 MPV 的硬件解码(Spotube 设置 → Playback → Hardware acceleration → 选 Direct3D11VA / VideoToolbox / VAAPI)
- 移动端:不要在 Android 5.0 等老设备上听 FLAC
3. 本地 FLAC 能放,Qobuz FLAC 放不出来
Qobuz Audio 插件需要 v5.1 版本的 plugin_interfaces。检查:
- Qobuz Audio 插件版本 ≥ 5.1.0
- Spotube 版本 ≥ 5.1.0
- 确认 Qobuz 订阅有效、网络能连 Qobuz API
4. FLAC 曲目显示"格式不支持"
Spotube 用 mpv 解码,MPV 几乎支持所有 FLAC 子格式。如果真出现这种报错:
- 确认文件确实是 FLAC(用
file命令或 VLC 查) - 检查是不是 DTS / Dolby Atmos 等特殊编码(Spotube 不支持)
- 罕见情况:损坏的 FLAC(用 ffmpeg 重编码试试)
5. FLAC 播放无声但进度在走
某些 FLAC 的声道布局(比如 5.1 环绕)可能不兼容。Spotube / MPV 默认只输出立体声:
- Spotube 设置 → Playback → Audio device → 手动选支持多声道的设备
- 或设置 → Playback → Downmix multichannel to stereo(v5.1 新选项)
本地 FLAC vs 流式 FLAC
| 对比项 | 本地 FLAC | 流式 FLAC(Qobuz) |
|---|---|---|
| 需要什么 | Local Files 插件 | Qobuz Audio 插件 + Qobuz 订阅 |
| 依赖网络 | 不需要 | 需要稳定的 1Mbps+ 带宽(FLAC 约 800kbps) |
| 格式识别 | metadata_god 从本地 ID3 标签读 | Qobuz Audio API 返回 |
| 元数据完整性 | 取决于文件本身的 ID3 | Qobuz 自带完整元数据 |
| v5.1 兼容性 | 完美 | 需要 Qobuz Audio ≥ 5.1.0 |
建议
- 升级到 v5.1.0+:如果还在 v5.0.x,这是解决 FLAC 问题的最重要一步
- 普通用户(128kbps AAC 就够)不用管 FLAC 问题
- Qobuz Hi-Fi 订阅用户一定要确认 Spotube 和 Qobuz Audio 插件都是 v5.1+
向维护者报告 FLAC 问题
debug log 里搜 "flac"、"codec"、"mpv",把相关行一起贴到 GitHub Issue。同时提供:
- 具体 FLAC 格式(用 ffprobe 查:
ffprobe -show_streams file.flac) - 音频源插件名和版本
- Spotube 版本(stable 还是 nightly)