-
Notifications
You must be signed in to change notification settings - Fork 9
OKEGui使用说明
-
OKEGui 需要 .NET 4.5。Windows 8 / Windows Server 2012 及以上自带;Windows 7 和 Windows Server 2008 需要自行安装。此外请注意,版本号为 1809 以及更早的 Windows 系统有 DLL 加载数量限制,可能无法支持完整的滤镜包,故不再推荐使用。
-
OKEGui 自带的 qaac 工具依赖 Apple QuickTime。这点请确保你的机器按照压制组需要正确安装了 64-bit iTunes 组件或者 AppleApplicationSupport。注:整套压制环境打包内已经包含所需 QuickTime 文件,无需另外安装。
-
下载最新 Release 的 zip 压缩包,解压到一个纯英文目录下。双击其中 OKEGui.exe 运行。首次运行时可能需要指定 VSPipe.exe 和 RPChecker.exe 的位置,主界面窗口显示后,在下方的“空闲内存数”填写你可以分配给压制使用的内存大小。
OKEGui 每一批任务需要由技术总监准备 2 个文件。这 2 个文件需要放在同一个文件夹内,通常建议放在蓝光的 BDMV 目录下。
vpy 脚本文件指定了预处理方式。OKEGui 会读取 vpy 文件中两个固定的 tag:
#OKE:INPUTFILE
a = "00000.m2ts"
......
#OKE:DEBUG
Debug = True
if Debug:
......
第一个 tag 必须存在,作用是指定输入文件。接下来一行必须是 变量 = 文件名的格式。OKEGui 会在批量处理任务的时候,自动替换文件名以生成不同的脚本。
第二个 tag 可以不添加,作用是关闭 Debug flag。OKEGui 会保证用于压制的脚本,Debug flag 永远是 None
(无论你判断 if Debug == True
还是 Debug == 1/2/3
,都会正确执行 else: res = mvf.Depth(res, depth=10)
语句)。
如果需要配合 RPC(RP Checker)功能,则需要输出一份跟成品相似,但是处理尽可能简单的 clip:
- 必须有相同的帧率和帧数。如果成品做了 IVTC/deinterlace/trim/splice 之类的操作,则为 RPC 准备的 clip 也需要做。
- 必须有相同的画面内容。如果做了对画面改动较大的操作,例如 crop/textsub 等操作,则为 RPC 准备的 clip 也需要做。
- 分辨率和 bitdepth 不重要,因为 RPC 会自动转为与成品相同的规格。
绝大多数情况下,src8/src16 就足够了。以 src8 为例,脚本里需要含有:
src8.set_output(1)
经过 set_output(1) 输出的 clip 会被用来执行 RPC。
安装包里提供了若干样例 json 文件以供参考。json 文件里的项目有:
-
Version
,目前固定为3
。OKEGui 从 v8.0.0 开始在此项为3
时开启强制检查 VS 环境版本。 -
ProjectName
,自行填写。 -
EncoderType
,必须是x264
或者x265
。 -
EncoderParam
,编码器参数。不需要写--y4m
和--output
。 -
ContainerFormat
,可以是mp4
或mkv
。 -
AudioTracks
是一个 json array。其中,json 适用的源文件包含几条音轨,这个 array 就必须有几个项目。OKEGui 会自动跳过空音轨或者重复音轨(适用于那些每个源 M2TS 文件都有双音轨,但只有部分包含评论音轨,其他则是重复音轨的 Blu-ray 原盘),但是你依旧需要给出每条音轨的参数:-
OutputCodec
,可选flac
、aac
、ac3
或dts
。 -
Bitrate
,前一项为aac
时,可以指定码率。默认为192
(kbps)。 -
MuxOption
,封装格式,可选Default
、Mka
、External
、ExtractOnly
或Skip
。默认为Default
,表示正常封装;Mka
表示额外封装在 MKA 文件中;External
表示外挂,会给文件加上 CRC32;ExtractOnly
只做抽取;Skip
直接不抽取。 -
Language
,轨道语言。默认为jpn
,可选eng
、chi
等等。 -
Name
,轨道名称,例如可设置为Main
、Commentary
、2.0ch
、5.1ch
等等。 -
Optional
,标记是否为可选,可设置为true
或false
。如果为true
,则在原盘不存在该条轨道时直接忽略,而不报错。注意,如果有多条轨道均标记为"Optional": true
,则要求他们要么都存在,要么都不存在。
-
-
SubtitleTracks
是一个 json array。json 适用的源文件包含几条字幕,这个 array 就必须有几个项目;如果不写则表示没有字幕:-
MuxOption
,封装格式,可选Default
、Mka
、External
、ExtractOnly
或Skip
,效果同上。 -
Language
,轨道语言。默认为jpn
,可选eng
、chi
等等。 -
Name
,轨道名称,例如可设置为Japanese
、English
等等。 -
Optional
,标记是否为可选,同上。
-
-
InputScript
,输入脚本的文件名。脚本文件必须和 json 文件放在同一目录下。 -
Fps
,脚本输出的帧率。可选1.0
、23.976
、24.000
、25.000
、29.970
、50.000
、59.940
。 -
FpsNum
和FpsDen
,当帧率不是上述七种之一时,按照 VSPipe 输出的帧率填写。比如分别为24
和1
,代表 24.000 fps。 -
TimeCode
,表示该任务是否为 VFR 输出。可选true
或false
。设置为 true 时,可以不用再设置Fps
。 -
Rpc
,表示是否在任务压制完成后自动执行 RPC。可选true
或false
。 -
InputFiles
是一个 json array,可以用于指定这个任务的输入源文件,例如BDMV\\STREAM\\00000.m2ts
。 -
Config
,默认的每个源文件的额外配置。这些参数一般单独在每一集的 json 里配置,这里只提供默认值。可以配置的参数有:-
VspipeArgs
是一个 json array,每一项是一个 string,用arg=value
的形式,指定传给 VSPipe.exe 的额外参数。
-
需要单独配置每一集的 Config
,通过单独的 json 文件来指定(样例见附带 00001.m2ts.json)。
- OKEGui 可以压制不同后缀名的源。除了 Blu-ray 原盘的 M2TS,还能以 MKV 等作为源文件。如果 Blu-ray 不是一集一个 M2TS 的,可以先通过 remux,封装出一集一个 MKV 文件来压制。
- OKEGui 会自动抽取 M2TS 对应的章节以及 MKV 内封的章节。如果需要对源章节做修改(如修正错误的章节时间或手动输入章节标题),请提前手动抽取章节文件,修改完毕后命名为与源文件同名的 txt,比如 00000.m2ts -> 00000.txt, EP01.mkv -> EP01.txt,并放到源文件同目录下。
- 负责压制的组员,必须先检查确保自己的机器上,vpy 能正确输出,且画面正常。
- 点击新建任务按钮:
- 选择 OKEGui 项目文件,载入 json 文件。如果载入成功,界面会显示任务项目的一些摘要。如果失败,按照报错信息修改 json 文件,重新尝试载入。成功后点击下一步。
- 选择输入文件。输入文件就是待压制的视频源文件。OKEGui 可以多选文件,也可以在选择一个文件之后,再次点击“打开文件”选择其他的文件。选择错了可以点击并删除。通常技术总监在交代任务时,会说明这套方案适用于哪些 M2TS 文件;或者可能已经在 json 的
InputFiles
指定好,会直接在这个界面显示出来。点击下一步。
- 当前主界面上应该已经添加了刚刚指定的所有压制任务,每个源文件一个。如果还需要添加其他方案的压制任务,重复步骤 4。
- 如果需要多开,点击右下角“新建工作单元”和“删除工作单元”调整同时运行的任务数量。
- 点击“运行”开始压制任务。
- 如果在载入 json 文件之后,出现非常混乱的报错,通常是因为 json 文件有语法错误。
- 如果指定输入文件后,提示“添加多个输入文件请确保 VapourSynth 脚本使用 OKE 提供的模板。”,说明 vpy 文件里没有
#OKE:INPUTFILE
。 - 如果编码后弹窗出错,状态改为“音轨数不一致”,说明 json 里指定的音轨数量,和原盘中实际抽取出的数量不一致。json 里音轨数量必须和原盘里的完全一致。
- 如果编码后弹窗出错,状态变为“x265 出错”,说明 x265 编码报错。如果是任务开头出现问题,多半是编码器参数写错了。
- 如果编码后弹窗出错,状态变为“vpy 出错”,说明 vpy 脚本解读错误。
- 其他未知错误,如果造成程序崩溃或者任务中断,请开任务管理器,先看看是否还有 VSPipe.exe / x265.exe 在占用运算资源(记得汇报这一点),再手动掐掉。部分错误发生的之后,程序将跳过出错任务,继续跑完接下来的任务。
- 汇报未知错误的时候,请尽可能还原所用的压制环境版本以及 json、vpy 以及编码器文件,以及源的 M2TS 类型(帧率、音轨数量、是否有字幕、是否准备了章节等等)。