SuperAPI AI 工具集

ffmpeg-captions-subtitles

设计与创作

查看项目

更新于 10-15 12:20

技能介绍

本技能是面向 FFmpeg 7.1 LTS 与 8.0.1(最新稳定版,2025-11-20 发布)的完整字幕与说明文字系统,用于处理字幕、隐藏式字幕(closed captions)和文字叠加。

一、用途 适用于以下字幕与说明文字操作:将字幕硬编码(烧录)进视频;向容器添加软字幕轨道;从 MKV/MP4 中提取字幕;设置字幕样式(字体、颜色、位置);创建动态文字叠加。

二、支持的格式

  • SubRip(.srt):简单时间轴加文本,通用、适合网页。
  • Advanced SubStation Alpha(.ass/.ssa):丰富样式、定位与特效,适合动画与样式化字幕。
  • WebVTT(.vtt):Web 标准,支持 cue 与样式,适合 HTML5 视频。
  • TTML/DFXP(.ttml/.dfxp):广播与无障碍,适合流媒体服务。
  • MOV Text(.mov 内嵌):QuickTime 原生,适合 Apple 生态。
  • DVB Subtitle(内嵌):基于位图,适合欧洲广播。
  • PGS(.sup):蓝光位图字幕。
  • CEA-608/708(内嵌):隐藏式字幕,适合美国广播与流媒体。

三、主要能力与使用方式

  1. 烧录字幕(硬字幕):使用 subtitles 滤镜烧录 SRT,使用 ass 滤镜烧录 ASS/SSA 并保留样式;可从 MKV 容器烧录,或指定字幕轨道索引(si、stream_index)。
  2. 样式化烧录:通过 force_style 覆盖字幕样式,可设置 FontName、FontSize、PrimaryColour、OutlineColour、Outline、Shadow、Bold、Italic、Underline、Alignment、MarginL/R/V 等参数。ASS 颜色使用 &HAABBGGRR 格式(Alpha、Blue、Green、Red)。
  3. 添加软字幕轨道:将 SRT 以 mov_text 嵌入 MP4、以 srt 嵌入 MKV、以 webvtt 嵌入 WebM;可添加多语言多轨道并设置 language 与 title 元数据;可设置默认轨道(default)或强制显示轨道(forced)。
  4. 提取字幕:将指定字幕流提取为 SRT、ASS 或 WebVTT,可提取全部字幕轨道;使用 ffprobe 列出可用字幕轨道。
  5. 格式转换:SRT 与 ASS、WebVTT 之间互转(ASS 转 SRT 会丢失样式)。
  6. drawtext 叠加与 Whisper AI 集成:字体、定位、转义、时间表达式、方框、描边、动画文字等详细示例,以及 Whisper AI 转录与字幕生成工作流,位于 references/drawtext-and-whisper.md,在创建烧录文字图形或从语音生成字幕时加载该参考。
  7. CEA-608/708 隐藏式字幕:从 ATSC 流或内嵌 CC 的视频中提取,以及嵌入 CEA-608 字幕。
  8. 字幕定位:ASS 对齐值采用数字键盘式布局(7/8/9 顶部,4/5/6 中部,1/2/3 底部),可设置 MarginV、MarginL、MarginR;支持多字幕轨道不同位置。
  9. 批量处理:提供批量烧录字幕与批量转换字幕格式的 shell 脚本示例。

四、故障排查 涵盖“Unable to find a suitable output format”(显式指定输出格式)、字幕乱码(强制 UTF-8 编码 charenc=UTF-8)、字体未找到(指定 fontsdir 或列出可用字体)、字幕时间偏移(itsoffset)、高分辨率视频字幕不显示(调整 FontSize 与 Outline)等常见问题,并提供验证命令(ffprobe 检查字幕流、统计字幕行数、校验 SRT 格式)。

五、最佳实践

  • 无障碍:使用高对比度颜色、标准视频最小 24pt 字号、多说话人时标注说话人、避免遮挡重要画面、每行不超过 42 字符、每条字幕显示时长 1 至 7 秒。
  • 质量:样式化字幕用 ASS,简单对白用 SRT,网页交付用 WebVTT,尽量保留原始样式,分发前在目标设备测试。
  • 性能:仅在必要时烧录字幕,归档与灵活性优先使用软字幕,大文件烧录时使用硬件编码,批量操作并行处理。

六、关键准则 在 Windows 上使用 Edit 或 Write 工具时,文件路径必须使用反斜杠(\)而非正斜杠(/)。除非用户明确要求,否则不要创建新的文档文件。

七、限制 本技能聚焦 FFmpeg 字幕与说明文字操作;如需带形状与图形的文字叠加,请参见 shapes-graphics 技能。