【字幕制作】从IDX/SUB到PGS的小白入门教程

什么是图形字幕

开篇先对一些主要概念进行说明,高手可自行跳转 前期准备 处开始观看

目前主流的字幕有两种类型,文本字幕、图形字幕

  • 文本字幕,文件存储的是文本信息,如ASS、SRT,在播放器中字幕是作为矢量图渲染
  • 图形字幕,文件存储的是图片信息,如IDX/SUB、PGS,在播放器中字幕作为位图渲染
    • IDX/SUB字幕,用两个文件存储字幕信息,后缀分别为.idx与.sub,idx存储属性信息,可用记事本打开包括字幕缩放、延时等,与ASS的功能栏大同小异;sub存储字幕的图片信息。
    • PGS字幕,后缀为.sup,存储图片的清晰度上限比IDX/SUB要大,但无法用记事本打开,不可直接编辑。高清字幕通常使用该格式保存

对TS文件的图形字幕高清化处理:

对于从电视录制下来的影音节目(后缀一般为.ts),对于其中图形字幕的处理通常做法是使用Project-X等软件将其中的视频、音频、字幕文件、字幕图片等要素一次性提取出来,然后使用Smart Cutter for DV and DVB等软件剪去广告,输出剪辑后的IDX/SUB字幕,并导出时间轴文件XML,接着对第一次导出的字幕图片使用Photoshop进行高清化处理,最后配上时间轴XML文件即可。

这个过程中输出的bmp图片清晰度是最高的,通常情况下我们使用这一套图来高清化。
但问题在于,如果当时资源发布者不进行高清化,而是直接将剪去广告后的IDX/SUB字幕封装进影片中。我们就得不到最初导出的清晰度最高的bmp图片了。但此时我们仍可按照一定的步骤去得到我们希望的高清化效果。

现在我们有了一个来自网络的,录制于高清翡翠台的MKV影片,发布者进行过视频的压制,其中字幕为IDX/SUB,字幕大小和位置都适合,但清晰度不够。我们想将字幕高清化,然后与该影片一起封装。


现在IDX/SUB字幕在播放器中呈现的效果

我们希望在播放器中呈现的效果

需要用到的软件清单

  • MKVExtractGUI(抽取MKV轨道)
  • MKVmergeGUI(封装MKV文件)
  • subresync(调IDX/SUB字幕时间轴)
  • BDSup2Sub(图形字幕的输入和输出)
  • Adobe Photoshop CC (高清化字幕)
  • Java+dotNetFx40_Full(辅助道具)

前期准备

解决延迟语句

我们通过软件MKVExtractGUI——一款可以抽取MKV文件轨道的软件——提取出MKV文件中的IDX/SUB字幕文件,得到了一个后缀为.idx与一个后缀为.sub的文件。

先使用记事本打开.idx文件,发现该字幕存在图片缩放、时间延迟等信息


图片缩放

这表明sub里面的图片是经过长宽缩放后才输出到播放器的


时间延迟

这表明下面所有的时间都得延迟两秒,比如第一个字幕时间显示00:00:00.000,但它实际输出的应该是00:00:02:000

对于延迟问题,我们使用软件Subresync——一款可以调IDX/SUB字幕时间轴的软件——“过滤”一次(后文解释为什么需要这么做),即将idx拉进去,导出新的IDX/SUB,再打开,可以发现已经不存在delay语句了,所有的时间已经推后了两秒。但缩放属性还在。

BDSup2Sub导出XML与PNG

接着我们打开软件BDSup2Sub——一款可以处理图形字幕属性的软件——拉进去刚刚新导出的idx文件,提示
在这里插入图片描述
确定忽略即可,然后进入如下的界面:
在这里插入图片描述

  • 左上角的Resolution,我们选择我们最终需要得到的字幕的分辨率,因为我们影片本身就是1920x1080,而且现在字幕大小、位置在播放器里输出的效果也是我们希望的,因此改成图示选项。因为字幕输出分辨率调整不恰当的话,字幕会出现过大或者过小、以及偏移等现象。这里先不过多展开。
  • 左下角的FPS选项,我们可以通过potplayer等播放器查看视频的帧速率或者使用软件MediaInfo——一款可以查看任意媒体文件信息的软件——这里两项都选择视频的帧速率即可。
  • 右上角的Scale,这里输入我们刚刚在文件里面看到的缩放信息,如果不予调整将会是以下效果。
  • 右下角的Delay,这里可以输入我们需要整体提前或延后的时间信息。那么为什么我们刚刚还要用Subresync过滤?因为有的字幕它不止开头一处的delay语句,中间可能也会掺杂有,而这里只能整体调一次。

不调整缩放信息

调整缩放信息

可以看到,调整后的字比较方,和播放器输出的效果一致,不调整缩放输出的字体会很窄。

BDSup2Sub软件上面的框为输入显示即sub存储的图,下面的框为输出显示。

接着我们点击功能栏
在这里插入图片描述
这里选择输出的格式,其中最后一个XML/PNG就是输出我们需要的时间轴和字幕图片,选择它,然后点击
在这里插入图片描述
点击Save
在这里插入图片描述
我们可以看到在当前文件夹下输出了XML文件(后缀为.xml)以及很多PNG图片(这里我建议在单独的一个文件夹中操作,也便于后面Photoshop的批处理)

XML文件为图形字幕的时间轴,保存有几分几秒使用的图片名称,因此该文件所在文件夹下必须有对应的的字幕图片配合使用

我们可以看到,输出后的图片如下:

在这里插入图片描述
这就是原本sub里面存储的图片,前期准备完成。

高清化

Photoshop高清化图片

这是最核心的一步,直接决定了最终字幕的质量,打开软件Photoshop,使用录制动作功能将以下步骤录制下来(这一步不熟悉的读者请自行了解Photoshop的批处理功能,本文最后会提供本文使用的.atn文件),步骤主要分为以下几步:

  • 画布拉宽一点,因为看到这个输出的图片边缘与字体的边缘贴得太近了,担心后面描边时描不下去,效果不好。当然这一步不是必须。

  • 色彩范围,选择字体最中间的部分

  • 选择、调整边缘,平滑选择2像素,确定

  • 反选选取,删除,剩下除黑边外的部分
    在这里插入图片描述

  • 设置图层样式
    在这里插入图片描述
    在这里插入图片描述

  • 得到最终效果如下:
    在这里插入图片描述
    对比一下原始图片:
    在这里插入图片描述
    重描边是为了加粗边框,令字体显得更浑厚饱满,内发光则是将原本灰沉的字提亮。其实这一步很看具体情况,不同的原始字体操作方法也有所变化。比如在本例中可以看到,因为原始字体锯齿比较多,尽管平滑了边缘,但锯齿还是存在。
    更多关于Photoshop的操作详情读者请自行搜索。

  • 导出图片,如下图设置:
    在这里插入图片描述
    选择PNG-24格式导出
    在这里插入图片描述
    存储,选择路径,保存

  • 关闭文件,停止动作录制(这一步非常重要,如果不关闭文件,后面批处理将不能自动进行)

  • 最后,文件 > 自动 > 批处理,将文件夹中所有的字幕图片高清化。

生成高清化后的PGS字幕

我们现在有原字幕的时间轴XML文件,有高清化后的图片,接下来的工作就是将它们绑定在一起。将XML与新图片放在同一个文件夹内,保证两者命名前缀一致,即:
在这里插入图片描述
红圈部分的前缀需要一致,如不一致则可使用软件Ant Renamer来批量重命名,不过既然Photoshop的批处理设置里面已经有输出文件名设置,个人建议输出前就设置好命名。

把XML拖入BDSup2Sub中,如果命名正确便不会出现错误,导入设置与前文提及的一样,分辨率、帧速率匹配视频的相应属性,但缩放则不需要了,因为我们需要的字幕就是我们做出的新图的效果

可以预览到输出效果,输入框展示了新图的效果,输出框展示了生成字幕的效果:
在这里插入图片描述
选择SUP格式,与前文的步骤一样,Save,输出PGS字幕
在这里插入图片描述
此时将字幕拖入视频,可以看到高清化后的效果:


最终效果

将字幕与原先的视频、音频封装在一起。至此,整个流程结束。

注意事项

若最后输出IDX/SUB

BDSup2Sub中对输入输出框鼠标左键可以放大,右键可以缩小,能看到更多图片的细节。若最后不选择SUP而是选择IDX/SUB输出,可以看到,锯齿变多,因为IDX/SUB格式存储图片的清晰度上限很低。

在这里插入图片描述

参考资料

[字幕制作] SUP字幕高清制作方法
HD VobSub 高清外掛字幕

Photoshop动作文件(.atn文件)下载地址
链接:https://pan.baidu.com/s/1kqusiNgz5ep8i94iRYBUow
提取码:1234

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值