10.11.2025, 22:32
(10.11.2025, 15:19)Selur Wrote: Wenn der Input nicht progressive ist, solltest Du Hybrid das wissen lassen, in dem Du die 'overwrite input scan type to', in deinem Fall auf "field-blendend".
Dann sollte da auch nicht:
verwendet werden, was auch irgendwie komisch aussieht.clip = core.std.Crop(clip=clip, left=2, right=2, top=2, bottom=0)# cropping to 1916x1078
# converting full-height progressive to interlaced before deinterlacing
clip = core.resize.Bicubic(clip=clip, format=vs.YUV444P8)
clip = core.std.SeparateFields(clip=clip, tff=False)
clip = core.std.SelectEvery(clip=clip, cycle=4, offsets=[0, 3])
clip = core.std.DoubleWeave(clip=clip, tff=False) # resolution 1916x1078
clip = core.std.SelectEvery(clip=clip, cycle=2, offsets=0) # new fps: 12.5
clip = core.std.SetFrameProps(clip=clip, _FieldBased=vs.FIELD_TOP) # tff
clip = core.tivtc.TFM(clip=clip, mode=5, slow=2)
Vor allem ist mir unklar, wo das crop herkommt, das sollte da nicht sein.
(Stell sicher das Du die aktuelle Hybrid version 2025.11.09.1 verwendest.)
Hast Du die Filterreihenfolge geändert? Kann das hier nicht nachstellen.
Cu Selur
(10.11.2025, 15:40)Selur Wrote: Das von Dir gepostete Skript zeigt:
Aber wenn ich die sample.ts hier lade sehe ich:# Current color space: YUV420P8, bit depth: 8, resolution: 1920x1080, frame rate: 25fps, scanorder: progressive, yuv luminance scale: limited, matrix: 709, format: mpeg-2
Bei mir wird wenn ich TFM aktiviere:# Current color space: YUV420P8, bit depth: 8, resolution: 1920x1080, frame rate: 25fps, scanorder: bottom field first, yuv luminance scale: limited, matrix: 709, format: mpeg-2
erzeugt. Da sieht alles okay aus.# Imports
import vapoursynth as vs
# getting Vapoursynth core
import sys
import os
core = vs.core
# Limit frame cache to 48449MB
core.max_cache_size = 48449
# Import scripts folder
scriptPath = 'F:/Hybrid/64bit/vsscripts'
sys.path.insert(0, os.path.abspath(scriptPath))
# loading plugins
core.std.LoadPlugin(path="F:/Hybrid/64bit/vsfilters/Support/fmtconv.dll")
core.std.LoadPlugin(path="F:/Hybrid/64bit/vsfilters/DeinterlaceFilter/TIVTC/libtivtc.dll")
core.std.LoadPlugin(path="F:/Hybrid/64bit/vsfilters/SourceFilter/DGDecNV/DGDecodeNV_AVX2.dll")
# Import scripts
import validate
# Source: 'C:\Users\Selur\Desktop\sample.ts'
# Current color space: YUV420P8, bit depth: 8, resolution: 1920x1080, frame rate: 25fps, scanorder: bottom field first, yuv luminance scale: limited, matrix: 709, format: mpeg-2
# Loading C:\Users\Selur\Desktop\sample.ts using DGSource
clip = core.dgdecodenv.DGSource("J:/tmp/ts_3591dab47f54c59fc132a441faa50717_853323747.dgi",fieldop=0)# 25 fps, scanorder: bottom field first
frame = clip.get_frame(0)
# setting color matrix to 709.
clip = core.std.SetFrameProps(clip, _Matrix=vs.MATRIX_BT709)
# 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_BT709), if it is not set.
if validate.primariesIsInvalid(clip):
clip = core.std.SetFrameProps(clip=clip, _Primaries=vs.PRIMARIES_BT709)
# setting color range to TV (limited) range.
clip = core.std.SetFrameProps(clip=clip, _ColorRange=vs.RANGE_LIMITED)
# making sure frame rate is set to 25fps
clip = core.std.AssumeFPS(clip=clip, fpsnum=25, fpsden=1)
# making sure the detected scan type is set (detected: bottom field first)
clip = core.std.SetFrameProps(clip=clip, _FieldBased=vs.FIELD_BOTTOM) # bff
clip = core.tivtc.TFM(clip)
# Making sure content is preceived as frame based
clip = core.std.SetFrameProps(clip=clip, _FieldBased=vs.FIELD_PROGRESSIVE) # progressive
# no resizing since resolution is already archived
# adjusting output color from: YUV420P8 to YUV420P10 for NVEncModel
clip = core.resize.Bicubic(clip=clip, format=vs.YUV420P10)
# set output frame rate to 25fps (progressive)
clip = core.std.AssumeFPS(clip=clip, fpsnum=25, fpsden=1)
# output
clip.set_output()
=> wie gesagt, schau mal ob das Problem mit der aktuellen Version nicht gefixed ist.
------------
Nebenbei:
'Decombing' ist ein anderes Wort für Deinterlacing. Was Du willst "field-matching". Da sind TFM oder VFM die richtigen Filter.
Cu Selur
Okay! Ich glaube der größte Fehler meinerseits war es den Input Scan Typ auf "progressive" zu überschreiben statt auf field-blended. Ich war irgendwie unter dem Eindruck dass man das bei field-shifted Content so macht. Vielen dank!

