本地媒体管理中心,支持多种格式视频包括网盘strm,可解码4k
980
一个 Emby 风格的本地媒体管理中心,专为「已经用 NFO 刮削好的视频库」设计。扫描本地目录,把影片(含海报、简介、演员、标签、番号等元数据)入库,提供海报墙浏览、详情页、多条件搜索和浏览器播放。
mapping_actor.xml 把同一演员的多个别名归并到统一主名确保你的视频库是「每部影片一个文件夹」的结构(详见下方 媒体库准备)。
docker-compose.ymlservices:
xl-center:
image: desstg/xl-center:latest
container_name: xl-center
ports:
- "8899:8899"
volumes:
- ./data:/app/data # 数据持久化(数据库 + 缩略图缓存)
- /volume1/媒体库:/media # ← 改成你自己的媒体库目录(左侧宿主机路径)
environment:
# 登录账号密码(可选):两个都填才启用登录;不设置则无登录,直接进主界面
# - AUTH_USERNAME=admin
# - AUTH_PASSWORD=admin123
devices:
# 核显透传,用于 VAAPI 硬件转码(可选,没有 Intel 核显就删掉下面两行)
- /dev/dri:/dev/dri
restart: unless-stopped
docker compose up -d
浏览器访问 http://你的设备IP:8899
/media⚠️ 重要:网页里填的是容器内的路径
/media,不是宿主机上的真实路径。宿主机路径通过docker-compose.yml的volumes左侧那一项映射进来,右侧/media固定不变。
扫描器会递归查找「包含视频文件的文件夹」,每个这样的文件夹视为一部影片。建议结构如下:
媒体库/
├── 影片A/
│ ├── 影片A.mkv # 视频文件(也支持 mp4 / avi / ts / m2ts / webm / mov / m4v / flv / wmv / strm)
│ ├── 影片A.nfo # Kodi 标准的 movie NFO(或 movie.nfo)
│ ├── poster.jpg # 海报(竖版)
│ ├── fanart.jpg # 画报(横版背景,也支持 backdrop.jpg)
│ ├── thumb.jpg # 缩略图
│ ├── logo.png # Logo(可选)
│ ├── 字幕.srt # 字幕(srt / ass / ssa / sub / vtt)
│ └── extrafanart/ # 剧照目录(可选)
│ ├── 1.jpg
│ └── 2.jpg
├── 影片B/
│ └── ...
.mp4 .mkv .avi .ts .m2ts .webm .mov .m4v .flv .wmv .strm.srt .ass .ssa .sub .vtt.jpg .jpeg .png .webpmovie.nfo(根节点 <movie>),支持 title、num(番号)、originaltitle、year、plot、outline、rating、votes、runtime、mpaa、premiered、trailer、genre、tag、country、studio、director、credits、actor 等字段如果影片文件夹里没有任何 NFO,影片仍会入库,标题取文件夹名,其他元数据为空。
.strm 文件是一个纯文本文件,内容是一行流地址(HTTP/HTTPS URL)。播放时后端会读取该地址并代理转发给浏览器。
http://192.168.1.100:5244/d/xxx.mp4 # 例如 alist / cms 的直链
注意事项:
localhost / 127.0.0.1——在 Docker 容器里它指向容器自身,而不是宿主机| 视频类型 | 播放方式 |
|---|---|
| H264(含 4K) | 直接播放,无需转码 |
| HEVC 1080p | VAAPI 硬件转码(有 Intel 核显)或软编转码 |
| HEVC 4K | 需要较强 Intel 核显(如 UHD 630 / Iris Xe)才能硬解转码;否则降级直连(可能无法播放) |
转码依赖 Intel 核显 VAAPI,需要:
docker-compose.yml 里透传 /dev/dri没有核显也能正常使用(H264 直连、HEVC 1080p 软编),只是 HEVC 4K 播不了。程序启动时会自动检测 VAAPI 设备,有就用、没有自动降级。
默认没有登录,打开网页直接使用。如需开启账号密码登录,在 docker-compose.yml 里设置两个环境变量:
environment:
- AUTH_USERNAME=admin
- AUTH_PASSWORD=admin123
登录使用内存 token(重启失效),登录状态保存在浏览器 localStorage。
| 变量 | 必填 | 默认值 | 说明 |
|---|---|---|---|
AUTH_USERNAME | 否 | 空 | 登录账号(与 AUTH_PASSWORD 同时设置才生效) |
AUTH_PASSWORD | 否 | 空 | 登录密码 |
XL_DATA_DIR | 否 | /app/data | 数据目录(数据库 + 缩略图) |
FFMPEG_PATH | 否 | 自动 | ffmpeg 可执行文件路径 |
FFPROBE_PATH | 否 | 自动 | ffprobe 可执行文件路径 |
LIBVA_DRIVER_NAME | 否 | iHD | VAAPI 驱动名(Intel 核显用 iHD) |
| 路径 | 说明 |
|---|---|
/app/data | 数据库(xlcenter.db)+ 缩略图缓存,需持久化挂载 |
/media | 媒体库挂载点(示例,可自定义右侧路径,网页里填对应容器内路径) |
/app/config.json | 站点配置(端口、host 等,一般无需改) |
/app/mapping_actor.xml | 演员别名映射表(可选,用于演员归一化) |
Q:扫描后海报墙是空的?
A:检查媒体库路径是否填了容器内路径 /media(而不是宿主机路径),且媒体库目录结构正确(每部影片一个文件夹)。
Q:HEVC 4K 播不了? A:这是硬件限制。HEVC 4K 转码需要较强 Intel 核显,你的设备核显不够时无法硬解转码。H264 不受影响。
Q:STRM 播放不了?
A:确认 STRM 文件里写的是容器能访问到的地址(不是 localhost),且该地址有效。
Q:如何更新到新版本?
A:docker compose pull && docker compose up -d(数据在 /app/data 挂载卷里,更新不会丢失)。
Q:剧集(电视剧)支持吗? A:当前版本只支持电影库,剧集扫描仍在开发中。
本项目仅供个人学习与自用。 有什么建议可以通过电报给我留言: t.me@xlcenter_bot
Content type
Image
Digest
sha256:ff694572a…
Size
331 MB
Last updated
29 days ago
docker pull desstg/xl-center