找回密码
 立即注册
查看: 5304|回复: 21

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

8

主题

151

回帖

765

VC币

荣誉会员

Rank: 14Rank: 14Rank: 14Rank: 14

积分
104874

崭露头角

sillonae 发表于 2023-4-17 17:31:43 | 显示全部楼层 |阅读模式
如题,最近一段时间在折腾字幕的字体子集化,稍稍了解后发现一些子集化的字幕在MKVToolNix上呈现的MIME类型不同,如:

图1

图1

图2

图2

图3

图3

图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类型,谢谢!
回复

使用道具 举报

24

主题

772

回帖

3104

VC币

星辰大海

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

积分
648753
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 都支持就是了(
回复

使用道具 举报

8

主题

151

回帖

765

VC币

荣誉会员

Rank: 14Rank: 14Rank: 14Rank: 14

积分
104874

崭露头角

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这样的子集化方式
回复

使用道具 举报

16

主题

293

回帖

504

VC币

白金会员

Rank: 12Rank: 12Rank: 12

积分
55631
StarRingChild 发表于 2023-4-17 19:14:30 | 显示全部楼层
  1. 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
复制代码


回复

使用道具 举报

47

主题

2781

回帖

2020

VC币

星辰大海

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

积分
432683

崭露头角活跃达人CD!BD!坚持不懈灌水之王日积月累

孤雨独火 发表于 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




回复

使用道具 举报

16

主题

92

回帖

5626

VC币

版主

Rank: 24Rank: 24Rank: 24Rank: 24Rank: 24Rank: 24

积分
287966

崭露头角CD!BD!新人登场

vxzms 发表于 2023-4-18 13:00:14 | 显示全部楼层
简单说,是兼容性问题。一些长久不更新却被广泛使用的字幕滤镜或各平台播放器不提供对标准化 MIME 的支持。

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

使用道具 举报

3

主题

121

回帖

79

VC币

荣誉会员

Rank: 14Rank: 14Rank: 14Rank: 14

积分
119903
joker2000 发表于 2023-4-18 13:03:33 | 显示全部楼层

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

1.png
回复

使用道具 举报

24

主题

772

回帖

3104

VC币

星辰大海

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

积分
648753
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

点评

上古版本的不依赖hb的libass基本没有使用的意义。。。  发表于 2023-4-18 16:03
https://github.com/libass/libass/blob/32dea3434dbd85f9fb2700b6863c1bd92f00b86f/Changelog#L130  发表于 2023-4-18 16:02
harfbuzz难道不是强制依赖???还有不是基于hb的libass???  发表于 2023-4-18 15:57
回复

使用道具 举报

2

主题

104

回帖

0

VC币

至尊会员

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

积分
153751
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 更强一点
回复

使用道具 举报

47

主题

2781

回帖

2020

VC币

星辰大海

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

积分
432683

崭露头角活跃达人CD!BD!坚持不懈灌水之王日积月累

孤雨独火 发表于 2023-4-19 02:07:26 | 显示全部楼层
wyzdwdz 发表于 2023-4-19 01:42
ass spec 只规定了不允许把 otf 封进字幕文件里面,是否把它封进 mkv 容器里面则是随意的。至于能不能正确 ...

我认为楼主的思路不合理,既然选择了子集化这么“前沿”的东西还考虑“上古”设备(硬盘机蓝光机)的兼容性就很不合适。

按照兼容性走到底的结果要么是硬字幕,要么转图形字幕(最好是内封,不支持外挂的播放器又不是没有)。做一些舍弃是必然的

点评

对的,这也是我那个软件也允许往 ass 字幕中嵌入 otf 字体的原因(尽管不符合 ass spec,但是基本上现代的设备都支持的)  发表于 2023-4-19 02:12
回复

使用道具 举报

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

本版积分规则

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