19.05.2024, 00:32
here's the good illustration of the new issue, when i try to load audio via .vpy script:
vdub2 loads and plays both audio and video without issue (so i think script is valid), while hybrid says it didn't find length ( same as here https://forum.selur.net/thread-14.html ). it then disables video processing tract.
vpy:
interesting question is how can it figure out length when same script is used, but without loading the audio in the script....ie script with video only
vdub2 loads and plays both audio and video without issue (so i think script is valid), while hybrid says it didn't find length ( same as here https://forum.selur.net/thread-14.html ). it then disables video processing tract.
vpy:
# Imports
import vapoursynth as vs
# getting Vapoursynth core
import ctypes
import sys
import os
core = vs.core
# Import scripts folder
scriptPath = 'C:/Program Files/Hybrid/64bit/vsscripts'
sys.path.insert(0, os.path.abspath(scriptPath))
# Loading Support Files
Dllref = ctypes.windll.LoadLibrary("C:/Program Files/Hybrid/64bit/vsfilters/Support/libfftw3f-3.dll")
# Loading Plugins
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/DenoiseFilter/CTMF/CTMF.dll")
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/GrainFilter/RemoveGrain/RemoveGrainVS.dll")
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/DenoiseFilter/HQDN3D/libhqdn3d.dll")
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/DenoiseFilter/NEO_FFT3DFilter/neo-fft3d.dll")
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/Support/libmvtools.dll")
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/DeinterlaceFilter/TIVTC/libtivtc.dll")
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/SourceFilter/LSmashSource/vslsmashsource.dll")
# Import scripts
import rescued
# source: 'C:\Video\netwr0k video cache\vhs_tdk_240_mamets theater_12sec killing telecide with laced subs.avi'
# current color space: YUV422P8, bit depth: 8, resolution: 480x576, fps: 25, color matrix: 470bg, yuv luminance scale: full, scanorder: top field first
# Loading C:\Video\netwr0k video cache\vhs_tdk_240_mamets theater_12sec killing telecide with laced subs.avi using LWLibavSource
clip = core.lsmas.LWLibavSource(source="C:/Video/netwr0k video cache/vhs_tdk_240_mamets theater_12sec killing telecide with laced subs.avi", format="YUV422P8", stream_index=0, cache=0, prefer_hw=0)
audio = core.bs.AudioSource(source=r"C:/Video/netwr0k video cache/vhs_tdk_240_mamets theater_12sec killing telecide with laced subs.avi")
# Setting detected color matrix (470bg).
clip = core.std.SetFrameProps(clip, _Matrix=5)
# Setting color transfer info (470bg)
clip = core.std.SetFrameProps(clip, _Transfer=5)
# Setting color primaries info (5)
clip = core.std.SetFrameProps(clip, _Primaries=5)
# Setting color range to PC (full) range.
clip = core.std.SetFrameProp(clip=clip, prop="_ColorRange", intval=0)
# making sure frame rate is set to 25
clip = core.std.AssumeFPS(clip=clip, fpsnum=25, fpsden=1)
clip = core.std.SetFrameProp(clip=clip, prop="_FieldBased", intval=2) # tff
# Deinterlacing using TIVTC
clip = core.tivtc.TFM(clip=clip)
# Making sure content is preceived as frame based
clip = core.std.SetFrameProp(clip=clip, prop="_FieldBased", intval=0) # progressive
# Making sure content is preceived as frame based
clip = core.std.SetFrameProp(clip=clip, prop="_FieldBased", intval=0) # progressive
# removing grain using TemporalDegrain
clip = rescued.TemporalDegrain(inpClip=clip)
# adjusting output color from: YUV422P8 to YUV420P8 for x264Model
clip=core.std.Crop(clip=clip, left=0, right=0,top=0, bottom=12)
clip = core.std.AddBorders(clip=clip, left=0,right=0,top=0,bottom=12, color = [0, 128, 128])
# Output
clip.set_output(index=0)
audio.set_output(index=1)
interesting question is how can it figure out length when same script is used, but without loading the audio in the script....ie script with video only