|
本帖最后由 b8b41e3c 于 2024-10-8 15:53 编辑
是一个自用为主的超级缝合怪
v5版本已发布,更易用的命令行风格.
v5.5.0版本已发布,性能更好,无需FontTools以及自带ASS转PGS.(仅自动化提供Windows,macOS,Linux的amd64及arm64架构的可执行文件.)
从v5.5.9起,将以字幕用到的所有字体文件为单位,取出这些字体文件的共用字体名作为子集化后的新字体名,以解决一些奇葩字幕因为子集化后分配了错误的新名字而导致"缺字"的问题.
从v5.6.3起,将默认对字体名混用的字幕报错,可用--no-font-check-strict来忽略.
下载:
https://github.com/MkvAutoSubset/MkvAutoSubset/releases
GUI版本:
https://github.com/MkvAutoSubset/MkvAutoSubset/releases/download/gui/mkvtool-win64.zip
Docker:
https://github.com/MkvAutoSubset/MkvAutoSubset?tab=readme-ov-file#docker%E9%95%9C%E5%83%8F%E4%BD%BF%E7%94%A8%E8%AF%B4%E6%98%8E
Win64的所有依赖:
https://github.com/MkvAutoSubset/MkvAutoSubset/releases/download/win64_assets/win64_assets.zip
(用法:下载并解压,运行"install.bat")
什么叫字幕字体子集化 - 这里说的字幕特指ass(ssa)这种带有特效的文本字幕;
- ass字幕会引用一些字体,这些字体在播放器所在的系统里可能有安装,也可能没有;
- 为了实现在任意地方都能有完整的视觉体验,可以把字幕以及字幕里所引用的字体文件一起打包进mkv文件里;
- 以上的操作存在一个问题,有些字幕会引用很多字体,这些字体文件体积动辄几十MB,而字幕只用到了其中的几个字而已;
- 比如一个番剧本体200M,但打包了字体文件后变成400M了,这像画吗?
- 综上所述,子集化的目的就是把字体拆包,找出字幕用到的那部分字形并重新打包;
- 好处不仅限于节约存储空间,加快缓冲速度;
- 想想看:在一个只有30Mbps上传的网络环境下,要看上面那个光字体就200M的番剧,这河里吗?
主要功能
1. 列出.ass字幕实际用到的字体(在建立了字体缓存的情况下可以复制对应字体到指定目录)
2. 根据ass字幕内容对字体进行子集化
3. ass字幕转pgs
4. 从mkv文件导出字幕和字体
5. 将字幕和字体封装进mkv
6. 查看一个字体包含的字体名和族名
7. 生成测试用视频(可指定源亦可生成空白视频,字幕可内封亦可烧录.)
详细使用方法请看:
https://github.com/MkvAutoSubset/MkvAutoSubset
关于字幕解析的说明
1. 支持\b \i \r \fn以及style里的bold,italic
2. 支持字体fallback,例:[xxx Bold]不存在的时候会fallback到[xxx Regular]
关于字幕默认轨道的说明
1. v4.3.2以前的版本,根据mkvmerge的版本,可能会出现有多轨字幕时,输出的mkv文件里所有的字幕轨道都被设置成默认轨道.这个问题在v4.3.2得到解决.
2. 处理方式是如果字幕文件名不以"#"开头,将去掉该字幕默认轨道的标志.换而言之,如果一个mkv里的字幕的文件名都不以"#"开头,那么这个mkv文件就没有默认的字幕轨道.
温馨提醒
这个工具近期因为如上的字幕解析修改过解析器的部分,希望能有更多的样本测试健壮性,请大家多多反馈。
另提供sdk,欢迎二开(比如做个gui版本,原有的已弃坑,仅更新依赖库.),也欢迎pr。
详情:
https://github.com/MkvAutoSubset/MkvAutoSubset/tree/master/mkvlib/c
另应楼下要求提供一个ass2mks的脚本,虽然我并不喜欢这种东西。
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
评分
-
查看全部评分
|