Selur's Little Message Board
[HELP] Processes 20 minutes of video then white screen - Printable Version

+- Selur's Little Message Board (https://forum.selur.net)
+-- Forum: Hybrid - Support (https://forum.selur.net/forum-1.html)
+--- Forum: Problems & Questions (https://forum.selur.net/forum-3.html)
+--- Thread: [HELP] Processes 20 minutes of video then white screen (/thread-2868.html)



Processes 20 minutes of video then white screen - Miranda - 01.09.2022

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\LastHorrorFilm-MyCapture.mov'
# 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\LastHorrorFilm-MyCapture.mov using LWLibavSource
clip = core.lsmas.LWLibavSource(source="S:/LastHorrorFilm/LastHorrorFilm-MyCapture.mov", 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
clip.set_output()



RE: Processes 20 minutes of video then white screen - Selur - 01.09.2022

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\LastHorrorFilm-MyCapture_2022-09-01@10_43_22_8910_04.mov"
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\LastHorrorFilm-MyCapture_2022-09-01@10_43_22_8910_04.mov (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


RE: Processes 20 minutes of video then white screen - Miranda - 15.10.2022

I really need to find out what exactly is causing this issue. I'm processing captured VHS on a 2TB hard drive, with 1.6TB of free space. Latest de-bug file attached. Would re-installing Hybrid help?


RE: Processes 20 minutes of video then white screen - Selur - 15.10.2022

Quote:I really need to find out what exactly is causing this issue.
So, did you try what I suggested?
Also make sure your system CPU, GPU, RAM are not overclocked.

Quote:Latest de-bug file attached.
Don't see any errors or similar there, seems like everything worked. And the queue was finished without a problem.

Quote:Would re-installing Hybrid help?
I doubt it, this does not seem like a Hybrid bug.

Cu Selur


RE: Processes 20 minutes of video then white screen - Miranda - 15.10.2022

The strange thing is Hybrid used to work on the same PC perfectly. I am at a loss to find out why it started producing mainly white files. I'm using a dev version you sent over so I could output interlaced upscales. Perhaps there is something different in this version? (2022.07.19.1)

I will try disabling 'Prefer LWLibAVSource over FFmpegSource2' and report back.

How can I find out if the system CPU, GPU, RAM are overclocked?


RE: Processes 20 minutes of video then white screen - Selur - 15.10.2022

Quote:How can I find out if the system CPU, GPU, RAM are overclocked?
if you did not overclock it, and you bought a pre-build system, it's probably not.
You could also use CPU-Z to check the clock speed of your cpu and memory and GPU-Z to check the gpu speed.

Quote:Perhaps there is something different in this version? (2022.07.19.1)
Mainly the dll versions changed, but if it was a general problem the whole clip would be white, not just starting at a specific position.
Also, if you encode the same clip is it always white starting at the same position?