Looking at the DebugOutput the first thing that seems strang is that the length of the audio/video stream differs a lot:
- video length is 23s 0ms
- audio length is 11s 979ms (1st Audio)
- audio length is 11s 979ms (2nd Audio)
- audio length is 11s 979ms (3nd Audio)
- audio length is 11s 979ms (4th Audio)
- Timcode stream is 23s 0ms
this might cause problems later especially since the video is marked cfr.
Looking at the Vapoursynth script:
# Imports
import os
import sys
import ctypes
# Loading Support Files
Dllref = ctypes.windll.LoadLibrary("C:/Program Files/Hybrid/64bit/vsfilters/Support/libfftw3f-3.dll")
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/Support/vs_sangnommod.dll")
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/Support/EEDI2.dll")
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/GrainFilter/AddGrain/AddGrain.dll")
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/DenoiseFilter/FFT3DFilter/fft3dfilter.dll")
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/DenoiseFilter/DFTTest/DFTTest.dll")
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/Support/EEDI3.dll")
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/libmvtools.dll")
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/Support/temporalsoften.dll")
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/Support/scenechange.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/LSmashSource/vslsmashsource.dll")
# Import scripts
import mvsfunc
import havsfunc
# input color space: YUV422P10, bit depth: 10
# Loading J:\AJA Capture\Test AJA Cap Tape 00_22.mov using LWLibavSource
clip = core.lsmas.LWLibavSource(source="J:/AJA Capture/Test AJA Cap Tape 00_22.mov", format="YUV422P10", cache=0, fpsnum=25, prefer_hw=0)
# 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 25
clip = core.std.AssumeFPS(clip, fpsnum=25, fpsden=1)
# Setting color range to TV (limited) range.
clip = core.std.SetFrameProp(clip=clip, prop="_ColorRange", intval=1)
# setting field order to what QTGMC should assume
clip = core.std.SetFrameProp(clip=clip, prop="_FieldBased", intval=2)
# Deinterlacing using QTGMC
clip = havsfunc.QTGMC(Input=clip, Preset="Fast", TFF=True)
# make sure content is preceived as frame based
clip = core.std.SetFieldBased(clip, 0)
clip = clip[::2]
# denoising using DFTTest
clip = core.dfttest.DFTTest(clip=clip)
# applying anti aliasing using santiag
clip = havsfunc.santiag(c=clip)
# Output
clip.set_output()
I see no color space conversion of similar that might cause banding.
Encoding call:
"C:\Program Files\Hybrid\64bit\Vapoursynth\vspipe.exe" "C:\Users\BigBubba\AppData\Local\Temp\encodingTempSynthSkript_13_41_36_4610.vpy" - --y4m | "C:\Program Files\Hybrid\64bit\ffmpeg.exe" -y -noautorotate -nostdin -threads 8 -f yuv4mpegpipe -i - -an -sn -vf zscale=rangein=tv:range=tv -pix_fmt yuv422p10le -strict -1 -vsync 0 -vcodec prores_ks -profile:v 2 -vtag apcn -f mov "C:\Users\BigBubba\AppData\Local\Temp\selurdebug test 4_13_41_36_4610_06.mov"
also looks fine, no apparent problem.
One thing that does not cause a problem, but which I will fix is that Hybrid does not check the output of the ProRes Encoding call.
Muxing call:
"C:\Program Files\Hybrid\64bit\ffmbc.exe" -y
-i "C:\Users\BigBubba\AppData\Local\Temp\selurdebug test 4_13_41_36_4610_06.mov"
-i "C:\Users\BigBubba\AppData\Local\Temp\iId_1_aid_0_lang_en_13_41_36_4610_01.wav"
-i "C:\Users\BigBubba\AppData\Local\Temp\iId_2_aid_1_lang_en_13_41_36_4610_02.wav"
-i "C:\Users\BigBubba\AppData\Local\Temp\iId_3_aid_2_lang_en_13_41_36_4610_03.wav"
-i "C:\Users\BigBubba\AppData\Local\Temp\iId_4_aid_3_lang_en_13_41_36_4610_04.wav"
-vcodec copy -acodec copy -map 0:0 -map 1:0 -map 2:0 -map 3:0 -map 4:0 -metadata encoding_tool="Hybrid 2020.05.28.1" -aspect 136574:100000 -r 25/1 -f mov "J:\AJA Capture\selurdebug test 4.mov"
seems fine too, but aborts with:
FFmbc version N-32104-ga751c9271a
Copyright (c) 2008-2016 Baptiste Coudurier and the FFmpeg developers
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'C:\Users\BigBubba\AppData\Local\Temp\selurdebug test 4_13_41_36_4610_06.mov':
Metadata:
major_brand: qt
minor_version: 512
compatible_brands: qt
encoder: Lavf58.42.101
Duration: 00:00:23.00, bitrate: 34010 kb/s
Stream #0.0(und): Video: prores, yuv422p10le, 720x576p, 34009 kb/s, 25.00 fps
Metadata:
codec_name: Lavc58.82.100 prores_ks
Input #1, wav, from 'C:\Users\BigBubba\AppData\Local\Temp\iId_1_aid_0_lang_en_13_41_36_4610_01.wav':
Duration: 00:00:23.00, bitrate: 2304 kb/s
Stream #1.0(und): Audio: pcm_s24le, 48000 Hz, stereo, s32, 2304 kb/s
Input #2, wav, from 'C:\Users\BigBubba\AppData\Local\Temp\iId_2_aid_1_lang_en_13_41_36_4610_02.wav':
Duration: 00:00:23.00, bitrate: 2304 kb/s
Stream #2.0(und): Audio: pcm_s24le, 48000 Hz, stereo, s32, 2304 kb/s
Input #3, wav, from 'C:\Users\BigBubba\AppData\Local\Temp\iId_3_aid_2_lang_en_13_41_36_4610_03.wav':
Duration: 00:00:23.00, bitrate: 2304 kb/s
Stream #3.0(und): Audio: pcm_s24le, 48000 Hz, stereo, s32, 2304 kb/s
Input #4, wav, from 'C:\Users\BigBubba\AppData\Local\Temp\iId_4_aid_3_lang_en_13_41_36_4610_04.wav':
Duration: 00:00:23.00, bitrate: 2304 kb/s
Stream #4.0(und): Audio: pcm_s24le, 48000 Hz, stereo, s32, 2304 kb/s
Number of stream maps must match number of output streams
I wonder why, because there are Input streams #0-#4 and all those are mapped to the first (and only output) '-map 0:0 -map 1:0 -map 2:0 -map 3:0 -map 4:0'.
=> Good news is: I can reproduce the issue here and simply
Bad news: no clue why this is happening.
I'll look into it, but this might take a while.
-> Okay, using ffmpeg the same call works fine.
So try whether it helps if you disable 'Config->Output->Container Settings->FFmbc for .mov muxing' (it's in the middle of the screen) before creating the job.
Cu Selur