sillonae 发表于 2023-4-17 17:31:43

求教关于字体子集化的几个类型

如题,最近一段时间在折腾字幕的字体子集化,稍稍了解后发现一些子集化的字幕在MKVToolNix上呈现的MIME类型不同,如:


图1是使用了站内热心朋友@wyzdwdz 开发的assfonts工具所输出的子集化字幕的MIME类型
图2是来源于某字幕组和lolihouse合作的新番webrip里内封子集化字幕MIME类型
图3是站内发布的高木同学3的子集化字幕的MIME类型


注意到MIME类型均有所不同:分别为font/o(t)tf、application/vnd.ms-opentype或x-truetype-font、font/sfnt。
想请教一下各位这三种类型有何优劣或者是兼容性哪个更佳,如果可以的话也想请教一下后面图1图2的子集化是如何进行的才会有这样的MIME类型,谢谢!

sommio 发表于 2023-4-17 18:49:49

本帖最后由 sommio 于 2023-4-17 19:00 编辑

application/vnd.ms-opentype
application/x-truetype-font
是使用了很长时间的非标准 MIME,兼容性更好

font/otf
font/ttf
font/sfnt(之前是 application/font-sfnt)
是较新的 RFC8081 定义 MIME

反正目前 mpv 都支持就是了(

sillonae 发表于 2023-4-17 19:10:28

sommio 发表于 2023-4-17 18:49
application/vnd.ms-opentype
application/x-truetype-font
是使用了很长时间的非标准 MIME,兼容性更好


如果我把字体文件直接拖进MKVToolNix混流字幕出来的也是font/otf和font/ttf,不知道相比于application这种在更多的播放器比如安卓(电视以及电视盒子)平台还有硬盘播放器之中哪种类型更好一些,能正常读取和显示字体

另外求个application/vnd.ms-opentype这样的子集化方式

StarRingChild 发表于 2023-4-17 19:14:30

fd -e mkv -x mkvpropedit {} --attachment-mime-type application/vnd.ms-opentype --update-attachment mime-type:font/otf --attachment-mime-type application/x-truetype-font --update-attachment mime-type:font/ttf --attachment-mime-type application/x-truetype-font --update-attachment mime-type:font/sfnt

孤雨独火 发表于 2023-4-17 23:50:58

本帖最后由 孤雨独火 于 2023-4-17 23:53 编辑

> 如果我把字体文件直接拖进MKVToolNix混流字幕出来的也是font/otf和font/ttf

gui界面就能直接换类型

> 不知道相比于application这种在更多的播放器比如安卓(电视以及电视盒子)平台还有硬盘播放器之中哪种类型更好一些

楼上已经回答你了“兼容性更好”


> 另外求个application/vnd.ms-opentype这样的子集化方式


为什么不直接向assfonts提feature request




vxzms 发表于 2023-4-18 13:00:14

简单说,是兼容性问题。一些长久不更新却被广泛使用的字幕滤镜或各平台播放器不提供对标准化 MIME 的支持。

默认的字体 MIME 变化是从 mkvmerge v58.0.0 开始的,v67.0.0 增加了 --enable-legacy-font-mime-types。

joker2000 发表于 2023-4-18 13:03:33


首先你搞错了一件事,这些类型只是封装时指定的tag,和子集化方式没有关系。
application/vnd.ms-opentype或x-truetype-font的兼容性更好。
你可以在mmg里采用如下方式选择旧版mime类型,即application/*类型。


sommio 发表于 2023-4-18 15:23:33

本帖最后由 sommio 于 2023-4-18 15:33 编辑

sillonae 发表于 2023-4-17 19:10
如果我把字体文件直接拖进MKVToolNix混流字幕出来的也是font/otf和font/ttf,不知道相比于application这 ...
另外不建议封 OpenType 字体,目前只有基于 harfbuzz 的 libass 可以正确渲染它
这同时也是不符合ass spec 的,可通过 otf2ttf 转换 OpenType 字体为 TureType
This section contains text-encoded font files, if the user opted to embed non-standard fonts in the script. Only truetype fonts can be embedded in SSA scripts. Each font file is started with a single line in the format

wyzdwdz 发表于 2023-4-19 01:42:12

本帖最后由 wyzdwdz 于 2023-4-19 01:44 编辑

sommio 发表于 2023-4-18 15:23
另外不建议封 OpenType 字体,目前只有基于 harfbuzz 的 libass 可以正确渲染它
这同时也是不符合ass sp ...
ass spec 只规定了不允许把 otf 封进字幕文件里面,是否把它封进 mkv 容器里面则是随意的。至于能不能正确渲染它则取决于播放器了,或者即使播放器允许,有些设备也根本无法读取 otf 字体,比如一些蓝光硬盘机之类的。兼容性上确实是 ttf 更强一点

孤雨独火 发表于 2023-4-19 02:07:26

wyzdwdz 发表于 2023-4-19 01:42
ass spec 只规定了不允许把 otf 封进字幕文件里面,是否把它封进 mkv 容器里面则是随意的。至于能不能正确 ...
我认为楼主的思路不合理,既然选择了子集化这么“前沿”的东西还考虑“上古”设备(硬盘机蓝光机)的兼容性就很不合适。

按照兼容性走到底的结果要么是硬字幕,要么转图形字幕(最好是内封,不支持外挂的播放器又不是没有)。做一些舍弃是必然的
页: [1] 2
查看完整版本: 求教关于字体子集化的几个类型