Ampache 介绍与选型指南
Ampache 老牌自托管音频流媒体服务器全景:发展沿革、核心特性、技术架构、客户端生态,附与 Navidrome/Funkwhale/Gonic 的量化选型对比。
Ampache 介绍与选型指南
Ampache 是一个用 PHP 编写的老牌自托管音频流媒体服务器,把个人音乐收藏变成可在网页浏览器和各类移动客户端中访问的私人流媒体站,同时以 Subsonic/Ampache API 双接口兼容海量第三方客户端,是「大而全」型音乐服务器的代表作品。
产品概览
Ampache 的定位是完整的 Web 音乐流媒体服务器:你把音乐文件(MP3、FLAC、OGG 等)放到服务器目录里,它负责扫描编目、读取标签元数据、按艺术家/专辑/流派组织,然后通过网页播放器和标准 API 对外提供播放服务。它的能力边界并不止于音乐——视频文件同样可以纳入 Catalog 管理,只是社区主流用法仍集中在音频。
几个在选型时值得记住的关键词:
- 多 API 兼容:内置 Ampache API(自有协议,当前 8.x 系列 API 版本 8.1.0)与 Subsonic API(1.16.1,兼容 OpenSubsonic 扩展字段)两套接口,第三方播放器可以自由选择协议接入。
- 转码服务端化:由服务器端实时把 FLAC 等大码率格式转成 MP3/AAC/OGG 等目标格式,弱网或受限客户端也能流畅播放。
- 多用户与权限:用户账号、访问控制、播放列表共享、公开注册开关一应俱全,天然适合家庭或小团队共享一个曲库。
发展沿革与版本现状
Ampache 是自托管流媒体领域名副其实的「元老」项目,持续维护至今已超过二十年。截至 2026 年 10 月,官方最新稳定版为 8.3.0(数据来源:GitHub 仓库 ampache/ampache 的 releases 页面)。
8.x 分支有几个显著的变化点:
- PHP 版本跟得很紧:8.3.0 官方提供
php8.5构建的发布包(ampache-8.3.0_php8.5.zip),也就是说当前稳定版已经适配到 PHP 8.5。发布包还细分为_all(含依赖)、_squashed、_client等形态,并预告从 Ampache 9 起将简化命名结构。 - 8.3.0 新特性:引入播放列表文件夹(Playlist Folders),文件夹支持 Private/Public 共享开关、隐藏标签页,并在 Ampache API 中新增
playlist_folder_create、playlist_folder_edit、playlist_folders等方法;数据库结构升级到 830003,playlist_folder表新增type字段。 - 安全性收紧:8.3.0 的数据库升级说明中明确移除了旧版本生成的可预测
MD5(username)形式 API 会话,握手会话机制已改为不可预测的会话标识。 - Ampache 9 在路上:发布页提到目录结构默认形态将在 Ampache 9 切换(
_public、_all等后缀保留至 8.x 结束),意味着下一个大版本会有一次较大的结构调整。
核心功能特性
以下能力均可在官方仓库的发布说明与文档中溯源确认:
- Catalog(曲库)体系:本地目录、远程 URL 等多种 Catalog 类型;支持增量扫描、校验(verify)、清理失效文件;艺术家/专辑/流派/年份多维度组织。
- 服务端转码:按输入格式逐个授权转码(
transcode_flac = "allowed"等开关),转码命令可按格式覆盖(默认 ffmpeg),目标码率随播放请求动态下发;还带独立的转码缓存节。 - 三套对外接口:Ampache API(XML/JSON 双格式)、Subsonic/OpenSubsonic API、以及 WebSocket 监听同步(listen-along 广播,需要单独跑 websocket 服务)。
- Web 播放器:自带网页播放器,支持本地播放队列、播放统计回写(scrobble)、流派对浏览体验的深度定制。
- 元数据处理:读取音频文件内嵌标签,支持按文件夹结构推断专辑信息、封面图抓取与本地元数据目录。
- 多用户协作:用户偏好隔离、播放记录统计、播放列表共享(8.3.0 起文件夹级共享粒度更细)。
- 身份源扩展:内置配置节支持 LDAP、OpenID Connect(OIDC)接入,适合已有账号体系的环境。
技术架构
- 语言与运行时:PHP(8.x,稳定版已支持 PHP 8.5),Web 端可跑在 Apache/Nginx + PHP-FPM 上;命令行入口为统一的
bin/cli。 - 数据库:MySQL/MariaDB,元数据全部入库;文件本体仍保留在文件系统上,数据库只存编目信息。
- 发布结构:官方 zip 分为 public(仅公共入口)与 all(全量含依赖)两种结构,另有 squashed/client 变体;不熟悉时官方文档「which zip」页面有对照表。
- 官方容器镜像:
ampache/ampache系列,默认变体内置 MySQL 服务器(单容器即可跑全套),并提供nosql变体(无内置数据库,需自备 MySQL/MariaDB)、client变体(内置 Ample 等 Web 客户端)、develop/preview变体。多架构构建覆盖 linux/amd64、linux/arm/v7、linux/arm64。
生态与客户端
- 官方 Web 客户端:Ampache 8 引入 client 结构,
client变体镜像可把 Ample 或 tinysub 等 Web 客户端装进 Web 界面根路径。 - 第三方 App 生态:因为同时实现 Subsonic API 与自有 Ampache API,几乎所有主流平台的 Subsonic 兼容播放器(DSub、Substreamer、play:Sub、Symfonium、Tempo 等)都能直接连 Ampache;自家 API 则有 Ampache 官方客户端与集成库。
- 部署生态:官方镜像之外,社区常见组合是 Ampache + MariaDB + 反向代理(HTTPS 终结),文档中对
force_ssl、local_web_path等与反代相关的配置有明确指引。
量化选型对比
下表把 Ampache 与同赛道三个常见的自托管音乐服务器放在一起对比(星数为 shields.io 2026 年 10 月查询值;其余信息源自各项目官方仓库/文档):
| 维度 | Ampache | Navidrome | Funkwhale | Gonic |
|---|---|---|---|---|
| 技术栈 | PHP + MySQL/MariaDB | Go + SQLite | Python(Django) + PostgreSQL | Go + SQLite |
| 资源占用 | 中(PHP 运行时 + DB) | 低(单二进制) | 高(多进程 + PG) | 低(单二进制) |
| 协议/API | Ampache API + Subsonic/OpenSubsonic | Subsonic/OpenSubsonic | 自有 API + Subsonic 兼容 | Subsonic/OpenSubsonic + 自有轻量 API |
| Web 播放器 | 自带(可换装 Ample 等) | 自带(精良) | 自带(社交化界面) | 无(纯后端,依赖客户端) |
| 视频支持 | 有(可入 Catalog) | 无 | 无 | 无 |
| 多用户/共享 | 强(权限/注册/共享/文件夹共享) | 有(基础多用户) | 强(社交化、联邦) | 弱(极简) |
| 播放列表/电台 | 强(8.3.0 播放列表文件夹) | 强 | 强 | 基础 |
| 转码能力 | 服务端按格式授权 + 缓存 | 内置 | 内置 | 内置 |
| GitHub 星数 | 3.8k | 24k | 已迁出 GitHub | 2.6k |
| 许可证 | AGPL-3.0 | GPL-3.0 | AGPL-3.0 | GPL-3.0 |
| 一句话定位 | 功能最全的多协议音乐平台 | 轻快省心的单机音乐服务器 | 带社交与联邦的音乐社区 | 极简 Subsonic 后端 |
怎么读这张表:
- 要「全家桶」:Ampache 是这四个里唯一同时提供自有 API + Subsonic + 视频支持 + LDAP/OIDC + 播放列表文件夹的「大平台」型选手,功能密度最高,代价是 PHP+DB 的部署与运维复杂度。
- 要「轻」:Navidrome 与 Gonic 都是单二进制 Go 程序,资源占用极低;Gonic 连 Web 播放器都不带,纯粹给第三方客户端当后端。
- 要「社区/联邦」:Funkwhale 的定位是社交化音乐平台(分享、频道、联邦),与 Ampache 的「私人曲库」定位并不重叠。
值得单独强调 Ampache 的两个差异化能力:多 API 兼容(一个后端同时喂 Subsonic 客户端和 Ampache 客户端,家庭里不同 App 各取所需)和目录扫描能力(verify/增量/单文件重扫一应俱全,适合曲库经常变动的重度用户)。
适用与不适用
适合 Ampache 的场景:
- 曲库较大(上万曲目)、格式混杂(FLAC/MQA/OGG 混存),需要服务端统一转码输出。
- 多人共用一台服务器,需要账号隔离、播放统计、共享播放列表。
- 已有 LDAP/OIDC 账号体系,想复用统一登录。
- 同时要照顾 Subsonic 生态客户端与 Ampache 自有 API 的集成(自研脚本、Home Assistant 等)。
- 顺带管理少量视频资源。
不太适合的场景:
- 单人使用、追求零运维:Navidrome/Gonic 这类单二进制方案更省心。
- 需要 Podium/联邦、播客分发、社交互动:Funkwhale 更对味。
- 树莓派级小内存设备且只用 Subsonic 协议:Go 系方案资源优势明显。
许可证
Ampache 采用 AGPL-3.0 开源许可证(shields.io 徽章数据,2026 年 10 月查询),可自由自托管、修改与再分发;项目由社区维护,无商业版/订阅版之分。
部署形态速览
Ampache 的主流部署形态有三种:官方发行包(PHP 环境自建)、官方容器镜像(内置或外接数据库)、以及包管理器/社区脚本。对绝大多数自托管用户,官方 Compose 编排 + 外接 MariaDB 是兼顾可维护性与数据安全的推荐形态,具体落地见 《Ampache Docker Compose 部署实战》。
装好之后,三个方向值得继续深入:配置体系逐节讲解见 《Ampache 配置参数详解》,命令行与 API 运维见 《Ampache 常用命令与运维实战(核心篇)》。
参考与延伸
- 官方站点:ampache.org(文档、下载、社区入口)
- 官方仓库:github.com/ampache/ampache(releases 页含 8.3.0 完整变更与发布包)
- 官方镜像:github.com/ampache/ampache-docker(镜像变体、环境变量、备份脚本说明)
- 对比项目官方仓库:navidrome/navidrome、funkwhale/funkwhale、sentriz/gonic