用途:将 SRT 字幕烧录(硬编码)到视频中,生成带内嵌字幕的视频文件。
主要能力:通过 FFmpeg 把 SRT 字幕嵌入视频;支持自定义字体大小、字体名称、字幕位置(top/center/bottom)、边距、文字颜色、描边厚度与阴影深度;支持在片尾叠加署名文字,并可设置署名位置(top/bottom)与显示时长;支持用 --extract-frame 在指定秒数抽帧以验证字幕位置。
使用方式:需先安装 FFmpeg 并加入 PATH。进入技能脚本目录后运行: cd ~/.claude/skills/embed-subtitles/scripts npx ts-node embed-subtitles.ts -i video.mp4 -s subtitles.srt -o output.mp4 自定义样式示例: npx ts-node embed-subtitles.ts -i video.mp4 -s subtitles.srt -o output.mp4 --font-size 24 --position bottom --margin 40 添加片尾署名: npx ts-node embed-subtitles.ts -i video.mp4 -s subtitles.srt -o output.mp4 --credit "Your Name" --credit-position top
参数:-i/--input 输入视频(必填)、-s/--subtitles SRT 字幕(必填)、-o/--output 输出视频(必填);--font-size 默认 20、--font-name 默认 Arial、--position 默认 bottom、--margin 默认 25、--color 默认 white、--outline 默认 2、--shadow 默认 1、--credit、--credit-position 默认 top、--credit-duration 默认 2.5 秒、--extract-frame。
RTL 处理:嵌入前需检查 SRT 是否为 RTL(希伯来语 \u0590-\u05FF、阿拉伯语 \u0600-\u06FF、波斯语 \u0750-\u077F)。若主要为 RTL,需先用 Unicode 方向标记 U+202B 与 U+202C 包裹每行文本(不含序号与时间戳)再交给 FFmpeg,以修正行首英文、标点位置与混合双向文本问题。
限制:依赖 FFmpeg;阿拉伯语署名因 FFmpeg drawtext 的 RTL 限制建议改用英文;无 SRT 时需先用 transcribe 技能生成,翻译需自行读取并保留时间戳改写 SRT。