Communitygithub.com

kaylon-he/video-subtitle-skill

為影片檔案或網址自動加入硬字幕,產出帶字幕的 MP4 與 SRT 檔案。當使用者要求為影片加上字幕或標題時使用。不適用於僅編輯現有字幕的情境。

video-subtitle-skill 是什麼?

此技能專注於自動化影片字幕生成與硬編碼流程,利用 ffmpeg 抽取音訊、whisper.cpp 進行語音辨識,並透過 Python 腳本將 SRT 格式轉換為 ASS 格式,最後以支援 libass 的 ffmpeg 將字幕直接燒錄進影片畫面。它支援多種語言(預設為中文,可設定為自動偵測),並提供字型大小調整、僅輸出 SRT 等靈活選項。使用者必須在交付前檢查轉錄文本(尤其注意人名、地名、成語的辨識錯誤),並從成品中抽樣校驗字幕是否完整、無裁切或溢出。此外,該技能強烈警告不要使用 Homebrew 的精簡版 ffmpeg,因其缺少 libass 支援。整個流程簡單、可靠,適合開發者或需要批次處理大量影片字幕的工作流程。

相容平台~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。

相關技能