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. |
29th November 2012, 19:49 | #1 | Link |
Registered User
Join Date: Aug 2006
Location: Taiwan
Posts: 392
|
HAvsFunc
https://github.com/HomeOfVapourSynthEvolution/havsfunc
Usage Example: Firstly, put havsfunc.py to Python\Lib\site-packages. Code:
from vapoursynth import core import havsfunc as haf clip = yourclip clip = haf.QTGMC(clip, Preset='Medium', TFF=True) Last edited by HolyWu; 26th June 2020 at 05:25. |
30th November 2012, 02:30 | #3 | Link | |
Registered User
Join Date: Aug 2006
Location: Taiwan
Posts: 392
|
Quote:
BTW, if encountering deadlock, try setting the number of threads to a bigger number, vs.Core(threads=x). But no guarantee it will always work. The perfeck solution is to wait for the fix of MVTools2. |
|
30th November 2012, 02:44 | #5 | Link |
Registered User
Join Date: Sep 2004
Location: Near LA, California, USA
Posts: 1,545
|
QTGMC(clip, Preset='Medium', SubPel=2, TFF=True) constantly crashes VirtualDub for VapourSynth. Picture looks great though. I'll try to fiddle with it later.
__________________
Pirate: Now how would you like to die? Would you like to have your head chopped off or be burned at the stake? Curly: Burned at the stake! Moe: Why? Curly: A hot steak is always better than a cold chop. |
30th November 2012, 04:03 | #7 | Link |
Registered User
Join Date: Aug 2006
Location: Taiwan
Posts: 392
|
Can't say if more stable than avisynthMT or not. Maybe it depends on your available threads or settings. I only tried encoding a 1440x1080 1m30s video with Medium preset without crash or deadlock. If you want to avoid the deadlock caused by MCompensate, try setting SLMode to 1 or 3(spatial sharpness limiting) for the time being. Be aware that activating NoiseProcess with some combination of settings will invoke MCompensate too.
|
30th November 2012, 06:51 | #8 | Link |
typo lover
Join Date: May 2009
Posts: 595
|
you should use 'if foo is None:' instead of 'if foo == None:'.
see this. http://jaredgrubb.blogspot.jp/2009/0...e-vs-none.html
__________________
my repositories |
30th November 2012, 12:32 | #9 | Link | |
Registered User
Join Date: Aug 2006
Location: Taiwan
Posts: 392
|
Quote:
|
|
30th November 2012, 22:17 | #11 | Link |
Registered User
Join Date: Sep 2004
Location: Near LA, California, USA
Posts: 1,545
|
Memory hogging is still going on for me. Vdub still crashes with the new version.
Is it possible to implement fmtconv instead of Bob() as an alternative for those who have crashing issues? fmtconv is slower, but perhaps it could be more stable.
__________________
Pirate: Now how would you like to die? Would you like to have your head chopped off or be burned at the stake? Curly: Burned at the stake! Moe: Why? Curly: A hot steak is always better than a cold chop. |
30th November 2012, 23:55 | #12 | Link |
Professional Code Monkey
Join Date: Jun 2003
Location: Kinnarps Chair
Posts: 2,579
|
Uh, what is this memory leak problem in Bob? I know I did a quick and bad job of ripping it out of avisynth but it still shouldn't crash... that much.
__________________
VapourSynth - proving that scripting languages and video processing isn't dead yet |
1st December 2012, 02:42 | #13 | Link | |
Registered User
Join Date: Aug 2006
Location: Taiwan
Posts: 392
|
Quote:
Last edited by HolyWu; 1st December 2012 at 02:49. |
|
1st December 2012, 03:14 | #14 | Link |
Registered User
Join Date: Sep 2004
Location: Near LA, California, USA
Posts: 1,545
|
I tried using fmtconv instead of BicubicResize for Bob(). Still crashes at the same place in the video. Strangely enough, fmtconv doesn't appear to be any slower than using BicubicResize. The crash occurs when the ram usage jumps from 1 gb to 1.5 gb in 2-3 secs in one particular spot in the video, then it crashes. I may have to upload the video itself help you solve the problem.
Here's the fmtconv method I tried. Code:
def Bob(self, input, b, c, tff): return self.core.std.Interleave([self.core.fmtc.bitdepth(self.core.fmtc.resample(self.core.std.SelectEvery(self.core.std.SeparateFields(input, tff), cycle=2, offsets=0), w=input.width, h=input.height,kernel='bicubic', a1=b, a2=c, sx=0, sy=0.25, sw=input.width, sh=input.height/2, fulls=0, fulld=0)bits=8,fulls=0,fulld=0), self.core.fmtc.bitdepth(self.core.fmtc.resample(self.core.std.SelectEvery(self.core.std.SeparateFields(input, tff), cycle=2, offsets=1), w=input.width, h=input.height,kernel='bicubic', a1=b, a2=c, sx=0, sy=-0.25, sw=input.width, sh=input.height/2, fulls=0, fulld=0)bits=8,fulls=0,fulld=0)]) Code:
import vapoursynth as vs import sys import havsfunc core = vs.Core() haf = havsfunc.HAvsFunc(core) core.std.LoadPlugin(r'C:\Program Files\VapourSynth\filters\avisource.dll') core.std.LoadPlugin(r'C:\Program Files\VapourSynth\fmtconv.dll') core.std.LoadPlugin(r'C:\Program Files\VapourSynth\d2vsource_beta3_mingw.dll') core.std.LoadPlugin(r'C:\Program Files\VapourSynth\nnedi3.dll') core.std.LoadPlugin(r'C:\Program Files\VapourSynth\filters\eedi3.dll') core.std.LoadPlugin(r'C:\Program Files\VapourSynth\filters\temporalsoften.dll') core.avs.LoadPlugin('C:/Program Files/VapourSynth/avisynthfilters.dll') core.avs.LoadPlugin(r'E:\QTGMC\AddGrainC.dll') core.avs.LoadPlugin(r'E:\QTGMC\dfttest.dll') core.avs.LoadPlugin(r'E:\QTGMC\EEDI2.dll') core.avs.LoadPlugin(r'E:\QTGMC\FFT3DFilter.dll') core.avs.LoadPlugin(r'E:\QTGMC\mvtools2.dll') core.avs.LoadPlugin(r'E:\QTGMC\nnedi.dll') core.avs.LoadPlugin(r'E:\QTGMC\nnedi2.dll') core.avs.LoadPlugin(r'E:\QTGMC\RemoveGrainSSE2.dll') core.avs.LoadPlugin(r'E:\QTGMC\RepairSSE2.dll') core.avs.LoadPlugin(r'E:\QTGMC\TDeint.dll') core.avs.LoadPlugin(r'E:\QTGMC\VerticalCleanerSSE2.dll') core.avs.LoadPlugin(r'E:\QTGMC\mt_masktools-25.dll') vid = core.avisource.AVISource(r'E:\test6.avi') vid = haf.QTGMC(vid,Preset='Medium',SubPel=2, TFF=True) last = vid
__________________
Pirate: Now how would you like to die? Would you like to have your head chopped off or be burned at the stake? Curly: Burned at the stake! Moe: Why? Curly: A hot steak is always better than a cold chop. Last edited by Revgen; 1st December 2012 at 04:13. |
2nd December 2012, 03:17 | #15 | Link |
Registered User
Join Date: Sep 2004
Location: Near LA, California, USA
Posts: 1,545
|
Here's my source. It's a lossless H264 MKV file.
http://depositfiles.com/files/brzkx20yo
__________________
Pirate: Now how would you like to die? Would you like to have your head chopped off or be burned at the stake? Curly: Burned at the stake! Moe: Why? Curly: A hot steak is always better than a cold chop. |
2nd December 2012, 17:09 | #16 | Link |
Registered User
Join Date: Aug 2006
Location: Taiwan
Posts: 392
|
No, I can't reproduce crash in VirtualDub here, no matter by seeking to random frames or using "Run video analysis pass" under File menu. In your script you used AVISource to load avi file, but the file you provided is mkv, hence I used ffms2 to load it. I don't know whether this difference matters. Did you ever try vid.output(file) way to see if it crashes?
BTW, updated r3. Added DeHalo_alpha, YAHR, HQDering and FastLineDarkenMOD. Last edited by HolyWu; 2nd December 2012 at 18:40. |
2nd December 2012, 19:00 | #17 | Link |
Registered User
Join Date: Sep 2004
Location: Near LA, California, USA
Posts: 1,545
|
I used avisource on the huffyuv file. I encoded it to lossless h264 in order to decrease filesize for upload. Both files crash for me.
Looks like it's a problem on my end.
__________________
Pirate: Now how would you like to die? Would you like to have your head chopped off or be burned at the stake? Curly: Burned at the stake! Moe: Why? Curly: A hot steak is always better than a cold chop. |
Thread Tools | Search this Thread |
Display Modes | |
|
|