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] Processes 20 minutes of video then white screen
I'm doing an upscale from VHS, Hybrid runs then suddenly stops and exports an incomplete file, with nicely upscaled video followed by a blank white screen.

# Imports
import vapoursynth as vs
import os
import ctypes
# Loading Support Files
Dllref = ctypes.windll.LoadLibrary("C:/Program Files/Hybrid/64bit/vsfilters/Support/libfftw3f-3.dll")
import sys
# getting Vapoursynth core
core = vs.core
# Import scripts folder
scriptPath = 'C:/Program Files/Hybrid/64bit/vsscripts'
sys.path.insert(0, os.path.abspath(scriptPath))
# 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/SharpenFilter/CAS/CAS.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/GrainFilter/RemoveGrain/RemoveGrainVS.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/NEO_FFT3DFilter/neo-fft3d.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/EEDI3m.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/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/MiscFilter/MiscFilters/MiscFilters.dll")
core.std.LoadPlugin(path="C:/Program Files/Hybrid/64bit/vsfilters/SourceFilter/LSmashSource/vslsmashsource.dll")
# Import scripts
import edi_rpow2
import G41Fun
import mvsfunc
import havsfunc
# source: 'S:\LastHorrorFilm\'
# current color space: YUV420P8, bit depth: 8, resolution: 720x576, fps: 25, color matrix: 470bg, yuv luminance scale: limited, scanorder: bottom field first
# Loading S:\LastHorrorFilm\ using LWLibavSource
clip = core.lsmas.LWLibavSource(source="S:/LastHorrorFilm/", format="YUV420P8", cache=0, fpsnum=25, prefer_hw=0)
# Setting color matrix to 470bg.
clip = core.std.SetFrameProps(clip, _Matrix=5)
clip = clip if not core.text.FrameProps(clip,'_Transfer') else core.std.SetFrameProps(clip, _Transfer=5)
clip = clip if not core.text.FrameProps(clip,'_Primaries') else core.std.SetFrameProps(clip, _Primaries=5)
# Setting color range to TV (limited) range.
clip = core.std.SetFrameProp(clip=clip, prop="_ColorRange", intval=1)
# making sure frame rate is set to 25
clip = core.std.AssumeFPS(clip=clip, fpsnum=25, fpsden=1)
# setting field order to what QTGMC should assume (bottom field first)
clip = core.std.SetFrameProp(clip=clip, prop="_FieldBased", intval=1)
# Deinterlacing using QTGMC
clip = havsfunc.QTGMC(Input=clip, Preset="Fast", TFF=False) # new fps: 50
# make sure content is preceived as frame based
clip = core.std.SetFieldBased(clip, 0)
# adjusting frame count and rate with sRestore
clip = havsfunc.srestore(source=clip, frate=25.0000, omode=6, speed=9, thresh=16, mode=2)
# cropping the video to 720x566
clip = core.std.CropRel(clip=clip, left=0, right=0, top=4, bottom=6)
# removing grain using MLDegrain
clip = G41Fun.MLDegrain(clip=clip, tr=2, soft=[0,0,0])
# denoising using HQDN3D
clip = core.hqdn3d.Hqdn3d(clip=clip, lum_spac=0.00, chrom_spac=7.00, chrom_tmp=10.00)
# contrast sharpening using CAS
clip = core.cas.CAS(clip=clip, sharpness=0.600)
# deringing using HQDeringmod
clip = havsfunc.HQDeringmod(clip, nrmode=2, darkthr=3.0)
clip = core.std.AddBorders(clip=clip, left=0, right=0, top=0, bottom=2) # add borders to archive mod 4 (NNEDI3(CL)) - 720x568
# resizing using ZNEDI3
# current: 720x568 target: 2000x1474 -> pow: 4
clip = edi_rpow2.nnedi3_rpow2(clip=clip, rfactor=4) # 2880x2272
clip = core.std.CropRel(clip=clip, left=0, right=0, top=0, bottom=8) # removing borders (NNEDI3(CL)) -  2880x2264
# adjusting resizing
clip = core.fmtc.resample(clip=clip, w=2000, h=1474, kernel="lanczos", interlaced=False, interlacedd=False)
# adjusting output color from: YUV420P16 to YUV422P10 for ProResModel
clip = core.resize.Bicubic(clip=clip, format=vs.YUV422P10, range_s="limited", dither_type="error_diffusion")
# set output frame rate to 25fps
clip = core.std.AssumeFPS(clip=clip, fpsnum=25, fpsden=1)
# Output
10_43_22_8910_04_video: (video encoding)
"C:\Program Files\Hybrid\64bit\Vapoursynth\vspipe.exe" "S:\LastHorrorFilm\Last-Temp\encodingTempSynthSkript_2022-09-01@10_43_22_8910.vpy" - -c 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 -aspect 2000:1474 -metadata encoding_tool="Hybrid 2022.07.19.1" -f mov "S:\LastHorrorFilm\Last-Temp\"
starts and finishes after 00:33:09.221.
Last message is:
frame=13913 fps=7.1 q=-0.0 size=11923712kB time=00:09:16.00 bitrate=175681.7kbits/s speed=0.282x    
frame=13918 fps=7.1 q=-0.0 Lsize=11939048kB time=00:09:16.68 bitrate=175692.8kbits/s speed=0.283x    
video:11938884kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.001373%
FFmpeg reports no errors (exitcode: 0 and exitStatus: 0) and created S:\LastHorrorFilm\Last-Temp\ (11659.2 MB).
From the looks of it the vspipe simply stopped without an error.

My guesses atm. are:
  • LWLibavSource has some issue with the source. -> Try whether you can play the file in the Vapoursynth Preview starting at frame 13918.
    As alternative to LWLibavSource you could try using FFMS2 by disabling 'Prefer LWLibAVSource over FFmpegSource2'.
  • LWLibavSource might loose access to the file due to some virus scanner or network disturbance (in case the file is not locally).
  • VsPipe gets closed or the communication between it and FFmpeg gets interrupted for some unknown reason by some virus scanner or similar.

Cu Selur

Forum Jump:

Users browsing this thread: 1 Guest(s)