haiyang 发表于 2018-10-25 23:43:57

esrXP 操作手册

本帖最后由 haiyang 于 2018-11-21 18:37 编辑


相信你一定对手抄字幕很感兴趣,esrXP作为一款字幕抓取软件,对手抄字幕带来了很大的便利。其中,对于字幕抓取的调参又是手抄中很重要的一环,在学习如何使用这款软件之前,请做好异常报错、突然崩溃、打不开文件等等问题的心理准备,因为这款软件已经停更许久,

那么,先从打开一个视频开始
https://i.yusa.me/mKTW10mlOgXE.gif



一) 过滤器相关设置
https://i.yusa.me/xoHnx1Br2O1O.png
点击此图标,打开过滤器窗口

1. 快速选择过滤区域

https://i.yusa.me/oEhyN47bbRnM.gif

      1.左键选择左上角的选区坐标
      2.右键选择右下角的选区坐标

2. 过滤器设置 -过滤参数

      ●前言

      在开始设置过滤器之前,有必要先了解一下,esrXP的过滤方式,以及进阶设置内参数的含义,这对于之后的参数设置会很有帮助。

https://i.yusa.me/vdivm4mBazoD.png

      点开进阶设置,会发现有很多可供选择的选项,如下图:

https://i.yusa.me/4qc0wM3A3Ppd.png

      进阶设置是使用esrXP的关键选项,正确的参数可以减少你之后的很多工作量,比如抓取后的重复行处理,且抓取内容也会变得干净,OCR的正确率也会更高。

      ●esrXP过滤的方式

      esrXP的过滤原理主要是通过颜色的判断来完成的,且过滤器使用了“HSL色彩模型”,简单来讲,HSL分别对应:

      H(hue)=色相
      指的是人眼所能感知的颜色范围,这些颜色分布在一个平面的色相环上,取值范围是0°到360°的圆心角,每个角度可以代表一种颜色。

https://i.yusa.me/KPu0X9AglP2q.png

      S(saturation)=饱和度
      指的是色彩的饱和度,它用0%至100%的值描述了相同色相、明度下色彩纯度的变化。数值越大,颜色中的灰色越少,颜色越鲜艳,呈现一种从理性(灰度)到感性(纯色)的变化。

https://i.yusa.me/GauKQRg90gly.png

      L(lightness)=亮度
      指的是色彩的亮度,作用是控制色彩的明暗变化。它同样使用了0%至100%的取值范围。数值越小,色彩越暗,越接近于黑色;数值越大,色彩越亮,越接近于白色。

https://i.yusa.me/B8c3jK418A2L.png
*以上HSL介绍部分原文于知乎 https://www.zhihu.com/question/22077462/answer/105844680
*关于HSL参数相对于颜色的变化,可以通过 http://hslpicker.com/ (网页版的HSL取色器)来直观的感受一下。
    ●过滤器进阶设置内参数的含义

      了解了HSL色彩模型是什么之后,除RGB差距外,每个过滤选项就可以和HSL对应起来了:

      H=色相;S=饱和度;L=亮度

      色度差距(H)       =      所选颜色的色相差距大于设定值,则会被过滤
      RGB差距            =      所选颜色的RGB差距大于设定值,则会被过滤
      最低光度(L)      =      亮度小于设定值,则会被过滤
      最高光度(L)      =      亮度大于设定值,则会被过滤
      最低色泽(S)      =      饱和度小于设定值,则会被过滤
      最高色泽(S)      =      饱和度大于设定值,则会被过滤
*关于像点补偿选项,会在“4.过滤器设置 -颜色及边线过滤”内说明。
3. 过滤器设置 -颜色过滤

      ●前言

      本章以“颜色过滤模式”过滤“白色字幕”为例,目的在于说明过滤器参数的调节思路,而不是直接拿着示例图内的参数用,每个字幕都有不同的参数设置。

      ●基本设置

https://i.yusa.me/3esGRJ6mDbz1.png
选择颜色模式,并设置好字幕颜色。

      ●进阶设置

      在颜色模式下,我也称它为简单过滤模式,在此模式下“边线”和“第一阶段”的参数是不可调节的。

https://i.yusa.me/xaFLLJ8qebpJ.png

      之前的章节中,简单介绍了HSL是什么、HSL在过滤器参数中的对应关系,在本章不作赘述,先看一下白色在HSL取色器中是什么样的:

https://i.yusa.me/2ntO2P7q8qYE.gif

      当亮度(L)调至100时,色相(H)全部变为白色。
      当亮度(L)调至100时,饱和度(S)全部变为白色,且拖动饱和度条后依然颜色不变。

      那么可以很快得出结论:
      白色亮度(L)高,所以修改“最低光度”参数,参数直接设为“100”。

      当然,以上只是理想情况下,字幕在压制后,一定会存在色差,为了整体过滤的兼容性,调节参数时需要放宽过滤范围。
      在实际操作中,对于白色字幕的过滤一般是下面这样的:

https://i.yusa.me/gEFyMA8XbvaO.png

      白色亮度(L)高,所以首要修改“最低光度”参数,使参数尽量接近“100”。
      在亮度(L)不等于100时,色相(H)也不会全为白色,为了过滤掉某些高亮度且非白色的杂边,需要从饱和度(S)入手(一般是平滑文字边缘渲染的亚像素与画面颜色的重合),修改“最高色泽”参数,使参数尽量接近“0”。

*上文提到的白色,可以视作看起来是白色的颜色,严谨的说法应该是亮度很高的某个颜色,为了方便理解,故写为白色。
*调参补充:如果有一两行色差太小导致个别文字无法过滤的可以无视,因为可以通过后期的额外颜色补回来,详见“字幕抓取后的处理 4.字体补全方法”。
*调参补充:参数勾选的越多过滤越精确,但是调整也会越困难,有些无用参数还会影响过滤效果,所以过滤参数要有取舍的去选择。
*调参补充:RGB差距与色度差距选其一调节即可,RGB差距选项无法用于黑灰白的颜色。
    ●后处理

https://i.yusa.me/9gtE79BjD022.png

      “移除通过中央的区块“ 此选项一定要去掉,其余的按照图中勾选即可。

*后处理补充:有时候过滤器怎么调整都过滤不出来,那么问题可能并不是过滤器,而是移除区块大过?x?像素设置过小,正常文字被当作大面积色块移除了,这种情况在繁体字过滤时更为多见。
*移除区块选项,据个人经验,正常字幕大小的情况下,720P视频一般是9x9左右,1080P一般是13*13左右,仅当作参考,实际操作可能有所变化。

4. 过滤器设置 -颜色及边线过滤

      ●前言

      本章以“颜色及边线过滤模式”过滤“黑色边框白色字幕”为例,目的在于说明过滤器参数的调节思路,而不是直接拿着示例图内的参数用,每个字幕都有不同的参数设置。

      ●基本设置

https://i.yusa.me/wysaKJjN0ll9.png

选择颜色及边线模式,并设置好字幕颜色与边线的颜色。

      ●进阶设置

      在“边线及颜色”过滤模式下,此时进阶设置有3组参数可供调整,即边线、第一阶段、最后阶段。

https://i.yusa.me/WmCQqymBJ7Y8.png

      在上一章(颜色过滤)中详细说明了调参思路,在“边线及颜色模式”下,多出来的两块参数与最后阶段是一致的,大部分调参思路本章中不作赘述。
      本章只会说明在此模式下,调参与颜色模式的不同点,与需要注意的地方。

      在此模式下(需勾选额外颜色)进行调整,过滤处理被分为了不同的阶段,每个阶段都有不同的颜色,换言之某块区域被过滤到了哪个阶段内就会用什么颜色显示出来,先了解一下颜色之间的区别。

https://i.yusa.me/MRu4LO9QdG88.png

      以上是官网对于颜色的说明,看不懂没关系,下面我再以简明易懂的方式总结一遍(不保证严谨性,但求能理解其中的意思):

      红色      = 判断为边线的区域
      绿色      = 出现在第一阶段,在红色选区之外且判断为非文字的区域
      蓝色      = 出现在最后阶段,在红色选区之内且判断为非文字的区域
      黑色      = 被过滤掉的区域
      白色      = 最终过滤结果

      特别需要注意以下几点:
      ●只有被“红色”包围的区域才会被检测。
      ●“像点补偿”可以使“设定像素范围内”的开口“红色”区域闭合,使文字被“红色”区域包围。
      ●“最后阶段”只会过滤“蓝色”区域。


      但在实际操作中,通常并不会按照“边线——第一阶段——最后阶段”这样的步骤去操作,在字幕清晰的情况下,推荐的操作步骤是“边线——最后阶段——第一阶段”的调参方式,下面演示一个黑框白字的粗略调参:

https://i.yusa.me/zQUWX9zxbE21.gif

      第一步:调整“边线”,因为边框为黑色,即最高光度低,调整参数至合适的值后,此时“红色”区域应刚好包裹住字幕,不能留有缺口且区域大小越接近边框越好。(此时就划分出了红色的边框区域与绿色的非文字区域)

      第二步:调整“最后阶段”,文字为白色,即最低光度高、饱和度低。调整参数至合适的值后,在“红色”区域内,且不为文字的“白色”区域,应变为“蓝色”区域。(此时esrXP只会去过滤红色选区内的文字,选区之外都判断为绿色的非文字区域)

      第三步:调整“第一阶段”,与最后阶段相似,调整参数至合适的值后,在“红色”区域之外,会显示“黑色”区域。(不要让这个阶段的调整过于激进以至于盖过了之前的调整)

      第四步:调整“像点补偿”,此选项的作用是闭合有开口的“红色”区域,为保证整体过滤的兼容性,防止万一出现区域开口的情况,建议设为2到4左右。

      第五步:反复调整,换言之就是拖动时间线检查是否有被误过滤掉的文字,不断的调整并放宽过滤参数的范围。
*这里再提一下上一章需要注意的一个点,过滤器怎么调整也过滤不出某个字,那一定是后处理存在问题。
    ●后处理

      后处理方式同 “3. 过滤器设置 -颜色过滤”,本章不再赘述。



二) 字幕抓取后的处理

https://i.yusa.me/OvSAGwvJapGe.png

点击此图标开启字幕管理窗口开启字幕管理窗口

1. 批量选择+删除操作

https://i.yusa.me/g1uN47a61L6M.gif

      1.右键选择第一行(出现蓝色向上箭头)
      2.左键选择最后一行
      3.点击X按钮批量删除
*“高质量”选项在过滤字幕初期(大批量删除等操作)一般不勾选,因为会导致软件很卡,GIF图里勾选只是为了清楚的演示效果。
2. 相同字幕合并操作

https://i.yusa.me/EbH4NAONmor4.gif

      1.鼠标右键选择需要合并的第一行(出现蓝色向上箭头)
      2.鼠标右键需要合并的最后一行(出现蓝色向下箭头)
      3.鼠标左键选择最清楚的一行保留(也可以不选,默认是最后一行)
      4.按X按钮合并行
*“高质量”选项在过滤字幕初期(大批量删除等操作)一般不勾选,因为会导致软件很卡,GIF图里勾选只是为了清楚的演示效果。
*蓝色向下箭头点不出来的原因:esrXP的合并必须是连续的时间轴才能合并,换句话说,只有同一条字幕被多次扫描到才能合并。(如果相同的字也点不出来,则说明这行字幕在视频里出现了两次,时间轴是断开的,无需合并)
*如果需要合并时间轴断开的字幕,必须勾上“强制合并”选项,这样esrXP才会忽略字幕是否连续从而进行合并。
3. 清理字幕多余杂色

https://i.yusa.me/g8h4OexXOj69.gif

4. 字体补全方法

https://i.yusa.me/m1ClGxL08WBz.gif
*建议勾选“高质量”,因为在低质量下,字体很可能看不清或很难点到。

三) 导出文件

https://i.yusa.me/wOf1w4EK40av.png

      esrXP支持导出的文件为:

      .esr(保存当前抓取的图像信息以及时间轴)
      .ssa(保存ssa字幕文件,且只含有时间轴)
      .srt(保存srt字幕文件,且只含有时间轴)
      .idx,.sub(保存图形字幕文件,可直接作为字幕观看)
      .bmp(保存抓取的图像信息,用来OCR成文本,位置在“ 文件”——“保存为OCR影像”)

      当然,导出这个步骤也有需要注意的一点:

      一定要先保存.esr工程文件!

      因为这个软件并不完善,如果先导出了较大的文件,比如先导出.bmp,有可能会导致其余的文件再也没法导出,换言之,你失去了字幕的时间轴,又得从头再跑一遍,稳妥起见,建议先保存.esr工程文件。



四) esrXP 疑难杂症总结
      ●视频载入不了的可能原因:
      1.没有安装LAVFilter解码器
      2.没有使用CodecTweakTool工具设置系统默认解码器
      3.文件名有特殊符号导致无法加载(改成纯英文或数字即可)

      ●esrXP保存OCR(一次性保存一张长图)报错“空间不足,无法处理”:
      只能先保存esr文档,重新打开esrXP后再单独保存OCR。

      ●esrXP抓取途中弹出错误对话框:
      无视即可,实测不影响字幕抓取。

      ●esrXP载入视频,视频会拉伸的非常大:
      解码器安装或设置有问题,建议重新来一遍设置。

      ●esrXP转码一段时间后 未响应,只能强行退出:
      没有很好的解决方法,目前只能避免
      1.抓取字幕的范围越大(抓取框分辨率越大),越容易未响应。
      2.抓取字幕行数计数越多,越容易未响应,4000行以上会变得很不稳定。(建议重新调整过滤规则,避免行数过多)
   
      ●esrXP 的文本校对栏,莫名对不上行(比如选择文本栏第二行会高亮抓取字幕的第三行):
      把文字复制进notepad++ 就会发现不对了,但是esrXP不会显示行错误。
      举个例子↓

      esrXP内显示:

你好
我来自XXX高中
名叫XXX
我们做个朋友吧!
但是复制进notepad++可能会这样子显示:
你好我来自XXX高中

名叫XXX

我们做个朋友吧!
在notepad++里分行之后再粘贴进esrXP就没有问题了。
*在esrXP里校对,一旦回车进行下一行之后,最好不要去更改上面的,否则极容易出现对不上行。
*个人不推荐使用这种校对方式,因为有时候手动分行也无法解决错行
    ●待补充...



五) esrXP 视频解码器设置和其他说明
      参考VCB论坛内的此贴:
      http://bbs.acgrip.com/thread-1091-1-1.html

haiyang 发表于 2018-10-25 23:44:46

https://docs.qq.com/doc/Bhq4pp0zdjAE3T5Lb54fHXne21rEQt3brULE4
这是在线文档 防止图挂了

haiyang 发表于 2018-10-25 23:45:36

希望这篇教程能解决不少朋友的抓字幕难题

(我尽力了{:11_837:})

cylx 发表于 2018-10-26 10:10:36

HSL的三张图第一张贴错了。

haiyang 发表于 2018-10-26 11:37:12

cylx 发表于 2018-10-26 10:10
HSL的三张图第一张贴错了。

好像是唉   等会儿换了

dalifeidaop6 发表于 2018-10-26 23:00:26

非常感谢=,=

paul 发表于 2018-11-12 10:09:47

感谢楼主分享

kangtong1990 发表于 2018-12-17 22:18:26

想请问一下哇:我在过滤器里预览的时候觉得设置得挺好的,但是一点开始,然后等程序运行完,得出来的就是一片空白,这是什么缘故?试了好几次了,都是这样。一点都没有提取出来

imwangqing 发表于 2019-5-12 21:30:37

谢谢楼主讲解,这是我在网上找到最详细的esrXP教程了

Jarbin 发表于 2020-3-31 14:02:35

感谢分享,十分详细有帮助的教程,不知道能不能补充一下关于抓取设置的部分,因为这个也很重要
页: [1] 2
查看完整版本: esrXP 操作手册