falcon
帖子: 10
注册时间: 2013-12-07 23:49

有没有方法可以取得输入的 PAR (SAR)?

代码: 全选

import vapoursynth as vs
import xmath as math
core = vs.get_core()
ret = core.ffms2.Source(source=r'input.m2ts')

lb = math.letterbox(ret, 720, 480, 40, 33)
ret = core.resize.Lanczos(ret, lb['rw'], lb['rh'])
ret = core.std.AddBorders(ret, lb['bl'], lb['br'], lb['bt'], lb['bb'])

ret.set_output()
xmath.py

代码: 全选

def letterbox(c, fw, fh, parnum, parden):
    inDAR = c.width / c.height # * inSAR
    rw = min(fw, int(fh * parden / parnum * inDAR / 2 + 0.5) * 2)
    rh = min(fh, int(fw * parnum / parden / inDAR / 2 + 0.5) * 2)
    bl = (fw - rw) / 2
    br = bl
    bt = (fh - rh) / 2
    bb = bt
    return {'rw': int(rw), 'rh': int(rh), 'bl': int(bl), 'br': int(br), 'bt': int(bt), 'bb': int(bb)}
我想写个能自动 resize 的脚本
但没有输入 Pixel/Sample Aspect Ratio 的值
如果输入 SAR 不是 1:1 就无法算出正确的结果
有没有方法可以取得输入的 SAR?

回到 “VapourSynth”