在之前的x264 Pro简介中,我曾经提到过这种使用帧服务器的桥接压制方案,那么今天我就来具体说一下这个桥接如何使用。
首先需要安装帧服务器,ps.帧服务器现在已经停止开发因此版本比较老。
http://www.debugmode.com/frameserver/
安装完成后即可在AME(Adobe Media Encoder)中调用。
Contents
一、启动帧服务器
首先我们在Premiere Pro中选择输出到AME,选择编码器DebugeMode Frameserver。选择输出位置,确定,点击开始序列,此时会启动Frameserver的设置界面,如下图所示。
设置界面中有RGB24,RGB32,YVY2可供选择。这三个格式的介绍如下。
RGB24
RGB24使用24位来表示一个像素,RGB分量都用8位表示,取值范围为0-255。注意在内存中RGB各分量的排列顺序为:BGR BGR BGR…。
RGB32
RGB32使用32位来表示一个像素,RGB分量各用去8位,剩下的8位用作Alpha通道或者不用。(ARGB32就是带Alpha通道的RGB24。)注意在内存中RGB各分量的排列顺序为:BGRA BGRA BGRA…。
YUY2
YUY2格式为像素保留Y,而UV在水平空间上相隔二个像素采样一次(Y0 U0 Y1 V0),(Y2 U2 Y3 V2)…其中,所以说这是一种4:2:2的采样。
由上述介绍我们可以明白,由于下面的操作是进行YUV420P的有损编码,而且我们不考虑使用Alpha通道,那么显而易见的,我们应该使用RGB24。(YVY2主要提供给CCE 2.67等软件使用,因此也不做考虑)。
选择好输出格式后,我们点击Next,即可启动帧服务器,此时帧服务器会在目标位置生成一个.avi文件,调用此文件即可进一步的编码或者播放。
二、编辑AVS处理脚本
编码过程其实可以选择直接交给编码器,但是我在这里想对输出文件进行处理,那么我们就需要使用AVS (avisynth),ps.由于某些原因VS的滤镜没办法正确加载此种.avi的codec,因此这里仍然使用AVS。
这里我假设我们需要压制一个体积比较小的720p视频,我们在Premiere Pro中输出源为1080p,那么我们可以这样操作:
载入视频,缩放到720p,将RGB转换为YUV12,降噪,去色带,输出。
实现以上过程可以用以下代码:源文件名称需要自行修改
#LoadSource
src8 = AVISource("00007.avi")
#Set Target Size
width = 1280
hight = 720
#Resize
src8 = Spline36Resize(src8, width, hight)
#RGB24 -> YV24
src8 = ConvertToYV24(src8, matrix="Rec709")
#8bit -> 16bit stack
src16 = U16(src8, stack=true)
#8bit YV24 -> 8bit YV12 & stacked 16bit YV24 -> stacked 16bit YV12
src8 = ConvertToYV12(src8, chromaresample="spline36", ChromaOutplacement="MPEG2")
U = src16.UtoY8(). Dither_resize16(width/2, hight/2, src_left=-0.5)
V = src16.VtoY8(). Dither_resize16(width/2, hight/2, src_left=-0.5)
src16 = YToUV(U, V, src16)
#denoise&debend
nr16 = KNLMeansCL (src16, cmode=False, h=0.5, s=3, d=2, a=2, device_type="GPU", device_id=1)
dbed = f3kdb(nr16, 8,48,36,36,0,0, input_mode=1, output_mode=1)
dbed = f3kdb(dbed, 16,36,26,26,0,0, input_mode=1, output_mode=1)
last = src16
dbed = Dither_limit_dif16(dbed, thr=0.4, elast=2.0)
#adaptive ordered dither
last = dbed
res = ditherpost(mode=0, ampo=1.5, mask=src8.mt_lut("x 32 +"))
#Output
res
以上的脚本是为动漫类视频设定,真人视频在降噪和消除色带方面需要另外调节参数。
三、使用MeGUI编码
得到脚本后,我们就可以使用MeGUI-x264对它编码。推荐参数如下:
--preset veryslow --tune film --crf 19 --deblock 0:0 --keyint 480 --min-keyint 1 --ref 9 --qcomp 0.7 --rc-lookahead 70 --aq-strength 0.9 --merange 16 --me tesa --psy-rd 0:0.20 --no-fast-pskip --colormatrix bt709 --fgo 1
以上的脚本和编码参数的思路主要是防止色带/色块/锯齿的发生。
在Megui中载入脚本,点击Queue添加到队列,在Queue选项卡中选择start开始压制。然后就可以泡杯茶等待压制成品了。
完成后点击Stop Serving停止帧服务器,此时任务结束。
参考文档:http://vcb-s.nmm-hd.org/