localcinema

LocalCinema

轻量级家庭影院服务器。一个命令启动,手机、平板、电脑打开浏览器即可观看本地视频。

截图

首页 播放页

功能

安装

Homebrew (macOS/Linux)

brew install raojinlin/tap/localcinema

一键安装脚本

curl -fsSL https://raw.githubusercontent.com/raojinlin/localcinema/main/install.sh | sh

Go Install

go install github.com/raojinlin/localcinema@latest

Docker

docker build -t localcinema .
docker run -v ~/Movies:/videos -p 8080:8080 localcinema

二进制下载

前往 GitHub Releases 下载对应平台的压缩包。

快速开始

# 启动(默认扫描 ~/Movies,监听 8080 端口)
localcinema

# 指定目录和端口
localcinema -dir /path/to/videos -port 9090

# 清空 HLS 转码缓存
localcinema -clear-cache

手机连接同一 WiFi,浏览器访问终端输出的地址即可。

命令行参数

参数 默认值 说明
-dir ~/Movies 视频文件目录
-port 8080 服务器监听端口
-cache-dir ~/.cache/localcinema 自定义缓存目录(HLS 转码、封面、ffmpeg 等)
-clear-cache 清空 HLS 转码缓存后退出

ffmpeg

程序启动时会按以下顺序查找 ffmpeg/ffprobe:

  1. ~/.cache/localcinema/bin/ — 本地缓存
  2. 系统 PATH

如果都找不到,会自动从网络下载静态编译版本到 ~/.cache/localcinema/bin/,支持 macOS 和 Linux(amd64/arm64)。

也可以手动安装:

# macOS
brew install ffmpeg

# Linux (Ubuntu/Debian)
sudo apt install ffmpeg

macOS 下使用 VideoToolbox 硬件加速转码(h264_videotoolbox),需要 ffmpeg 编译时启用 --enable-videotoolbox

缓存

所有缓存默认存储在 ~/.cache/localcinema/,可通过 -cache-dir 参数自定义路径:

目录 内容
bin/ 自动下载的 ffmpeg/ffprobe
hls/ HLS 转码分片(m3u8 + ts),视频文件修改后自动失效
thumbs/ 视频封面(jpg)和时长信息(dur)

支持的格式

格式 播放方式
.mp4 .m4v 直接播放(H.264)/ HLS 转码(HEVC 等)
.mkv .avi .mov .webm .wmv .flv 自动 HLS 转码

目录元数据

在视频目录下创建 metadata.json 文件,可以自定义视频的显示信息:

{
  "title": "视频标题",
  "source": "来源",
  "description": "视频描述",
  "keywords": ["关键词1", "关键词2"]
}

设置后,该目录下的视频将使用 title 作为显示名称,替代默认的文件名。

API

接口 方法 说明
/api/videos GET 视频列表(JSON)

查询参数:

参数 默认值 说明
page 1 页码
size 20 每页数量
direct 设为 1 仅返回可直接播放的视频

技术栈

依赖