Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion. Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules. |
15th November 2013, 16:03 | #1081 | Link |
Professional Code Monkey
Join Date: Jun 2003
Location: Kinnarps Chair
Posts: 2,555
|
You are running it from a command prompt, right? That way it will usually at least print a fatal error message to stderr. It could be that it simply went over the limit very shortly. I would never try to run it with a memory limit over 2GB since that's only the limit for when memory begins to get reclaimed. Combined with allocations inside filters you're still dangerously close to 3GB if you set it to 2.5GB.
__________________
VapourSynth - proving that scripting languages and video processing isn't dead yet Last edited by Myrsloik; 15th November 2013 at 16:26. |
15th November 2013, 16:46 | #1082 | Link |
Beyond Kawaii
Join Date: Feb 2008
Location: Russia
Posts: 724
|
Nope. I'm simply encoding it in VirtualDub GUI. Right now it is over 145000 frames, and is still using around 830MB. No idea why it would crash back then.
Update. It has suddenly and silently crashed again.
__________________
...desu! Last edited by Mystery Keeper; 15th November 2013 at 16:56. |
15th November 2013, 17:04 | #1083 | Link | |
Professional Code Monkey
Join Date: Jun 2003
Location: Kinnarps Chair
Posts: 2,555
|
Quote:
What's the resolution of your source?
__________________
VapourSynth - proving that scripting languages and video processing isn't dead yet |
|
15th November 2013, 18:02 | #1085 | Link |
Guest
Posts: n/a
|
RemovePort is now done being ported and converted to intrinsics. If you want to test it out a binary is here. I have not really tested it much so far so please let me know of any issues.
A simple Vapoursynth script to test would look like the following if your clip is not greyscale: Code:
clip = core.ffms2.Source(src) cleansed = core.rgvs.Clense(clip) sbegin = core.rgvs.ForwardClense(clip) send = core.rgvs.BackwardClense(clip) scenechange = core.vsrd.SCSelect(clip, sbegin, send, cleansed) alt = core.rgvs.Repair(scenechange, clip, mode=[16,16,1]) restore = core.rgvs.Repair(cleansed, clip, mode=[16,16,1]) corrected = core.vsrd.RestoreMotionBlocks(cleansed, restore, neighbour=clip, alternative=alt, gmthreshold=70, dist=1, dmode=2, noise=10, noisy=12, grey=0) clip = core.rgvs.RemoveGrain(corrected, mode=[17,17,1]) clip.set_output() Works with only YUV420P8 and YUV422P8 right now. Last edited by handaimaoh; 16th November 2013 at 02:23. |
15th November 2013, 19:21 | #1086 | Link |
Registered User
Join Date: Jan 2002
Posts: 332
|
I try vapoursynth for the first time. It's a little bit harder than avisynth.
But I succeed to run a script with qtgmc() thanks to aegisofrime script example http://forum.doom9.org/showthread.ph...99#post1649699 although the cpu usage is 100% ( compare to ~50% with my avs script ) the speed is slower for x264 encoding ??? Are some plugins less optimized yet ? Another question: Is there a special way to load yadif.dll ? because it doesn't work for me core.avs.LoadPlugin(path=r'C:\Program Files (x86)\AviSynth 2.5\plugins\yadif.dll') core.avs.Load_Stdcall_Plugin(path=r'C:\Program Files (x86)\AviSynth 2.5\plugins\yadif.dll') ? And if someone can give me a script example for yadifmod with edeint=nnedi3 It would be nice. Vapoursynth look promising for the futur, I will keep an eye on it . |
15th November 2013, 19:32 | #1087 | Link | |
Professional Code Monkey
Join Date: Jun 2003
Location: Kinnarps Chair
Posts: 2,555
|
Quote:
QTGMC is known to be a bit slower than when run in avisynth-mt at its best but the difference should be around 15% or so at most.
__________________
VapourSynth - proving that scripting languages and video processing isn't dead yet |
|
15th November 2013, 19:33 | #1088 | Link |
Professional Code Monkey
Join Date: Jun 2003
Location: Kinnarps Chair
Posts: 2,555
|
Did you overclock your computer or look at the core temperature at all when running the script? Just curious.
__________________
VapourSynth - proving that scripting languages and video processing isn't dead yet |
15th November 2013, 19:49 | #1090 | Link |
Professional Code Monkey
Join Date: Jun 2003
Location: Kinnarps Chair
Posts: 2,555
|
Running the script with a blankclip source now. Will see if it can pass 500000 frames in a couple of hours. Days like these I wish I'd gone with a 3770k cpu...
__________________
VapourSynth - proving that scripting languages and video processing isn't dead yet |
15th November 2013, 20:11 | #1092 | Link | |
Registered User
Join Date: Jan 2002
Posts: 332
|
Quote:
clip = haf.QTGMC(clip, Preset='slow',TFF=True) clip = clip[::2] and for avisynth (~50-60% cpu usage ) setmtmode(2) QTGMC(preset="slow", EdiThreads=4).selecteven() x264 --preset slower And speed is about 20% less with vapoursynth |
|
15th November 2013, 21:43 | #1094 | Link |
Professional Code Monkey
Join Date: Jun 2003
Location: Kinnarps Chair
Posts: 2,555
|
The 3570k, because at the time I hadn't decided to work on very multithreaded things like VapourSynth. Maybe Intel will give me something better if I ask nicely...
Anyway, next investment will be a very fast graphics card that doesn't sound like a vacuum cleaner. If someone happens to have a computer with lots of cores I could use remotely to test VapourSynth on that'd be very useful. It's hard for me to test how well things scale on lots of cores with only 4 here.
__________________
VapourSynth - proving that scripting languages and video processing isn't dead yet |
16th November 2013, 00:44 | #1095 | Link |
Professional Code Monkey
Join Date: Jun 2003
Location: Kinnarps Chair
Posts: 2,555
|
506k frames later and it still works. I don't think this method of testing will yield anything. I'll add logging of fatal errors and then let you try that build.
__________________
VapourSynth - proving that scripting languages and video processing isn't dead yet |
16th November 2013, 02:01 | #1096 | Link | ||
Registered User
Join Date: Mar 2012
Location: Texas
Posts: 1,666
|
Quote:
Quote:
Also, since clense is now included with RemoveGrainVS shouldn't the script look something like this instead? Code:
clip = core.ffms2.Source(src) cleansed = core.rgvs.Clense(clip) sbegin = core.rgvs.ForwardClense(clip) send = core.rgvs.BackwardClense(clip) scenechange = core.vsrd.SCSelect(clip, sbegin, send, cleansed) alt = core.rgvs.Repair(scenechange, clip, mode=[16,16,1]) restore = core.rgvs.Repair(cleansed, clip, mode=[16,16,1]) corrected = core.vsrd.RestoreMotionBlocks(cleansed, restore, neighbour=clip, alternative=alt, gmthreshold=70, dist=1, dmode=2, noise=10, noisy=12, grey=0) clip = core.rgvs.RemoveGrain(corrected, mode=[17,17,1]) clip.set_output() --- I wonder why Kassandro chose clense instead of cleanse? |
||
16th November 2013, 09:38 | #1098 | Link | |
Beyond Kawaii
Join Date: Feb 2008
Location: Russia
Posts: 724
|
Quote:
Update: got it crash faster while testing with vspipe. I think it said "fwrite error". Testing again with redirecting stderr to file.
__________________
...desu! Last edited by Mystery Keeper; 16th November 2013 at 10:11. |
|
16th November 2013, 10:29 | #1099 | Link |
Beyond Kawaii
Join Date: Feb 2008
Location: Russia
Posts: 724
|
Ok, it has crashed with "fwrite() call failed" error while ran in windows console with output to stdout.
vspipe D:\Programming\TempLinearApproximate-VapourSynth\build\release-x32\test.vpy - -progress 2>E:\vsout.txt Here's the log. It has not crashed for 1500 frames with stdout redirected to file (which wasn't intentional) before I've stopped it. Used this script to give it harder time. Code:
avisynth_plugins_path = 'E:\\avisynth-plugins\\' vapoursyth_plugins_path = 'E:\\vapoursynth-plugins\\x32\\' import vapoursynth as vs import sys sys.path.append(vapoursyth_plugins_path + 'E:\\vapoursynth-plugins\\py\\') core = vs.get_core(threads=8) core.set_max_cache_size(2500) import os for filename in os.listdir(vapoursyth_plugins_path): if filename[-4:] != '.dll': continue core.std.LoadPlugin(vapoursyth_plugins_path + filename) core.avs.LoadPlugin(path = avisynth_plugins_path + 'mvtools2.dll') core.std.LoadPlugin(path = 'D:\\Programming\\TempLinearApproximate-VapourSynth\\build\\release-x32\\templinearapproximate.dll') d2vfile = 'F:\\Video to Process\\Riaru Onigokko 2\\VTS_01_1.d2v' ret = core.d2v.Source(input=d2vfile) def pcToTv(input): c = core.fmtc.resample (clip=input, css="444") c = core.fmtc.matrix (clip=c, mats="601", matd="709") c = core.fmtc.resample (clip=c, css="420") c = core.fmtc.bitdepth (clip=c, bits=8) return c z = pcToTv(ret) sys.path.append('D:\\Programming\\TempLinearApproximate-VapourSynth\\') import MCDenoise tlamc = MCDenoise.MCDenoise() tlaArguments = dict(radius=5, BlockSize=8, Overlap=4, SubPel=4, SubPelInterp=2, Search=5, SearchParam=2, PelSearch=4, DCT=10, ThSAD=200) ret = tlamc.TempLinearApproximate(ret, **tlaArguments) ret = tlamc.TempLinearApproximate(ret, **tlaArguments) ret = tlamc.TempLinearApproximate(ret, **tlaArguments) ret = core.f3kdb.F3kdb(ret, dither_algo=2, grainy=0, grainc=0, keep_tv_range=True) ret = pcToTv(ret) ret.set_output() def absdiff(x, y): return min(max(0, 127 + x - y), 255) unfiltered = core.text.Text(z, "unfiltered") filtered = core.text.Text(ret, "filtered") stack = core.std.StackHorizontal([unfiltered, filtered]) diffhist = core.std.Lut2([z, ret], function = absdiff) #diffhist = core.generic.Levels(diffhist, planes=0, gamma = 3) diffhist = core.text.Text(diffhist, "Difference") filteredhist = core.generic.Levels(ret, planes=0, gamma = 2) filteredhist = core.text.Text(filteredhist, "Filtered amplified") diffstack = core.std.StackHorizontal([diffhist, filteredhist]) compare = core.std.StackVertical([stack, diffstack]) #compare.set_output()
__________________
...desu! |
Tags |
speed, vaporware, vapoursynth |
Thread Tools | Search this Thread |
Display Modes | |
|
|