Skip to content

Nekomoekissaten-SUB/Mobsub

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Mobsub

类型 主要功能
SubtitleParse 类库 读取和写入字幕文件
Ikkoku 控制台应用程序 字幕相关的处理工具
ZhConvert 类库 中文繁体化
Test 控制台应用程序 测试用

SubtitleParse

命名空间:Mobsub.SubtitleParseMobsub.AssTypes

目前支持的字幕类型:ass

Ass

  1. 读取、解析、写入常规 4.00+ 样式版本的 ass 文件,支持的部分:
    • Script Info
    • V4+ Styles(旧版本需要确认,还有个别 format 可能有兼容性问题)
    • Events
    • Fonts
    • Graphics
    • Aegisub Project Garbage
    • Aegisub Extradata
  2. 提取 ass 中使用的字体和字形
  3. 提取 ass 中使用的特效标签(overide tags)
  4. 解析并转化 ass 中的内嵌字体和图片
    • 目前不支持转化字体为 ass 中的内嵌字体,因为还没搞懂使用的name和bold/italic/encoding判断依据

Ikkoku

CommandLine

目前支持的字幕类型:ass

clean(字幕清理)

  1. 移除无用部分:目前是移除 FontsGraphicsAegisub Project GarbageAegisub Extradata,暂时不支持自定义
  2. Script Info 移除 ; 起始的行,可以通过 --keep-comments 保留
  3. Script Info 中的 Tilte 值改为 ass 的文件名,不含后缀,暂时不支持自定义
  4. Script Info 添加 LayoutResX/Y,默认与 PlayResX/Y 值相同,需要指定 --add-layoutres 开启
  5. 检查并记录 Events 中使用但 Styles 中未定义的样式
  6. Events 中移除 U+200EU+200FU+200B,将 U+00A0 替换为 U+0020
  7. Events 中清理 aegisub-motion 产生的多余字符
  8. 注释并打印 Events 中开始时间大于结束时间的行
  9. 如果使用 --drop-unused-styles 可以删除没有使用的样式,默认不开启
  10. 如果使用 --extract-binaries 可以将 FontsGraphics 中的数据转回二进制文件,与 ass 输出路径同级目录
  11. preset 可以指定预设,可以被其他选项覆盖
    • Basic: 启用 1,但不会移除 Aegisub Extradata
    • More:启用 1-8

check(字幕检查)

  1. 通过 --tag 指定 mod 检查 VSFilterMod 标签,weird 检查可能有问题的标签,both 同时检查这两种
  2. 通过 --style 检查使用却未定义的样式,与 clean 的 5 检查范围相同
  3. 默认检查是否有错误的时间戳、无用的字符,与 clean 的 6、8 检查范围相同

tpp(字幕时间处理)

多种模式不能同时使用

平移

--shift-by 指定要平移的跨度,通过后缀分别,如果平移为帧时需要指定 --fps

--shift-styles 指定要平移的样式,默认只处理指定的样式,若第一个元素为 ! 则不处理指定的样式

  • 计划支持分时间段(结合章节文件)的平移(分样式的平移考虑功能优化)
转换

根据 --tcfile 指定的符合 mkv timestamp v2 的 timecode 文件,将 vfr 字幕转为 cfr 字幕

merge(字幕混合拼接)

--section 指定要拼接的部分,只支持 Styles、Events

直接拼接

需要指定 --base(基础文件)、--merge(要拼接的文件)

根据配置拼接

可以在平移后再进行拼接,配置文件见下文的「merge 配置文件」

需要指定 --config(配置文件)、--config-var(配置文件的变量)

  • --config-var 可以配置两个变量,第一个为集数(连续多集用 : 分割起止集),第二个为语言后缀

cjkpp(中日韩字形处理)

构建二进制字典可以使用子命令 build-dict

目前实现的:

  1. 基于 OpenCCSharp 类似于 OpenCC 的中文字形词汇转换

    • 忽略 ass style 中包含 JP(不区分大小写)的行(目前不支持处理 \r 指定的部分)
    • 转换后字符数量与转换前不同时,ovrride block 会插在原位置,且在控制台打印在文件中的行号和前后文字便于检查
  2. 简易配置文件(与 OpenCCSharp 的相同)

    • 配置中的相对路径基于配置文件的路径
    • 计划增加一个包含多处理步骤的配置文件,可以针对不同的样式采用不同的处理

计划实现的:

  1. 日文假名的全半角转换(基于 nkf?)
  2. 修正常用错字,包括且不限于中文中误用的日文汉字

Others

Mkv timestamp

目前只支持解析 v2 格式

merge 配置文件

toml 文件,有 v1、v2 两种格式

v1 示范样例:Nekomoekissaten-Storage/Danseur/Subs /danseur_op.yml

v2 示范样例:Nekomoekissaten-Storage/Summertime/Subs /str_effect.yml

v2
  1. nameftpl_frshift_fr 集数下的同一 key 表示同一文件

  2. shift_fr 下的 key 代表集数,集数 key 下文件 key 的 value 是一个 int 数组,根据位置具有不同含义:

    1. 相对 tpl_fr 的偏移量(必有)
    2. 在视频中 tpl_fr 帧的帧号,如果这一帧不存在可以根据其他参考点计算偏移量,并记录该点(一般有,值为 -1 跳过解析)
    3. 如果不需要完整的文件合并进去,则填入一个开始需要合并的帧号,前面的部分会被截断(需要时有,值为 -1 跳过解析)

ZhConvert

未定未来是否会支持繁化姬

OpenCCSharpUtils

基于受 OpenCC 启发由 CXuesong 开发的 OpenCCSharp(License: Apache-2.0)。

  1. 文本字典需要转换为二进制格式 tris,文本格式与 OpenCC 的文本相同,二进制与 OpenCC 的 ocd / ocd2 不兼容
  2. 配置文件 json 定义转换使用的字典,每组 Dictionaries 有先后之分,内部顺序无区别
    • 与 OpenCC 的 json 不兼容,暂未支持 json 的转换

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages