smacke/ffsubsync

Automagically synchronize subtitles with video.

解决的问题

FFsubsync 是一个语言无关的工具,可以自动将字幕与视频或音频文件同步,确保字幕在正确的起始点出现并与所说的对话保持一致。

工作原理

该工具使用三个步骤来对齐字幕和音频:

  1. 离散化:将音频流和字幕都分解为 10ms 的窗口。
  2. 语音检测:确定每个窗口中是否存在语音。对于字幕,这是基于字幕是否处于激活状态;对于音频,它使用语音活动检测器 (VAD),如 WebRTC 或 Silero VAD。
  3. 对齐:将语音模式视为二进制字符串,并使用快速傅里叶变换 (FFT) 对其进行对齐,从而高效地找到得分最高的偏移量,将复杂度从 O(n^2) 降低到 O(n log n)。

适用对象

无论内容语言如何,字幕与视频文件不同步的用户,以及需要进行字幕文件批量同步的用户。

亮点

  • 灵活的参考:可以针对视频/音频文件或另一个已正确同步的字幕文件进行同步。
  • 基于浏览器的版本:提供使用 ffmpeg.wasm 的客户端同步工具,因此文件永远不会离开用户的机器。
  • 强大的编码支持:自动检测遗留字符编码(例如 Windows-1251, GBK)以防止崩溃。
  • 高级同步选项:包括用于处理文件中间中断(如广告剪辑)的实验性分段对齐模式 (--split-penalty)。
  • 集成性:可以用作命令行工具、Docker 镜像或 Python 库。
  • Whisper 集成:支持使用 Whisper.cpp 转录文本作为没有现有字幕的视频的参考。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目