docs: add ass docs

This commit is contained in:
CDN 2025-04-23 19:33:02 +08:00
parent 76e1298ded
commit 6d730fa69b
Signed by: CDN
GPG key ID: 0C656827F9F80080
4 changed files with 109 additions and 22 deletions

View file

@ -36,9 +36,10 @@ sub-cli convert <源文件> <目标文件>
| 源格式 | 目标格式 | 注意 |
|---------------|---------------|-------|
| SRT (.srt) | SRT, VTT, LRC, TXT | - |
| VTT (.vtt) | SRT, VTT, LRC, TXT | - |
| LRC (.lrc) | SRT, VTT, LRC, TXT | - |
| SRT (.srt) | SRT, VTT, LRC, TXT, ASS | - |
| VTT (.vtt) | SRT, VTT, LRC, TXT, ASS | - |
| LRC (.lrc) | SRT, VTT, LRC, TXT, ASS | - |
| ASS (.ass) | SRT, VTT, LRC, TXT, ASS | - |
| TXT (.txt) | — | TXT只能作为目标格式不能作为源格式 |
### 功能保留
@ -61,6 +62,18 @@ sub-cli convert <源文件> <目标文件>
- 对于最后一个条目添加默认时长通常3-5秒来创建结束时间
- **转换为LRC时丢失**: 当其他格式转换为LRC时任何结束时间戳信息都会被丢弃
#### ASS功能
- **保留**: 文本内容、时间线(开始和结束时间)、基本样式信息
- **仅有基本支持**: 转换创建一个具有基本结构的"最小"ASS文件
- **转换为ASS时**:
- 基本样式粗体、斜体、下划线会转换为具有默认设置的ASS样式
- 默认字体为Arial大小20pt具有标准颜色和边距
- 只创建"Dialogue"(对话)类型的事件(不创建"Comment"或其他事件类型)
- **从ASS转换时**:
- 只转换类型为"Dialogue"的事件,忽略"Comment"事件
- 在目标格式支持的情况下保留样式信息
- ASS特有的属性如Layer、MarginL/R/V等在可能的情况下存储为元数据
#### TXT功能
- **仅输出**: 纯文本格式只包含没有任何时间或样式的文本内容
@ -83,6 +96,12 @@ sub-cli convert lyrics.lrc transcript.txt
# 从WebVTT转换为SRT
sub-cli convert subtitles.vtt subtitles.srt
# 从SRT转换为ASS
sub-cli convert subtitles.srt subtitles.ass
# 从ASS转换为SRT
sub-cli convert subtitles.ass subtitles.srt
```
## sync
@ -108,6 +127,7 @@ sub-cli sync <源文件> <目标文件>
- SRT到SRT
- LRC到LRC
- VTT到VTT
- ASS到ASS
### 行为详情
@ -128,19 +148,29 @@ sub-cli sync <源文件> <目标文件>
- 开始时间使用源条目之间的线性插值计算
- 结束时间根据源条目时长计算
- 保持条目之间的时间关系
- **从目标保留**: 所有字幕文本内容。
- **从目标保留**: 所有内容文本
- **在目标中修改**: 更新时间戳并标准化条目编号从1开始顺序编号
#### 对于VTT文件
- **当条目数匹配时**: 源的开始和结束时间直接应用于目标条目。
- **当条目数不同时**: 使用基于线性插值的缩放方法类似于SRT同步
- **当条目数不同时**: 使用基于线性插值的缩放方法:
- 开始时间使用源条目之间的线性插值计算
- 结束时间根据源条目时长计算
- 保持条目之间的时间关系
- **从目标保留**: 所有字幕文本内容和样式信息。
- **在目标中修改**: 更新时间戳并标准化提示标识符。
#### 对于ASS文件
- **当条目数匹配时**: 源时间线(开始和结束时间)直接应用于目标事件。
- **当条目数不同时**: 使用基于线性插值的缩放方法:
- 开始时间使用源事件之间的线性插值计算
- 结束时间根据源事件时长计算
- 保持事件之间的时间关系
- **从目标保留**: 所有事件文本内容、样式引用和其他属性如Layer、MarginL/R/V
- **在目标中修改**: 只更新时间戳Start和End
### 时间线插值详情
同步命令使用线性插值来处理源文件和目标文件之间不同的条目数量:
@ -177,6 +207,9 @@ sub-cli sync reference.lrc target.lrc
# 使用另一个VTT文件作为参考来同步VTT文件
sub-cli sync reference.vtt target.vtt
# 使用另一个ASS文件作为参考来同步ASS文件
sub-cli sync reference.ass target.ass
```
## fmt
@ -202,6 +235,7 @@ sub-cli fmt <文件>
| SRT | `.srt` | 标准化条目编号从1开始顺序<br>格式化时间戳为`00:00:00,000`格式<br>确保条目之间适当的间距 |
| LRC | `.lrc` | 组织元数据标签<br>标准化时间戳格式`[mm:ss.xx]`<br>确保正确的内容对齐 |
| VTT | `.vtt` | 验证WEBVTT头<br>标准化提示标识符<br>格式化时间戳为`00:00:00.000`格式<br>组织样式信息 |
| ASS | `.ass` | 标准化部分顺序([Script Info], [V4+ Styles], [Events]<br>格式化时间戳为`h:mm:ss.cc`格式<br>保留所有脚本信息、样式和事件数据 |
### 格式特定详情
@ -214,6 +248,9 @@ sub-cli fmt <文件>
#### VTT格式化
格式化WebVTT文件时命令确保适当的头格式、顺序提示标识符和标准时间戳格式。所有VTT特定功能如样式、定位和注释都被保留。
#### ASS格式化
格式化器读取并解析ASS文件然后以标准化结构重新生成它。它保持所有原始内容包括脚本信息、样式和事件。强制执行标准部分顺序[Script Info], [V4+ Styles], [Events]),并以标准的`h:mm:ss.cc`格式格式化时间戳。
### 示例
```bash
@ -225,6 +262,9 @@ sub-cli fmt lyrics.lrc
# 格式化VTT文件
sub-cli fmt subtitles.vtt
# 格式化ASS文件
sub-cli fmt subtitles.ass
```
## version

View file

@ -15,13 +15,13 @@ Sub-CLI 是一款专为字幕处理和生成设计的命令行工具。无论您
## Sub-CLI 能做什么?
- **转换**在多种字幕格式之间转换SRT、VTT、LRC、TXT
- **转换**在多种字幕格式之间转换SRT、VTT、LRC、ASS、TXT
- **同步**:字幕文件之间的时间轴同步
- **格式化**:确保字幕文件具有一致的样式
## 主要特点
- **格式灵活性**:支持多种字幕格式,包括 SRT、VTT、LRC 和纯文本
- **格式灵活性**:支持多种字幕格式,包括 SRT、VTT、LRC、ASS 和纯文本
- **时间轴同步**:轻松将字幕与音频/视频内容对齐
- **格式特定功能保留**:在转换过程中保持格式特定的功能
- **简洁的命令界面**:简单、直观的命令,提高工作效率
@ -48,6 +48,9 @@ sub-cli sync source.srt target.srt
# 格式化字幕文件
sub-cli fmt subtitle.srt
# 转换为ASS格式
sub-cli convert input.srt output.ass
```
查看[命令示例](/zh-Hans/examples)页面获取更多详细使用场景。