[Parsed_ass_0 @ 0x7fffc6286740] Glyph 0x505A not found, selectin
HandBrake只支持简单ass字幕文件。稍微加个什么下划线、斜体它都能给报错。
那个小谁工具箱官网下载链接挂了。我实在不想在乱七八糟的可疑网站去下载软件。
尝试用ffmpeg把字幕压进视频,结果仍然出错……
简单来说,大概是英文Windows下使用中文字体名造成的两个问题:
1、*.ass字幕文件里指定样式的时候使用了中文字体名称,然后在英文系统里对不上号。需要在ass里面改。Aegisub里可以改。
2、即使1解决了,在英文系统里 C:\Windows\Fonts\ 目录下的字体在Linux Subsystem里ffmpeg无法正常使用。所以下载的字体要找另一个不被windows字体管理系统干扰的普通文件夹,然后告诉ffmpeg去那找文件。
出错信息:
[Parsed_ass_0 @ 0x7fffc6286740] Glyph 0x505A not found, selecting one more font for (思源黑体 CN Bold, 400, 0)
[Parsed_ass_0 @ 0x7fffc6286740] Glyph 0x4E0D not found, selecting one more font for (思源黑体 CN Bold, 400, 0)
[Parsed_ass_0 @ 0x7fffc6286740] Glyph 0x5230 not found, selecting one more font for (思源黑体 CN Bold, 400, 0)
[Parsed_ass_0 @ 0x7fffc6286740] Glyph 0x5B9D not found, selecting one more font for (思源黑体 CN Bold, 400, 0)
[Parsed_ass_0 @ 0x7fffc6286740] Glyph 0x8D1D not found, selecting one more font for (思源黑体 CN Bold, 400, 0)
[Parsed_ass_0 @ 0x7fffc6286740] Glyph 0x4F60 not found, selecting one more font for (思源黑体 CN Bold, 400, 0)
[Parsed_ass_0 @ 0x7fffc6286740] Glyph 0x751A not found, selecting one more font for (思源黑体 CN Bold, 400, 0)
[Parsed_ass_0 @ 0x7fffc6286740] Glyph 0x81F3 not found, selecting one more font for (思源黑体 CN Bold, 400, 0)
[Parsed_ass_0 @ 0x7fffc6286740] Glyph 0x8FDE not found, selecting one more font for (思源黑体 CN Bold, 400, 0)
所以先尝试去 https://github.com/adobe-fonts/source-han-sans/releases 下载这个字体……
我下的这个Region Specific Subset OTFs Simplified Chinese (简体中文)

如果只是正常程序在Windows里使用,可以把里面文件直接扔进C:\Windows\Fonts\,但是我发现只要装在C:\Windows\Fonts\,在Linux Subsystem命令行就无法正常使用。
所以这里要自己创建一个普通文件夹【不是C:\Windows\Fonts\】。这里我自己创建了一个文件夹:【C:\tmp\fonts\2\】,把这些otf扔进去。

至于字幕文件本身,可以在aegisub的Subtitle菜单 - Styles Manager - 编辑有问题的样式,选一个英文名字体

最后在windows的linux子系统命令行里大概是这样子:

-i 后面是原始视频文件
subtitles=后面是字幕ass文件
fontsdir=后面是字体所在文件夹。因为这里是linux subsystem所以原本解压的位置在mnt下了
charenc好像可有可无
最后的最后是输出文件名。
这个解决方法很不完美。因为ass文件里的样式乱动还是容易出问题。如果是字幕组里的活还是交给有中文系统的人去最后压制比较省心。
自己单独做的东西倒是可以随便用这个。至少绕开Handbrake碰上简单斜体/下划线都翻车的问题:
