找回密码
 立即注册
楼主: b8b41e3c

mkvtool:一个ass字幕子集化/mkv文件处理一条龙工具

该用户从未签到

0

主题

1

回帖

0

VC币

新手上路

Rank: 1

积分
15
shoyoo 发表于 2024-9-25 23:33:49 | 显示全部楼层
大佬,咨询个问题,假如我只需要ass转sup应该用什么指令,我试过
  1. mkvtool-windows-amd64 s 2.ass --enable-ass-pgs-coexist  --framerate string -f "D:\Download\AviSynth\mkvtool-next\bin"
复制代码

这种,貌似无法输出sup文件
回复

使用道具 举报

该用户从未签到

1

主题

92

回帖

0

VC币

高级会员

Rank: 4

积分
30508
b8b41e3c  楼主| 发表于 2024-9-26 08:59:02 | 显示全部楼层
本帖最后由 b8b41e3c 于 2024-9-26 09:04 编辑
shoyoo 发表于 2024-9-25 23:33
大佬,咨询个问题,假如我只需要ass转sup应该用什么指令,我试过

这种,貌似无法输出sup文件 ...

mkvtool s a.ass --enable-pgs-output
上面的意思是为a.ass生成一个分辨率为1080p,帧率为23.976的pgs,且不保留子集化后的产物.

更多选项:
--enable-ass-pgs-coexist   Enable pgs and ass coexistence mode.
--framerate                         Set pgs or blank video frame rate (e.g., 23.976, 24, 25, 30, 29.97, 50, 59.94, 60, or custom fps like 15/1). (default "23.976")
--resolution                        Set pgs or blank video resolution (e.g., 720p, 1080p, 2k, or custom resolution like 720*480). (default "1920*1080")

回复

使用道具 举报

该用户从未签到

6

主题

46

回帖

0

VC币

注册会员

Rank: 2

积分
882
QH7B 发表于 2024-9-29 18:08:24 | 显示全部楼层
发现对于微软雅黑字体的处理还是有点问题:
系统自带的微软雅黑字体的Regular和Bold字型是独立的两个文件,文件名是msyh.ttc和msyhbd.ttc,并且这两个字体文件都有 微软雅黑 和 Microsoft YaHei 这两个名称,于是当这两个名称同时出现在一个字幕文件里,并且字型分别为Bold和Regular的情况下,如果使用 Regular 的样式(Style)的对话(Dialogue)后面使用了 {\b1} 这种代码,Regular 字型的字体文件(msyh.ttc)子集化后{\b1}后面出现的文字就会全部缺字。
回复

使用道具 举报

该用户从未签到

1

主题

92

回帖

0

VC币

高级会员

Rank: 4

积分
30508
b8b41e3c  楼主| 发表于 2024-9-30 09:43:59 | 显示全部楼层
本帖最后由 b8b41e3c 于 2024-9-30 09:49 编辑
QH7B 发表于 2024-9-29 18:08
发现对于微软雅黑字体的处理还是有点问题:
系统自带的微软雅黑字体的Regular和Bold字型是独立的两个文件, ...
[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: OPJP,Microsoft YaHei,15,&H0019CA69,&HFF0000FF,&H00FFFFFF,&HB4FFFFFF,0,0,0,0,100,100,0,0.00,1,2,2,8,10,20,7,1

[Events]
Format: Layer, Start, End, Style, Actor, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:01.00,0:00:05.00,OPJP,NTP,0000,0000,0000,,啊{\b1}白
Dialogue: 0,0:00:06.00,0:00:10.00,OPJP,NTP,0000,0000,0000,,才

无法复现,你给个有问题的版本

Regular 字型的字体文件(msyh.ttc)子集化后{\b1}后面出现的文字就会全部缺字

这不是可以预见的情况?因为{\b1}的意思是,后面的字全部用粗体啊,那这部分字应该分配给msyhbd.ttc,关msyh.ttc什么事?


回复

使用道具 举报

该用户从未签到

6

主题

46

回帖

0

VC币

注册会员

Rank: 2

积分
882
QH7B 发表于 2024-9-30 11:58:28 | 显示全部楼层
b8b41e3c 发表于 2024-9-30 09:43
无法复现,你给个有问题的版本


鬼灯的冷彻 S01E04


蓝奏云:ikkdt2b7q89e
注意 subsetted 文件夹里ASS文件的第 517 行
在封装字幕前我习惯用ListAssFonts再扫描一遍,确保没有错误。
结果昨天有部番剧扫描出大量缺字问题,而且缺字字体都是微软雅黑,这个是其中有问题的一话。
回复

使用道具 举报

该用户从未签到

6

主题

46

回帖

0

VC币

注册会员

Rank: 2

积分
882
QH7B 发表于 2024-9-30 12:48:08 | 显示全部楼层
目前我能想到的解决办法只有移除msyhbd.ttc这个文件。我觉得问题在于msyh.ttc和msyhbd.ttc被识别成了不同的字体,而非同一字体的不同字型,导致加了{\b1}后的文字播放器还是会在Regular字型的字体文件里找,如果能将这两个文件子集化成同名字体应该就没问题了。
回复

使用道具 举报

该用户从未签到

1

主题

92

回帖

0

VC币

高级会员

Rank: 4

积分
30508
b8b41e3c  楼主| 发表于 2024-9-30 13:41:25 | 显示全部楼层
本帖最后由 b8b41e3c 于 2024-9-30 13:58 编辑
QH7B 发表于 2024-9-30 12:48
目前我能想到的解决办法只有移除msyhbd.ttc这个文件。我觉得问题在于msyh.ttc和msyhbd.ttc被识别成了不同的 ...

你看看这个像是缺字的吗?


而且我用你给的subsetted也没有问题,然后,在PotPlayer,子集化后就不粗了,不知道是为啥.

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

该用户从未签到

6

主题

46

回帖

0

VC币

注册会员

Rank: 2

积分
882
QH7B 发表于 2024-9-30 14:12:37 | 显示全部楼层


字体文件里确实没有这几个字啊

回复

使用道具 举报

该用户从未签到

1

主题

92

回帖

0

VC币

高级会员

Rank: 4

积分
30508
b8b41e3c  楼主| 发表于 2024-9-30 14:18:45 | 显示全部楼层
本帖最后由 b8b41e3c 于 2024-9-30 14:46 编辑
QH7B 发表于 2024-9-30 14:12
字体文件里确实没有这几个字啊

有,还有一个同前缀的文件啊,那个才是粗体


经人提点,你可以用 --no-font-rename 参数子集化,这样可以解决PotPlayer的问题.mpv一直没有问题.

目前最终的解决方案是,不要在同一个字幕里用多个字体名字,统一一下

回复

使用道具 举报

该用户从未签到

6

主题

46

回帖

0

VC币

注册会员

Rank: 2

积分
882
QH7B 发表于 2024-9-30 14:52:03 | 显示全部楼层

没有同前缀的啊?明明就是识别成了不同字体,分别改名成了FU91V8T7和8959XMG6,FU91V8T7里有这几个字,8959XMG6没有。。


用assfonts子集化的倒是有:

回复

使用道具 举报

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

本版积分规则

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