基于音频的自动字幕移位器
sushi-sub的Python项目详细描述
寿司
基于音频流的SRT和ASS字幕自动移位器。在
Python 3分叉,https://github.com/tp7/Sushi。
目的
假设你有一个同步到一个视频文件的字幕文件,但是你想用这些字幕和其他一些完全合法的视频一起使用。常见的例子是电视与BD发行版、PAL与NTSC视频以及不同国家的发行版。在很多情况下,字幕不会马上匹配,你需要同步它们。在
此脚本的目的是避免手动同步的所有麻烦。它试图通过寻找音频流中的相似性来同步字幕。这个脚本非常快,可以在你想看的时候使用。在
工作原理
您需要提供两个音频文件和一个与其中一个文件匹配的字幕文件。对于每一行字幕,脚本将从源音频流中提取相应的音频,并尝试在目标音频流中找到最接近的相似模式,从而获得一个移位值,该值随后应用于字幕。在
Sushi工作流的详细说明和命令行参数的描述可以在wiki中找到。在
用法
最小的命令行如下所示:
python sushi.py --src hdtv.wav --dst bluray.wav --script subs.ass
输出文件名是可选的-默认情况下使用"{destination_path}.sushi.{subtitles_format}"
。请参见wiki的usage页面以获取更多示例。在
请注意,WAV并不是寿司唯一可以使用的格式。它可以直接处理音频/视频文件,并对各种音频格式进行解码,前提是ffmpeg可用。有关其他信息,请参阅wiki的Demuxing部分。在
要求
Sushi应该可以在Windows、Linux和OS X上运行。如果不能,请打开一个问题。要运行它,必须安装以下组件:
或者,您可能希望:
- FFmpeg用于任何形式的解离
- MkvExtract用于在解组时更快地提取时间码
- SCXvid-standalone如果你想让寿司做关键帧
- Colorama在Windows上为控制台输出添加颜色
在Windows上安装
因为这个fork的“维护者”不运行Windows并且对提供二进制文件不感兴趣,所以您有点独立。 以下步骤未经测试(请参阅前面的要求):
- 安装Python(64位)。在
- 安装OpenCV。在
- 在终端上运行
pip install sushi-sub colorama
。在 - 在终端上将其用作
sushi args…
。在
如果有人想提供正确的安装步骤或Windows的二进制文件,请打开PR或联系。在
在Mac OS X上安装
目前没有为OSX提供二进制软件包,因此您必须使用脚本形式。假设安装了python3、pip和homebrew,请运行以下命令:
^{pr2}$如果没有pip,可以用自制程序安装numpy,但这可能会增加一些依赖关系。 你还需要手动安装寿司。在
brew tap homebrew/python brew install numpy # fetch sushi git clone https://github.com/FichteFoll/sushi # run from source python3 -m sushi args… # OR install globally (for your user) python3 setup.py install --user sushi args…
在Linux上安装
如果您有apt-get-available,那么安装过程非常简单。在
sudo apt-get update sudo apt-get install git python3 python3-numpy python3-opencv pip3 install --user sushi-sub # if ~/.local/bin is in your PATH sushi args… # otherwise python3 -m sushi args…
对于其他发行版,为python、numpy和opencv依赖项选择相应的包名称。在
限制
此脚本永远无法属性处理逐帧排版。如果底层视频流发生变化(例如,有不同的电视电影模式),您可能会得到错误的输出。在
此脚本无法改善错误的计时。如果原始行的时间不正确,它们也将在输出文件中出现错误的时间。在
简而言之,虽然这可能是安全的立即观看,你可能不应该使用它盲目地转移字幕永久存储。在
- 项目
标签: