Selur's Little Message Board

Full Version: Feature, add/update rife frame interpolation
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2 3 4 5
Will need a debug output to see what happens and how to reproduce this.

Cu Selur
The crash error doesn't always appear and it takes me a while to reproduce the problem, because the crash occurs at the end of a video, and it takes like more than an hour, I'm using the computer, with other tasks most of the time, as soon as I find for now, I'll try to reproduce the error and upload the log.

I'm sorry for the inconvenience.

The other error, aboyt sync issue, seems doing it always when I use fractional interpolation with many decimals on a 23.976, but I have to test others sources.
Okay, let me know if you got something you can reproduce. Smile
I have managed to put a crash debug log in a zip jail.

This crash has occurred when doing the following:

- 1. A 23,976fps video

- 2. Filtering, speed change, scaling frame rate output: 60fps

- 3. Filtering, Vaporsyth, Frame, Interpolation, Rife, Rifev4, Multiplier: 2.5, skip threshold 60, scene change 0.130.
I've found that crashs occur regardless of using these last two options, so I've ruled out anything to do with this.

- 4. Output x265 custom profile (I don't think this has anything to do with it.)

Misc.scdetect dll has been added and seems to work correctly.

The crash happens sometimes only with RIFEv4 activated, multiply by 2.5 without activating anything else, for example point 2 (scale output frame rate).

Always crash at 99,99% transcoding progress.

If the video is changed for another of the same characteristics, but different, with the same configuration, it may not fail, generally when it crashes with a specific video, when doing it again, it always crashes if nothing is changed, and slightly varying any of the numbers, stop crashing.
Are you sure your system doesn't have heat issues? (vram, normal ram temperatures?)
Might also be that you are running out of vram. Smile
Code:
# Imports
import vapoursynth as vs
# getting Vapoursynth core
core = vs.core
# Loading Plugins
core.std.LoadPlugin(path="i:/Hybrid/64bit/vsfilters/MiscFilter/MiscFilters/MiscFilters.dll")
core.std.LoadPlugin(path="i:/Hybrid/64bit/vsfilters/FrameFilter/RIFE/RIFE.dll")
core.std.LoadPlugin(path="i:/Hybrid/64bit/vsfilters/SourceFilter/LSmashSource/vslsmashsource.dll")
# source: 'C:\Users\Selur\Desktop\sample25seconds.mkv'
# current color space: YUV420P8, bit depth: 8, resolution: 1920x1080, fps: 29.97, color matrix: 709, yuv luminance scale: limited, scanorder: progressive
# Loading C:\Users\Selur\Desktop\sample25seconds.mkv using LWLibavSource
clip = core.lsmas.LWLibavSource(source="C:/Users/Selur/Desktop/sample25seconds.mkv", format="YUV420P8", cache=0, fpsnum=30000, fpsden=1001, prefer_hw=0)
# Setting color matrix to 709.
clip = core.std.SetFrameProps(clip, _Matrix=1)
clip = clip if not core.text.FrameProps(clip,'_Transfer') else core.std.SetFrameProps(clip, _Transfer=1)
clip = clip if not core.text.FrameProps(clip,'_Primaries') else core.std.SetFrameProps(clip, _Primaries=1)
# Setting color range to TV (limited) range.
clip = core.std.SetFrameProp(clip=clip, prop="_ColorRange", intval=1)
# making sure frame rate is set to 29.970
clip = core.std.AssumeFPS(clip=clip, fpsnum=30000, fpsden=1001)
# adjusting frame with SelectEvery
clip = core.std.SelectEvery(clip=clip, cycle=5, offsets=[0, 1, 2, 3])
clip = core.std.AssumeFPS(clip=clip,fpsnum=24000, fpsden=1001)# new fps: 23.976
# cropping the video to 1432x1080
clip = core.std.CropRel(clip=clip, left=244, right=244, top=0, bottom=0)
clip = core.misc.SCDetect(clip=clip,threshold=0.150)
# adjusting color space from YUV420P8 to RGBS for vsRIFE
clip = core.resize.Bicubic(clip=clip, format=vs.RGBS, matrix_in_s="709", range_s="limited")
# adjusting frame count&rate with RIFE
clip = core.rife.RIFE(clip, model=9, multiplier=2.500000, sc=True) # new fps: 59.94
# needed 8
# adjusting output color from: RGBS to YUV420P10 for x265Model
clip = core.resize.Bicubic(clip=clip, format=vs.YUV420P10, matrix_s="709", range_s="limited", dither_type="error_diffusion")
# set output frame rate to 59.94fps
clip = core.std.AssumeFPS(clip=clip, fpsnum=60000, fpsden=1001)
# Output
clip.set_output()
works fine here.
But:
Code:
# Imports
import vapoursynth as vs
# getting Vapoursynth core
core = vs.core
# Loading Plugins
core.std.LoadPlugin(path="i:/Hybrid/64bit/vsfilters/Support/fmtconv.dll")
core.std.LoadPlugin(path="i:/Hybrid/64bit/vsfilters/MiscFilter/MiscFilters/MiscFilters.dll")
core.std.LoadPlugin(path="i:/Hybrid/64bit/vsfilters/FrameFilter/RIFE/RIFE.dll")
core.std.LoadPlugin(path="i:/Hybrid/64bit/vsfilters/SourceFilter/LSmashSource/vslsmashsource.dll")
# source: 'C:\Users\Selur\Desktop\sample25seconds.mkv'
# current color space: YUV420P8, bit depth: 8, resolution: 1920x1080, fps: 29.97, color matrix: 709, yuv luminance scale: limited, scanorder: progressive
# Loading C:\Users\Selur\Desktop\sample25seconds.mkv using LWLibavSource
clip = core.lsmas.LWLibavSource(source="C:/Users/Selur/Desktop/sample25seconds.mkv", format="YUV420P8", cache=0, fpsnum=30000, fpsden=1001, prefer_hw=0)
# Setting color matrix to 709.
clip = core.std.SetFrameProps(clip, _Matrix=1)
clip = clip if not core.text.FrameProps(clip,'_Transfer') else core.std.SetFrameProps(clip, _Transfer=1)
clip = clip if not core.text.FrameProps(clip,'_Primaries') else core.std.SetFrameProps(clip, _Primaries=1)
# Setting color range to TV (limited) range.
clip = core.std.SetFrameProp(clip=clip, prop="_ColorRange", intval=1)
# making sure frame rate is set to 29.970
clip = core.std.AssumeFPS(clip=clip, fpsnum=30000, fpsden=1001)
# adjusting frame with SelectEvery
clip = core.std.SelectEvery(clip=clip, cycle=5, offsets=[0, 1, 2, 3])
clip = core.std.AssumeFPS(clip=clip,fpsnum=24000, fpsden=1001)# new fps: 23.976
# cropping the video to 1432x1080
clip = core.std.CropRel(clip=clip, left=244, right=244, top=0, bottom=0)
clip = core.misc.SCDetect(clip=clip,threshold=0.150)
# adjusting color space from YUV420P8 to RGBS for vsRIFE
clip = core.resize.Bicubic(clip=clip, format=vs.RGBS, matrix_in_s="709", range_s="limited")
# adjusting frame count&rate with RIFE
clip = core.rife.RIFE(clip, model=9, multiplier=2.500000, sc=True) # new fps: 59.94
# needed 8
# Resizing using 10 - bicubic spline
clip = core.fmtc.resample(clip=clip, kernel="spline16", w=1920, h=1448, interlaced=False, interlacedd=False) # resolution 1920x1448
# adjusting output color from: RGBS to YUV420P10 for x265Model
clip = core.resize.Bicubic(clip=clip, format=vs.YUV420P10, matrix_s="709", range_s="limited", dither_type="error_diffusion")
# set output frame rate to 59.94fps
clip = core.std.AssumeFPS(clip=clip, fpsnum=60000, fpsden=1001)
# Output
clip.set_output()
crashes,...
this is strange the only thing that changed is the resize line,..
using a different resizer:
Code:
clip = core.fmtc.resample(clip=clip, kernel="gaussian", w=1920, h=1448, interlaced=False, interlacedd=False) # resolution 1920x1448
does not help, it still crashes,...
I forgot to mention one important thing

I had put this option Rifev4 GPU Threads: 1 Crash

But if I put Rifev4 gpu Threads: 2 don't crash

Everything else the same


In fact, I discovered the crash when I wanted to test if there was any qualitative difference between 1 thread and 2 threads, in the result. But it crashes with 1 thread. And it doesn't crash with 2. (only for this exactly video) Sometimes crashes with gpu = 2 for other video. As I said, it's like something random. But seems always related to multiplier n,n instead of just multiplier n.

I haven't tried more threads. At more than 2, the speed is more or less the same with my computer.
I tested gpu_thread=1 to 5 and they all crashed with my clip. Sad
I think I found the issue for me, the error I get when I call it in the command line is:
Code:
x265 [warning]: Max TU size should be less than or equal to max CU size, setting max TU size = 16
x265 [warning]: level 5 detected, but CTU size 16 is non-compliant
x265 [info]: NONE profile, Level-NONE (Main tier)
x265 [info]: non-conformant bitstreams not allowed (--allow-non-conformance)
x265 [error]: x265_encoder_open() failed for Enc,
x265 [error]: Failure generating stream headers in x265
Error: fwrite() call failed when writing frame: 5, plane: 0, errno: 32

Seems like this is another issue than yours, since for me it fails directly at the start of the encoding.
If I set level 5.1, it properly works. (--profile main10 --level-idc 5.1) no crash.

Cu Selur

Ps.: testing with gpu_thread=1 to 4 now (worked with 5)
Pages: 1 2 3 4 5