This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm whether you accept or reject these cookies being set.

A cookie will be stored in your browser regardless of choice to prevent you being asked this question again. You will be able to change your cookie settings at any time using the link in the footer.

[HELP] Input resolution not divisible error
#1
Question 
Hello, I've ran into an issue with my first SD NTSC capture: AJA's ControlRoom produces 486px (vertical) file, but VapourSynth crashes with division error

Error message:
File "src\\cython\\vapoursynth.pyx", line 3123, in vapoursynth.Function.__call__
vapoursynth.Error: Analyse: failed to retrieve first frame from super clip. Error message: Resize error 1027: image dimensions must be divisible by subsampling factor

What was done: I've inserted # requires mod 2 before QTGMC. Same behavior, but padding is visible in the generated .vpy script 

A snippet from .vpy generated script:
# Current color space: YUV422P10, bit depth: 10, resolution: 720x486, frame rate: 29.97fps, scanorder: top field first, yuv luminance scale: limited, matrix: 170m, transfer: bt.709, primaries: bt.601 ntsc, format: prores
# Loading I:\kseniya_tape1_ntsc.mov using BestSource)
clip = core.bs.VideoSource(source="I:/kseniya_tape1_ntsc.mov", cachepath="I:/TEMP/kseniya_tape1_ntsc_bestSource", track=0, hwdevice="cuda")
frame = clip.get_frame(0)
# setting color matrix to 170m.
clip = core.std.SetFrameProps(clip, _Matrix=vs.MATRIX_ST170_M)
# setting color transfer (vs.TRANSFER_BT709), if it is not set.
if validate.transferIsInvalid(clip):
clip = core.std.SetFrameProps(clip=clip, _Transfer=vs.TRANSFER_BT709)
# setting color primaries info (to vs.PRIMARIES_BT470_BG), if it is not set.
if validate.primariesIsInvalid(clip):
clip = core.std.SetFrameProps(clip=clip, _Primaries=vs.PRIMARIES_BT470_BG)
# setting color range to TV (limited) range.
clip = core.std.SetFrameProps(clip=clip, _ColorRange=vs.RANGE_LIMITED)
# making sure frame rate is set to 29.97fps
clip = core.std.AssumeFPS(clip=clip, fpsnum=30000, fpsden=1001)
# Converting to target color sampling
clip = core.resize.Bicubic(clip=clip, format=vs.YUV420P8, dither_type="error_diffusion")
# making sure the detected scan type is set (detected: top field first)
clip = core.std.SetFrameProps(clip=clip, _FieldBased=vs.FIELD_TOP) # tff
original = clip
# adjusting color format to YUV422P8 for custom section
clip = core.resize.Bicubic(clip=clip, format=vs.YUV422P8)
[clip] = beforeDeinterlace(clip)
# clip current meta; color space: YUV422P8, bit depth: 8, resolution: 720x486, fps: 29.97, color matrix: 170m, yuv luminance scale: limited, scanorder: top field first, full height: true
clip = core.std.AddBorders(clip=clip, left=0, right=0, top=0, bottom=2) # add borders to archive mod 4 (vsQTGMC) - 720x488
# Deinterlacing using QTGMC
clip = qtgmc.QTGMC(Input=clip, Preset="Medium", InputType=0, TFF=True, TR2=0, SourceMatch=1, Lossless=0, opencl=True) # new fps: 59.94
clip = core.std.Crop(clip=clip, left=0, right=0, top=0, bottom=2) # removing added borders from mod requirement (vsQTGMC) - 720x486
# Making sure content is preceived as frame based
clip = core.std.SetFrameProps(clip=clip, _FieldBased=vs.FIELD_PROGRESSIVE) # progressive
original = core.std.AddBorders(clip=original, left=0, right=0, top=0, bottom=2) # add borders to archive mod 4 (vsQTGMC) - 720x488
# Deinterlacing using QTGMC
original = qtgmc.QTGMC(original, Preset="Fast", TFF=True, opencl=True)# new fps: 59.94
original = core.std.Crop(clip=original, left=0, right=0, top=0, bottom=2) # removing added borders from mod requirement (vsQTGMC) - 720x486
# Making sure content is preceived as frame based
original = core.std.SetFrameProps(clip=original, _FieldBased=vs.FIELD_PROGRESSIVE) # progressive
# adjusting output color from: YUV422P8 to YUV420P8 for NVEncModel
clip = core.resize.Bicubic(clip=clip, format=vs.YUV420P8)
# add histogram
clip = core.hist.Classic(clip)
original = core.hist.Classic(original)
original = core.text.Text(clip=original,text="Original",scale=1,alignment=7)
clip = core.text.Text(clip=clip,text="Filtered",scale=1,alignment=7)
stacked = core.std.StackHorizontal([original,clip])
# adjusted resizing to achieve PAR 1:1 for preview
# resizing for preview to square pixel to 1310x742
stacked = core.resize.Bicubic(clip=stacked, width=1310, height=742)
# set output frame rate to 59.94fps (progressive)
stacked = core.std.AssumeFPS(clip=stacked, fpsnum=60000, fpsden=1001)

Hybrid 2025.11.09.1 was used, I've never ran into such issue before
Reply


Messages In This Thread
Input resolution not divisible error - by r3dfx - 01.05.2026, 21:23

Forum Jump:


Users browsing this thread: 1 Guest(s)