Communitygithub.com

kaylon-he/video-subtitle-skill

为视频文件或URL自动生成硬字幕,输出带字幕的MP4和SRT文件。当用户要求为视频添加字幕或说明时使用。不适用于仅编辑现有字幕。

video-subtitle-skill 是什么?

该技能(kaylon-he/video-subtitle-skill)是一个 AI 智能体工具,用于自动为视频添加硬字幕(烧录进画面)。它基于一个完整的流水线:首先使用 ffmpeg 提取 16kHz 单声道 WAV 音频,然后通过 whisper.cpp 转录生成 SRT 字幕文件,接着将 SRT 转换为 ASS 格式,根据画面宽度自动断行、应用 CJK 字体并添加半透明背景,最后用带 libass 的 ffmpeg 将字幕烧录到视频中,直接复制原音轨。支持通过命令行参数指定源语言(默认中文)、字体大小,以及仅输出 SRT 而不烧录。该技能特别适合中文视频,并在 README.md 中强调必须先检查转录文本(尤其注意人名、地名的识别错误),验证成品字幕完整性,避免使用 Homebrew 精简版 ffmpeg(缺少 libass)。适用于 Claude Code、Cursor 等支持脚本执行的 AI 编码助手平台。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add kaylon-he/video-subtitle-skill

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

Video Subtitle

给视频自动加字幕并把字烧进画面,产出「带字幕 MP4 + SRT」。

流水线

  1. 抽取 16k 单声道 wav(ffmpeg)
  2. whisper.cpp 转录出 SRT(whisper-cli)
  3. SRT → ASS:按画面宽度自动断行、CJK 字体、底部居中半透明底框
  4. 用带 libass 的 ffmpeg 烧录 ASS,音轨直接 copy

用法

bash scripts/add_subtitles.sh input.mp4 -o output.mp4 -l zh
  • -l/--language 源语言,默认 zh,可传 auto
  • -f/--fontsize 字号,默认 42
  • -s/--srt-only 只出 SRT,不烧录

必须遵守

  • 先看转录文本再交付:脚本会把 SRT 打印到终端。人名、地名、成语常被识别错(例:「重阳姐」→「重阳节」、「久久重扬」→「九九重阳」)。有错就用 -s 重新出一版,改好 SRT 再烧录。
  • 校验成品:从成片抽 2–3 帧(-ss <秒> -frames:v 1)确认字幕完整、没有被裁切或溢出画面。
  • 不要用 Homebrew 的精简 ffmpeg:该构建没有 libass,subtitles/ass/drawtext 滤镜全部缺失。脚本会自动挑选带 libass 的 ffmpeg,装法见 README.md。
  • 长句必须断行:ASS 用 WrapStyle: 2(只认 \N),srt_to_ass.py 已按 画面宽度 / 字号 自动插入 \N。若某句仍溢出,调小 -f 字号。

环境依赖

ffmpeg(带 libass)+ whisper-cli + ggml 模型 + python3。缺失时脚本会给出明确报错。完整库清单、安装命令与排错说明见 README.md。

相关技能