mStream 是 GitHub 上 2.4k Star 的极简自托管音乐流媒体服务器,基于 Node.js + Rust 构建。支持多用户管理、无缝播放、跨设备同步、拖拽上传,iOS/Android 都有官方 App,Docker 一键部署,Umbrel 应用商店官方收录。

🎤 引言

想把自己收藏多年的 FLAC 无损音乐库搬上云?又不想订阅 Spotify/Apple Music 那种「音乐是租来的」的服务?GitHub 上这个 mStream 项目就是把「私人音乐库」变成「私人流媒体服务」的最轻量方案 —— 2.4k Star,Node.js + Rust 混合架构,Docker 一键起,浏览器就能听。

跟 Plex/Jellyfin/Navidrome 那种全家桶相比,mStream 的定位非常纯粹:只做音乐流媒体,不做视频、不做照片、不做书籍。所以它体积小、启动快、内存占用低(< 100MB),适合「我就想随时随地听自己的无损音乐」这种刚需用户。


⭐ 核心功能

1. 真正的音乐流媒体体验

不是简单的文件下载 + 播放,而是把整个音乐库搬到浏览器:

  • 浏览器直接播放 FLAC、ALAC、APE、WAV、MP3、AAC、OGG 等几乎所有格式
  • 移动浏览器、PWA 安装后像原生 App
  • iOS / Android 都有官方客户端(App Store 和 Google Play 都能下)

2. Gapless 无缝播放

经典专辑(比如 Pink Floyd《The Wall》、DJ 混音集)曲目之间不留白,真正的无缝播放,不是「下首歌接上首歌」那种。Rust 音频引擎专门为这个优化过。

3. 多用户 + 多目录

  • 单部署支持多个独立账号,家庭/小团队共用一台服务器
  • 每个用户管理自己的播放列表、收藏、播放历史
  • 可挂载多个音乐根目录,自动扫描入库

4. On-the-fly 转码

后端集成 ffmpeg,自动转码到客户端支持的格式。比如:

  • 手机流量紧张 → 自动转 128kbps MP3 省流量
  • WiFi + 桌面浏览器 → 直送 FLAC 无损
  • 老手机不支持 ALAC → 实时转码成 AAC

5. 拖拽上传 + 自动入库

浏览器里直接把音乐文件拖到页面就上传,不用 SSH 也不用 FTP。上传完自动加入音乐库、扫描元数据、读取专辑封面。

6. Milkdrop 可视化

听歌时背景跑 Milkdrop 音频可视化特效,怀旧又酷炫,适合桌面端大屏聆听。

7. 完整音乐库功能

  • 智能搜索(标题/艺术家/专辑/流派)
  • 播放队列管理
  • 最近播放 / 最常播放
  • 收藏 / 评分
  • 播放列表导入导出

📥 安装使用

方式一:Docker(推荐)

docker run -d \
  --name mstream \
  -p 3000:3000 \
  -v /path/to/your/music:/music \
  -v /path/to/config:/config \
  -e USER=admin \
  -e PASSWORD=your_p…here \
  -e USE_TRANSCODER=1 \
  linuxserver/mstream

访问 http://your-ip:3000,用 admin/your_p…here 登录即可。

方式二:Docker Compose(NAS 用户)

version: '3'
services:
  mstream:
    image: linuxserver/mstream:latest
    container_name: mstream
    restart: unless-stopped
    ports:
      - 3000:3000
    volumes:
      - ./music:/music
      - ./config:/config
    environment:
      - PUID=1000
      - PGID=1000
      - USER=admin
      - PASSWORD=your_p…here

方式三:从源码安装(开发者)

git clone https://github.com/IrosTheBeggar/mStream.git
cd mStream
npm install
node server.js

需要 Node.js 18+ 和 ffmpeg。

Umbrel 一键安装

如果你用 Umbrel Home NAS,直接在 App Store 搜 mStream 一键安装,官方收录的 app,配置最简单。

初次配置

  1. 启动后访问 http://ip:3000
  2. 输入账号密码登录
  3. 进入设置 → 「Music Directories」→ 添加你的音乐根目录
  4. 点 「Scan Library」 自动扫描专辑/艺术家元数据
  5. 完事开始听

元数据扫描

首次扫描取决于音乐库大小,1000 张专辑大约 2-5 分钟。建议首次启动前先用 MusicBrainz Picard 或 Mp3tag 整理好标签,否则很多专辑会出现「未知艺术家」「未知专辑」。


🎯 适用场景

无损音乐党 —— 收藏了大量 FLAC/ALAC,mStream 的无损直送能力比大多数云音乐服务都强。

隐私敏感 —— 不想让云端知道你听什么,自托管在 NAS 或 VPS 上,数据完全私有。

复古音乐库 —— 大量古典 / 现场 / DJ 混音需要无缝播放,Gapless 模式是刚需。

多设备用户 —— 家里电脑、手机、平板都能访问同一个音乐库,出差用移动 App 继续听。

小型乐队 / DJ —— 多用户功能可以让乐队成员共享同一套曲库,各自管理播放列表。

轻量需求 —— 不想要 Plex/Jellyfin 那种全家桶,只需要音乐,mStream 体积小、吃资源少。

不适合谁:需要歌词同步、推荐算法、社交功能的用户 —— mStream 是工具不是平台,没有这些花哨功能。


🔍 对比/替代方案

工具类型优势劣势
mStream轻量自托管极简、Rust 引擎、无缝播放功能少、无歌词、无推荐
Navidrome自托管音乐Subsonic API、客户端生态丰富配置稍复杂
Funkwhale自托管音乐联邦化、社交功能资源占用大
Plex全能媒体一站式音乐+电影+照片重、吃资源
Jellyfin开源 Plex视频+音乐全包音乐功能不如专业工具
Airsonic自托管音乐老牌、客户端多Java 吃资源
Spotify托管服务曲库大、推荐好订阅贵、无 FLAC

关键差异:mStream 的核心定位是 「最简音乐流媒体」 —— 比 Navidrome 还轻量,但功能也最少。适合「我就要个能听 FLAC 的 Web 服务」这种纯粹需求。


⚠️ 注意事项

1. 元数据质量

mStream 的自动扫描依赖文件标签。整理标签前先听歌

  • 推荐工具:MusicBrainz PicardMp3tag
  • 确保 艺术家专辑专辑艺术家曲目编号 字段正确
  • 专辑封面内嵌进文件最稳妥

2. 移动 App 选型

mStream 官方有多个客户端:

3. 反向代理 + HTTPS

如果想公网访问,务必套 HTTPS

# Nginx 配置示例
location /mstream/ {
    proxy_pass http://127.0.0.1:3000/;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
}

或者直接用 Caddy / Nginx Proxy Manager 反代。

4. 转码性能

开启转码(USE_TRANSCODER=1)会消耗 CPU 资源。老机器/低配 VPS 建议:

# 限制转码并发
-e MAX_TRANSCODERS=1

或者干脆关掉转码,直送原文件(适合桌面浏览器场景)。

5. 内存建议

  • 1k 张专辑以下:512MB 内存足够
  • 10k 张专辑:建议 2GB+
  • 大型音乐库(> 50k 曲目):4GB+ 才不会卡

6. 不支持歌词

mStream 目前没有歌词显示功能,需要歌词的用户可以:

  • LRCLib 这类服务
  • 或者转用 Navridrome(支持歌词同步)

✅ 总结

mStream 是「最纯粹的私人音乐流媒体」—— 不做视频、不做社交、不做推荐,只把音乐这件事做到极致轻量。2.4k Star 不算爆火,但 2,210+ commits 和稳定维护说明这是个认真打磨的项目。

优点

  • ✅ 体积小、内存占用低(< 100MB)
  • ✅ 无缝播放(Rust 音频引擎)
  • ✅ 浏览器 + iOS + Android 全平台
  • ✅ On-the-fly 转码省流量
  • ✅ Umbrel 官方上架

缺点

  • ⚠️ 功能简单,无歌词/推荐/社交
  • ⚠️ 元数据自动整理能力弱
  • ⚠️ 移动 App 功能比 Navidrome 客户端生态少

推荐指数:⭐⭐⭐⭐(4/5)—— 只想要个能随时听无损音乐的小工具?mStream 是当下最轻量的选择,扔到 NAS 上常年开着几乎无感。

🔗 GitHub 仓库https://github.com/IrosTheBeggar/mStream
🌐 官网https://mstream.io
📱 iOS Apphttps://apps.apple.com/ge/app/mstream-player/id1605378892
🐳 Docker Hubhttps://hub.docker.com/r/linuxserver/mstream
当前 Star:2.4k