找回密码
 立即注册
查看: 2888|回复: 16

一个(非全新的)项目: FontServer - 字体服务器

3

主题

65

回帖

0

VC币

高级会员

Rank: 4

积分
24197
lslqtz 发表于 2024-11-3 23:13:50 | 显示全部楼层 |阅读模式
本帖最后由 lslqtz 于 2024-11-4 21:54 编辑

这一字体服务器可以实现以下功能:
1. 通过与 (PT) 站点字幕区集成或单独登录来认证;
2. 支持搜索或下载已录入字体;
3. 可为字幕匹配所需字体并可进行下载 (单个/打包);
4. 自动进行子集化字幕字体处理 (嵌入/非嵌入);

在开发及使用一段时间后, 除去服务器的资源占用导致的性能问题外, 这一项目的用户体验和反馈均可达到较好的程度, 因此, 今天决定公开此项目, 这一项目主要为与 (PT) 站点集成而设计.

认证功能:
可采用注册登录 和/或 与站点集成, 其中注册登录机制支持公共登录 (匿名).

核心功能:
可通过关键词搜索字体, 并根据最大搜索结果数量返回结果.
在注册登录机制下, 用户可通过手动粘贴 ASS/SSA 字幕内容来处理字幕 (由于只能粘贴文本, 暂不支持压缩包). 在站点集成机制下, 站点可通过约定密钥实现跨站点登录, 或通过约定密钥传递 ASS/SSA/ZIP 字幕文件来处理字幕.
对字幕进行一定的处理后, 最多可选择下载 单个字体/打包字体/子集化字幕 (嵌入字体)/子集化字幕 (非嵌入字体).

源策略功能:
源策略可用于对功能进行配置或限制.
在认证功能中, 可配置 跨站点登录所需约定密钥/限制登录或注册可用性及注册是否需要审批/配置注册确认邮件过期时间/配置是否允许公共登录及公共登录所用 UID.
在核心功能中, 可配置 允许下载字体/允许下载打包字体/允许下载嵌入字体的子集化字幕/允许下载非嵌入字体的子集化字幕/是否针对每个字幕子集化 (可针对压缩包所有字幕的并集子集化)/缓存字体数量 (内存换性能)/最大字幕文件大小/最小搜索长度/最大搜索结果数量.

未完成 (可能因为懒也不会完成) 的计划:
允许用户通过上传字体来赚取贡献值完善字体库, 并通过用户的贡献值来调整源策略.

通过 Scraper, 可以将字体信息抓取至数据库 (可能有内存泄漏). 字体服务器支持配置多个字体路径, 从前至后尝试, 因此字体可同时存储在多个路径或磁盘.

效果图 (部分引用自 MDU 个人邀请 [多图预警]):






Demo: http://font.acgvideo.cn
源代码: https://github.com/lslqtz/FontServer (采用 AGPLv3 协议)

目前, Demo 被配置为以下源策略:
  1. 'Public' => array(
  2.         'key' => '不要看我, 我不知道喔',
  3.         'AllowLogin' => true,
  4.         'AllowLogout' => true,
  5.         'AllowRegister' => false,
  6.         'AllowDownloadFont' => true,
  7.         'AllowDownloadFontArchive' => false,
  8.         'AllowDownloadSubsetSubtitle' => true,
  9.         'AllowDownloadSubsetSubtitleWithSeparateFont' => true,
  10.         'ProcessFontForEverySubtitle' => true, // false: High memory consumption, true: High performance consumption.
  11.         'MaxCacheFontCount' => 0,
  12.         'MaxFilesizeMB' => 1,
  13.         'MaxDownloadFontCount' => 12,
  14.         'MinSearchLength' => 2,
  15.         'MaxSearchFontCount' => 100,
  16.         'EmailExpireTime' => 0, // 0: Manual approval.
  17.         'PublicUID' => 10000000 // 0: Disable public.
  18. )
复制代码

评分

参与人数 4活跃度 +9688 收起 理由
lmrs + 1600 很给力!
snoopyzx963 + 6400 很给力!
546498732 + 800 非常有用!!
op200 + 888 智齿

查看全部评分

回复

使用道具 举报

3

主题

406

回帖

42

VC币

至尊会员

Rank: 16Rank: 16Rank: 16Rank: 16

积分
205625

活跃达人

shadows 发表于 2024-11-3 23:27:19 | 显示全部楼层
简化理解:
对个人用户(观众)意义不大,顶多是一个在线字体库。主要意义在于是与pt站结合,方便pt用户在下载页面把字幕、字体一次性全搞定……
回复

使用道具 举报

3

主题

65

回帖

0

VC币

高级会员

Rank: 4

积分
24197
lslqtz  楼主| 发表于 2024-11-3 23:34:21 | 显示全部楼层
本帖最后由 lslqtz 于 2024-11-3 23:40 编辑
shadows 发表于 2024-11-3 23:27
简化理解:
对个人用户(观众)意义不大,顶多是一个在线字体库。主要意义在于是与pt站结合,方便pt用户在 ...

在我看来, 这种字体服务器的好处在于, 可以使最终用户免去本地所需完整字体库的烦恼, 理论上也并非仅限于 PT 站点. 但是实际上, 公共字体服务器还需要面临资源占用及版权问题.

对于最终用户而言, 如果自用的话, 可能除了托管在 NAS 或其它类似地方外, 相比于本地解决方案可能没有太大的意义.
对于公共字体服务器而言, 这一项目还缺乏一个用户上传字体 (及可能有的审核) 的机制, 但我现在动力非常差, 没有动力去完成它.
回复

使用道具 举报

20

主题

164

回帖

20

VC币

至尊会员

Rank: 16Rank: 16Rank: 16Rank: 16

积分
244783
op200 发表于 2024-11-4 12:53:04 | 显示全部楼层
感觉挺好的,不过服务器费用难以让用户均摊吧?只好让合作的PT站分摊

对于用户来说,在线子集化是不是没什么必要?子集化这东西不同软件的特性都不一样,发种人一般只习惯用自己那套流程,而观众又用不到自己子集化,有点徒增服务器负担的样子

感觉这种字体统一化管理的好处在于可以轻松找到很多不好找或找不到新版本的字体,所以列表加上版本列会比较好,新版本字体会加上一些字符,有些字体新版的体积小很多

似乎还可以拉字幕组入坑,很多字幕组的字体管理很乱,之前甚至见到合集里的字体包放着十年前版本的字体,统一管理的字体服务器的好处就体现了;
另外能像那个大字体包一样带上个双语相似字体参考表就太方便做字幕了;
很多字幕组的公开字幕库用的GitHub之类的代码托管平台,放字体不合适,所以能直接链接到字体服务器也是个很好的办法
回复

使用道具 举报

3

主题

65

回帖

0

VC币

高级会员

Rank: 4

积分
24197
lslqtz  楼主| 发表于 2024-11-4 13:04:10 | 显示全部楼层
本帖最后由 lslqtz 于 2024-11-4 13:08 编辑
op200 发表于 2024-11-4 12:53
感觉挺好的,不过服务器费用难以让用户均摊吧?只好让合作的PT站分摊

对于用户来说,在线子集化是不是没什 ...

我经常下载特效字幕观看, 但不希望每次都安装字体 (有时字体包也比较难找), 字幕经常随视频用后即删. 在线子集化在我下载的过程中就可以解决这个问题, 使我这种最终用户只需要负责看而不需要处理过多的技术问题. 这是最初和主要的开发原因.

关于版本列: 这确实是一个存在的问题, 本是计划于用户上传字体功能一并开发的, 但是... 另外由于版本并非单纯的数字, 抓取时可能无法进行较好的自动判断. 由于服务器确实存在原始字体, 因此在抓取重复时可以手动查看并选取版本 (通常选取较新版本).

服务器费用其实并不高昂, 在目前这一台服务器上大约抓取并存储了约 50GB 的字体包, 剩下的主要是配置及流量费用, 子集化较为消耗性能, 但可以通过排队及限制用户并发解决, 而子集化本身能大幅降低流量消耗.
回复

使用道具 举报

3

主题

406

回帖

42

VC币

至尊会员

Rank: 16Rank: 16Rank: 16Rank: 16

积分
205625

活跃达人

shadows 发表于 2024-11-4 16:18:14 | 显示全部楼层
本帖最后由 shadows 于 2024-11-4 16:23 编辑
每次都安装字体

现在论坛里推荐的做法都是用工具临时挂载所需字体,有的工具甚至是无感/无需用户操作的挂载,即播放器加载什么字幕,工具自动从本地的字体大包里挂载所需的字体。在这样的方法下,除了要占用不算大的空间放字体外(现在的硬盘里放几十G的东西不成问题,如果只存字幕组的常用字体就更少了),没啥缺点。

对于目前这个服务提供的子集化,假如不是在下载时一并子集化了的情况下,普通用户每次下载字幕都要手动子集化一次…这么看来,与另一项提供字体打包的功能相比,便利性相差不大?

对于分析字幕然后提供字体打包下载,在我的使用情况来说,很少,因为提供外挂字幕的一般都会提供字体包。要不然就是内嵌,或者内封字幕+子集化字体一起的…(再加上本地有字体包

以上我并不是否定/批评这些服务,只是谈了下相比使用本地字体大包+自动挂载字体方案的看法,对于你提供的方案方法我觉得也很有意义。

点评

不过这也只是众多手段中的一种, 就在线服务而言, 应该还算是比较罕见?  发表于 2024-11-4 18:56
Mac 用户, 所以不仅没软件也没有硬盘, 嗯... 下载时是可以一并子集化的, 与站点集成的情况下字幕可直接传送至字体服务器, 从而实现用户无感 (可能需选择类型, 但理论可通过设定默认行为解决). 不过这也只是众多手段   发表于 2024-11-4 18:56
回复

使用道具 举报

4

主题

107

回帖

0

VC币

高级会员

Rank: 4

积分
20836
dqtql 发表于 2024-11-4 19:19:29 | 显示全部楼层
哎,感觉只要系统盘空间不是特别紧张,下个vcb的字体精简包基本够用了。然后在看番过程中查漏补缺,一段时间后基本不需要再另外下载字体了。
回复

使用道具 举报

20

主题

164

回帖

20

VC币

至尊会员

Rank: 16Rank: 16Rank: 16Rank: 16

积分
244783
op200 发表于 2024-11-4 20:49:19 | 显示全部楼层
lslqtz 发表于 2024-11-4 13:04
我经常下载特效字幕观看, 但不希望每次都安装字体 (有时字体包也比较难找), 字幕经常随视频用后即删. 在线 ...

或许可以尝试在云端把子集化的字体直接封进ass里,大部分滤镜是支持ass内封字体的,这样或许更方便

点评

本项目正是支持但不仅支持其中这一功能.  发表于 2024-11-4 21:44
回复

使用道具 举报

13

主题

31

回帖

2256

VC币

星辰大海

Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

积分
537830
Jalapeño 发表于 2024-11-5 08:48:04 | 显示全部楼层
有什么手段来避免吃字体公司的 DMCA 吗?

点评

抗 DMCA 服务器, 或小范围 (包括站点限定), 或内网自用.  发表于 2024-11-5 09:57
回复

使用道具 举报

0

主题

1

回帖

0

VC币

新手上路

Rank: 1

积分
15
heartkissshot 发表于 2025-2-3 23:45:07 | 显示全部楼层
感谢大佬,帮了很大忙,特意注册账号前来致谢。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表