Skip to content

Repository files navigation

JianVideo

自托管视频媒体服务器——浏览器直连全格式播放,单二进制交付。

状态

开发中 · v0.27.0(见根目录 VERSION)。v2 能力与分期见 docs/PRD.md / docs/ROADMAP.md

架构一览

  • 后端apps/server:Go + Gin + GORM/SQLite(CGO),FFmpeg 外部进程转码,HLS/TS 流。
  • 前端apps/web:React + TypeScript + Vite + Mantine;构建产物同步到 apps/server/web/dist 后经 go:embed 内嵌。
  • 工作区:根 go.workapps/server;前端 pnpm workspace + Turborepo(apps/* + packages/*)。
浏览器 ──HTTP/HLS──► apps/server(API · 媒体库 · 转码 · embed web/dist)
│
SQLite(WAL) + FFmpeg

真貌细节见 docs/ARCHITECTURE.md

能力

  • 多目录 / SMB 媒体库,扫描与文件监听
  • 全格式兼容:能直连则直连,否则转码 HLS
  • 硬件加速(NVENC / QSV / AMF / VAAPI / VideoToolbox / Vulkan 等)
  • 自适应码率、边下边播、精准 Seek
  • 单二进制跨平台部署

结构

JianVideo/
├── go.work # use ./apps/server
├── Makefile # 顶层入口(委托 task + pnpm)
├── apps/
│ ├── server/ # Go 服务端 + Taskfile + embed web/dist
│ ├── web/ # 生产主端
│ ├── wiki/ # UI 博物馆
│ └── mock-studio/ # Mock / Benchmark
├── packages/ # 共享 UI / client / pixi / …
├── e2e/ # Playwright
├── docs/ # PRD · ARCHITECTURE · ADR · specs
├── scripts/ # 质量门 · root-hygiene
└── VERSION

快速开始

前置

  • Go 1.22+(需 CGO 工具链)
  • go-taskgo install github.com/go-task/task/v3/cmd/task@latest
  • Node.js 18+、pnpm
  • FFmpeg(硬件加速另装驱动)

常用命令

make install # pnpm install
make frontend # 构建 apps/web → apps/server/web/dist
make build # 前端 + 单二进制 → dist/jianvideocd apps/server && task --list
go run -C apps/server .# 开发跑服务(默认 DB:data/jianvideo.db)
make check # 全仓 pnpm quality

配置

环境变量优先(详见 docs/OPERATIONS.md):

变量说明默认
SERVER_PORT端口8080
DB_PATH数据库路径(缓存与库同父目录)data/jianvideo.db
JWT_SECRET会话密钥未设则随机
JIANVIDEO_FFMPEG_PATH / FFPROBE工具路径PATH / 同目录捆绑

文档导航

约定

许可

MIT

About

轻量级单用户视频媒体服务器——个人家庭影音中心

Topics

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages