@gosavetool /字幕
解析、转换、移位和修复 SRT 和 WebVTT 字幕。零依赖,在Node和浏览器中工作,并附带一个小CLI。
由 GoSaveTool. 喜欢视觉编辑器?这个 VTT字幕生成器 根据浏览器中的视频计时字幕。
安装
npm install @gosavetool/subtitles
将SRT转换为WebVTT
const { convert } = require('@gosavetool/subtitles');
const vtt = convert(fs.readFileSync('movie.srt', 'utf8'), 'vtt');
const srt = convert(fs.readFileSync('movie.vtt', 'utf8'), 'srt');
利用线索
const { parse, shift, repair, toSrt, toVtt } = require('@gosavetool/subtitles');
const cues = parse(text); // [{ start: 1000, end: 3500, settings: '', text: 'Hello' }, …]
const later = shift(cues, 1500); // every cue 1.5 s later (negative = earlier)
const { cues: fixed, fixed: n } = repair(cues); // sort, fix overlaps and bad end times, drop empty cues
fs.writeFileSync('out.srt', toSrt(fixed));
| 函数 | 返回 |
|---|---|
parse(text) | SRT或WebVTT文本的提示,以毫秒为单位 |
toSrt(cues) / toVtt(cues) | 字幕文本;SRT从1开始重新编号 |
convert(text, 'srt' | 'vtt') | 在一次呼叫中转换文本 |
shift(cues, ms) | 线索移动 ms;0之前的球杆被剪掉或丢弃 |
repair(cues, { minDuration }) | { cues, fixed } 随着数量的变化 |
isVtt(text) | true 当文本以 WEBVTT |
toMs('00:01:02,500') / fromMs(62500, '.') | 时间戳↔毫秒 |
包括TypeScript类型。
命令行界面
npx @gosavetool/subtitles convert movie.srt --to vtt
npx @gosavetool/subtitles shift movie.srt -1.5
npx @gosavetool/subtitles repair movie.vtt
npx @gosavetool/subtitles info movie.srt
-o out.vtt 写入另一个文件, --stdout 输出结果。
相关
- 自动字幕生成器:演讲说明
- 视频转文本转录一段视频
- Python:
gosavetool-subtitles·PHP:gosavetool/subtitles - VS代码: GoSaveTool扩展
许可证
麻省理工学院