Posted in: IT, TV

提取视频的硬字幕(内封字幕)

下载到无字幕的日剧(俗称生肉)之后,一般用三种方法去寻找中文字幕:

  1. 直接在网上搜,一般只有热门日剧(例如上个月刚完结的《龙樱2》)能搜到。日剧一周一集,一般需要在全剧完结之后几天才能搜到。
  2. 去台湾的视频网站(例如KKTV等)播放视频,然后用浏览器开发工具下载vtt格式的字幕,一般在最新一集播出的第二天晚上能搜到,范围比方法1广。但有一些剧台湾没有引进,就不行。
  3. 最后一招:额外下载字幕组已经压制好硬字幕(内封字幕)的视频文件(俗称熟肉),然后用OCR大法提取字幕。提取完了确认无误了,把熟肉删掉即可。

一般情况下,如果某剧完结一年了仍然搜不到字幕,台湾也没有引进,那就只能用方法三了。例子有2019年的インハンド。操作方法看似比较复杂,但其实也不难,主要用到两个工具:VideoSubFinder和OCR。工具。

VideoSubFinder

网上有详细的使用说明,这里不再重复,大致说一下原理:

  1. 导入视频。
  2. 选定一个字幕出现的固定区域作为截屏区域。一般就是在视频正下方中间(可以在软件里预览区域)。好多字幕组喜欢搞中日双语字幕,即中文字体较大放在上面,日文字体较小放在下面的模式。此时选区域要小心,不要把日文圈进来。日文没必要OCR,jpsubbers.xyz这个网站有2009年之后大部分日剧的日文SRT字幕。
  3. 运行软件开始自动截图,截取的图片会放在软件目录的RGBImages目录里面。一般一集45min的剧,图片大约有600-800张,总大小大约100MB左右。图片的文件名是由所处的时间起点终点组成,千万不要动。
  4. 图片二值化:把彩色的截图转换成黑白的图片,背景全部挖去留白,只留下黑色的字。如下图所示。VideoSubFinder可以自动操作,二值化后的黑白图片位于软件目录的TXTImages里面。(这一步很卡,基本上电脑就别想做其他事情了)
  5. 手工操作:选用一个第三方OCR工具,把TXTImages目录里面的图片转成文字,一张图片对应一个文本文件,除了扩展名之外其他名字保持不变。转化后的文本文件自己放进TXTResults目录里面。
  6. 软件自动将TXTResults目录里的文本文件组成SRT格式的字幕。

OCR工具

最开始我使用的是开源的Tesseract-OCR,识别结果实在是惨不忍睹,放弃。

后来决定用 API,无奈百度的 OCR API现在已经没有个人的大量免费额度了,于是选了科大讯飞的OCR API,三个月一共10万次免费额度。试了一下速度很快、准确率很高。但是一个实名账户只有1次领取机会。三个月之后怎么弄就再说吧。科大讯飞的OCR要求图片分辨率低于4096px,所以上面第4步之后得到的TXTImages目录里面的图片必须进行压缩。Imagetrick有个命令叫做mogrify可以完成这个批量压缩的任务:

mogrify -resize "4096x4096>" *

Comments (5) on "提取视频的硬字幕(内封字幕)"

    1. 不是的,现在的字幕组为了保护自己的“版权”,不会放出纯文字的。

    1. 在线加载字幕就是外挂字幕,本质上就是软件去搜索那些字幕网站然后下载下来

哥斯拉进行回复 取消回复

您的电子邮箱地址不会被公开。 必填项已用*标注