背景介绍

ffsubsync Github
image83997e0db1dfd7ea.png
简单介绍就是自动将字幕与视频同步的神器,类似项目还有挺多。今天我们就来说说有关特效字幕用ffsubsync同步后还是出现音画不同步的问题。
最大的原因就是字幕中有特效字幕的插入导致这个问题,最简单的办法就是删除字幕文件所有的特效字幕,保留时间戳。然后再用ffsubsync进行同步,同步后再根据源字幕文件补齐特效字幕的的内容。
ps:特效字幕指的是字幕中各种注释,例如广告牌、招牌等内容,手机短信、文件、以及梗来源内容注释等等,一般不属于正文下方的字幕。

解决办法

Windows和Linux上安装ffsubsync的教程:

Windows安装教程

1. 安装Python:首先,你需要安装Python。访问Python官方网站(https://www.python.org/downloads/windows/)下载最新的Python安装程序,并按照安装向导进行安装。请注意,在安装过程中选择将Python添加到系统路径中。

2. 安装ffsubsync:打开命令提示符(按下Win键,然后键入”cmd”,然后按Enter),输入以下命令来安装ffsubsync:

pip install ffsubsync

3. 安装依赖项:ffsubsync还需要ffmpeg,Windows下安装使用ffmpeg

4. 准备参考视频和字幕文件:将你的参考视频文件和字幕文件放在同一个文件夹中,确保它们的文件名相同(除了扩展名)。例如,参考视频文件名为”video.mkv”,字幕文件名为”subtitles.ass”。

5. 运行ffsubsync:在命令提示符中,使用以下命令运行ffsubsync:

ffsubsync video.mkv -i subtitles.ass -o synced_subtitles.ass

这将使用视频文件”video.mkv”和字幕文件”subtitles.ass”来运行ffsubsync,并将同步后的字幕保存为”synced_subtitles.ass”文件。

6. 检查结果:检查同步后的字幕文件”synced_subtitles.ass”,确保字幕已经成功同步到视频中。
ps:文件名中假如有空格的话注意加引号进行注释,不然工具无法识别运行。

Linux安装教程

以下Debian系统为例
1. 安装Python:打开终端,并运行以下命令来安装Python:

sudo apt update
sudo apt install python3

2. 安装pip:继续在终端中运行以下命令来安装pip:

sudo apt install python3-pip

3. 安装ffsubsync:在终端中运行以下命令来安装ffsubsync:

 pip3 install ffsubsync

4. 安装依赖项:ffsubsync还需要ffmpegDebian10安装ffmpeg

5. 运行ffsubsync

ffsubsync video.mkv -i subtitles.ass -o synced_subtitles.ass

这将使用视频文件”video.mkv”和字幕文件”subtitles.ass”来运行ffsubsync,并将同步后的字幕保存为”synced_subtitles.ass”文件。

6. 检查结果:检查同步后的字幕文件”synced_subtitles.ass”,确保字幕已经成功同步到视频中。
ps:文件名中假如有空格的话注意加引号进行注释,不然工具无法识别运行。

aegisub安装

aegisub下载
image5ef9b2ceea1734be.png

示意教程

以New.Girl.S05E18.720p.HDTV.x264-AVS.简体&英文.ass为例
1.先用aegisub替换其中的特效字幕部分
打开显示加载/卸载相关文件,选否即可

2.按住ctrl+H打开替换功能键入以下正则表达式进行筛选或者在编辑选项打开

^\{.*


替换删除
替换之后保留空白行,留作同步后的时间戳再回填原内容。
ps:假如特效字幕只有来源或者作者信息等无关紧要的可以忽略不进行回填

例如这些信息可以不保留删除,但是如果有其他关键注释还是建议进行回填。

这些关键信息建议回填保留

运行命令

ffsubsync "杰茜驾到 - S05E18.mkv" -i "New.Girl.S05E18.720p.HDTV.x264-AVS.简体&英文_tmp_cb50.ass" -o "New.Girl.S05E18.ass" --gss


3.在目录中地址行键入cmd后回车会弹出一个窗口,运行命令,运行时间通常很快。根据视频文件大小而定,还有硬盘性能等因素。



打开文件夹就能看到同步好的New.Girl.S05E18.ass字幕文件了,这个是我们指定的字幕名。

接着咱拖入视频进行校对查验是否时间轴同步正确完毕,对上的话就进行回填操作。

我这里打开查看了下时间轴已经和视频同步对上了,咱接下来可以进行回填操作了。
打开源字幕和同步好的字幕,一一对应行数复制内容过去保存即可。


回填效果,时间轴对上了,回填的内容基本都一一对上了。


拓展工具:
subsync语音转文本并查找匹配
使用定制频谱图 + 逻辑回归执行语音检测钮
基于 rust 的字幕同步器,具有奇特的动态编程算法
基于神经网络的方法,在执行语音检测时直接优化对齐
与 ffsubsync 类似的方法(WebRTC 的 VAD + FFT 以最大化信号互相关)