README.md

May 17, 2026 · View on GitHub

FontInAss

开源字幕字体子集化服务
上传 ASS / SSA / SRT 字幕,自动匹配字体并嵌入精简子集,体积减少 95%+

在线服务 · CLI 工具 · Docker 部署 · Telegram 社群


简介

FontInAss 是一个开源的字幕字体子集化工具。将 ASS/SSA/SRT 字幕文件上传后,系统自动从在线字体库中匹配字幕引用的字体,提取实际使用的字符生成极小的子集化字体,并嵌入到字幕文件中。

支持 Web 界面、命令行工具(CLI)和 API 调用三种使用方式。

主要功能

  • 精准子集化,字体体积减少 95% 以上
  • 在线字体库,收录数万款中日韩及西文字体
  • 批量处理,无数量限制
  • 跨平台 CLI 工具,本地批量处理
  • 字幕分享,浏览和下载社区贡献的已处理字幕包
  • Docker 一键部署

Docker 部署

git clone git@github.com:Yuri-NagaSaki/FontInAss.git
cd FontInAss
mkdir -p fonts data
cp .env.example .env
# 编辑 .env,设置 API_KEY
docker compose up -d

访问 http://localhost:3300,进入字体管理页面点击「扫描并索引」建立字体索引。

配置项

变量默认值说明
PORT3000服务器端口
API_KEY(空)管理鉴权密钥
FONT_DIR./fonts字体存储目录
DB_PATH./data/fonts.db数据库路径
SUBSET_CONCURRENCY5并发子集化数量

CLI 工具

跨平台命令行工具,通过 FontInAss 服务处理字幕文件。

GitHub Releases 下载对应平台的二进制文件:

平台文件
Linux x64fontinass-linux-x64
macOS x64fontinass-macos-x64
macOS ARMfontinass-macos-arm64
Windows x64fontinass-windows-x64.exe
# 配置服务器(仅需一次)
fontinass config set server https://font.anibt.net

# 处理单个文件
fontinass subset file.ass

# 批量处理
fontinass subset *.ass

# 递归处理目录
fontinass subset -r ./subs/

# 多字幕轨内封时,为不同轨道使用不同别名盐,避免 MKV 字体冲突
fontinass subset --alias-salt SC simple-jp.ass
fontinass subset --alias-salt TC traditional-jp.ass

详细文档见 cli/README.md

技术栈

组件技术
运行时Bun
后端框架Hono
数据库SQLite
字体处理opentype.js
前端Vue 3 + Tailwind CSS v4
CLIRust
部署Docker

许可证

AGPL-3.0