Posts: 10.981
Threads: 57
Joined: May 2017
21.08.2020, 16:31
(This post was last modified: 21.08.2020, 16:32 by Selur.)
I think I fixed the problem with the interlaced handling.
Will send you link to a dev version for testing in ~1/2hr via PM.
Okay, scratch that. You disabled PMs so no link.
Cu Selur
Posts: 8
Threads: 1
Joined: Aug 2020
(21.08.2020, 16:31)Selur Wrote: I think I fixed the problem with the interlaced handling.
Will send you link to a dev version for testing in ~1/2hr via PM.
Okay, scratch that. You disabled PMs so no link.
Cu Selur Hello Selur:
Thanks for looking into this (and fixed it).
On the other side, I wasn't even aware that I've disabled PM's, I'm sorry. They're active now and would love to put my hands on that dev version.
Cheers.
Posts: 8
Threads: 1
Joined: Aug 2020
Hello Selur:
I've doing some tests on the DEV version you kindly sent me, and the error when encoding interlaced material using the DNxHD 145 profile is gone and encoded without a glitch, but now the conversion to output PAR to 1:1 seems to be broken, instead of 1440 always shows 1620 px in target resolution when the height is upscaled to 1080 resulting in a distorted picture.
On the other hand, if I try to IVTC an eligible source with filmdint or VIVTC (Vapoursynth) and use the DNxHD 115 or 175 profile to encode at 23.976, it just simply fails.
Cheers.
Posts: 10.981
Threads: 57
Joined: May 2017
Would need a separate debug output of each of the issues to say anything about it.
Cu Selur
Posts: 8
Threads: 1
Joined: Aug 2020
(26.08.2020, 20:22)Selur Wrote: Would need a separate debug output of each of the issues to say anything about it.
Cu Selur
Alright, I hope I did this debug output well.
What I wanted to do is IVTC this SD interlaced source, upscale to 1080p and encode with DNxHD to 23.976 fps using profile 175. Failed.
Notice the conversion of output PAR to square pixel (1:1) also failed.
Thanks.
Posts: 10.981
Threads: 57
Joined: May 2017
Seems like the Vapoursynth script is fine:
# Imports
import os
import sys
import vapoursynth as vs
core = vs.get_core()
# Import scripts folder
scriptPath = 'C:/Program Files/Hybrid/64bit/vsscripts'
sys.path.append(os.path.abspath(scriptPath))
# Loading Plugins
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/ResizeFilter/nnedi3/vsznedi3.dll")
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/Support/fmtconv.dll")
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/SourceFilter/d2vSource/d2vsource.dll")
# Import scripts
import edi_rpow2
# loading source: V:\+VMASTER+\Pat Benatar - Love Is A Battlefield (1983).VOB
# color sampling YUV420P8@8, matrix:470bg, scantyp: telecine
# luminance scale TV
# resolution: 720x480
# frame rate: 24.97 fps
# input color space: YUV420P8, bit depth: 8, resolution: 720x480, fps: 29.97
# Loading V:\+VMASTER+\Pat Benatar - Love Is A Battlefield (1983).VOB using D2VSource
clip = core.d2v.Source(input="D:/Working BluRay/2020-08-27@20_50_55_6010.d2v")
# making sure input color matrix is set as 470bg
clip = core.resize.Point(clip, matrix_in_s="470bg",range_s="limited")
# making sure frame rate is set to 29.970
clip = core.std.AssumeFPS(clip, fpsnum=30000, fpsden=1001)
# Setting color range to TV (limited) range.
clip = core.std.SetFrameProp(clip=clip, prop="_ColorRange", intval=1)
clip = core.vivtc.VFM(clip=clip, order=0, mode=1)
clip = core.vivtc.VDecimate(clip=clip)# new fps: 24.97
# resizing using ZNEDI3
clip = edi_rpow2.nnedi3_rpow2(clip=clip, rfactor=4, qual=1)
# adjusting resizing
clip = core.fmtc.resample(clip=clip, w=1620, h=1080, kernel="lanczos", interlaced=False, interlacedd=False)
# letterboxing to 1920x1080
clip = core.std.AddBorders(clip=clip, left=150, right=150, top=0, bottom=0)
# adjusting output color from: YUV420P16 to YUV422P8 for DNxHDModel (i422)
clip = core.resize.Bicubic(clip=clip, format=vs.YUV422P8, range_s="limited")
# Output
clip.set_output()
Don't see any indication that there is a problem with the IVTC of the telecined (NOT interlaced) content or the resizing.
Problem is that the ffmpeg call is broken:
Quote:ffmpeg -y -noautorotate -nostdin -threads 8 -f yuv4mpegpipe -i - -an -sn -vf zscale=rangein=tv:range=tv -pix_fmt yuv422p -vsync 0 -vcodec dnxhd -profile:v 0 -b:v M -mbd 0 "D:\Working BluRay\Pat Benatar - Love Is A Battlefield (1983)_2020-08-27@20_50_55_6010_07.mov"
It contains an 'M' instead of the bitrate which causes:
[dnxhd @ 0000022f8573e000] [Eval @ 0000005eafdfe400] Undefined constant or missing '(' in 'M'
[dnxhd @ 0000022f8573e000] Unable to parse option value "M"
[dnxhd @ 0000022f8573e000] Error setting option b to value M.
Seems like the DNxHD profiles or the call generation is somehow are broken.
-> will look at it, after work.
Cu Selur
Posts: 8
Threads: 1
Joined: Aug 2020
Thank you.
Quote:Don't see any indication that there is a problem with ... or the resizing.
I'm a bit of confused here, when converting the output of a 720x480 source to PAR 1:1 the weight shouldn't be 1440 instead of 1620 px as it is showing in the log?
In fact, the resulting encode looks stretched.
Posts: 208
Threads: 66
Joined: Apr 2019
Removing the "Force" option for deinterlacing does impact the functionality of the program.
For example, QTGMC has options for video that is not interlaced. (It even has InputType=1 for progressive input, where it only does denoising.)
If I want to resize the video via Spline144 resize BEFORE running QTGMC (i.e., move "resize" to top in Custom Filter Order), without the "Forced" option, Hybrid will insert the following:
# deinterlace since the filter does not support interlaced content
AssumeTFF().TDeint(mode=1)
# scaling to 720x480
Spline144Resize(720,480)
AssumeTFF().Separatefields().Selectevery(4,0,3).Weave()
# deinterlacing
So, I can't use QTGMC after resizing without Hybrid mucking with the script.
In previous versions, I could simply use the "Force" option, and the script is the same, but without the above unwanted stuff being inserted.
So the program is less functional with "Force" removed. I have to use previous Hybrid versions if I want to resize, THEN run QTGMC in modes 1, 2, or 3.
Posts: 10.981
Threads: 57
Joined: May 2017
Quote:# deinterlace since the filter does not support interlaced content
Happens since Hybrid assumes that 'Spline144Resize' is not able to resize interlaced content.
So what it does it: Deinterlace, apply the filter an reinterlace.
Alternatively it could separate the source into field, resize the fields and then weave the fields again. (This is can be enabled through 'Filtering->Avisynth->Misc->Interlaced Handling->Separate fields for interlaced content')
This is the correct behavior and is totally unrelated to the force deinterlacing option.
Cu Selur
|