View Full Version : FrameRateConverter (Official)
Pages :
1
2
[
3]
4
5
6
7
8
9
10
11
Groucho2004
27th November 2017, 12:53
Think Current ver$ of Staxrip support ONLY 64 bit [Win7+). (JFYI)
Yes, I'm aware.
On searching StaxRip Docs (builtin StaxRip search) found no mention of MeGUI [at least for current version, x64].Now you've got me stumped. Why would you search for Megui in the staxrip docs?
StainlessS
27th November 2017, 13:13
Sorry, was just saying that StaxRip dont come bundled with MeGUI. [ I just woke up, gotta get a coffee :) ]
Yanak
27th November 2017, 13:32
If i may :
FrameraterConverter plugin is part of Staxrip plugins package already and have a filter dedicated implemented in the program :
https://s14.postimg.org/ifl24ij5d/51885420171127132346cr.png
The parameters for the plugin are left blank by default "FrameRateConverter()", need to right click on the AVS filters box list and select "Edit Code" of the contextual menu to add you own parameters after adding it like in the picture above, but if you know the parameters you want by default you can add them to the default filter or create some more filters with different settings.
Then you can add any of those created filters in one click to your video projects, if you need some help with this just ask in the Staxrip dedicated thread i'll try explain more in detail how to add the filters with your own parameters there.
iG0R
27th November 2017, 18:09
Groucho2004, StainlessS, Yanak
Thank you! That is what I was looking for!
Also I tried MeGUI 64bit with 64bit plugins without MT and was impressed:
32bit
Preset "Anime" - 4.12-6.56fps
Preset "Slowest", BlendOver=40, SkipOver=140) - 0.98-1.21fps
64bit
Preset "Anime" - 7.38fps-9.98fps
Preset "Slowest", BlendOver=40, SkipOver=140) - 1.85-1.99fps
PS. During installation of 64bit MeGUI with other 64bit plugins and 64bit AviSynth+ I have encountered some issues so i would like to warn those who will face the same problems. It was needed to copy some DLLs into %Windir%\System32 folder which is dedicated for 64bit DLLs and I used for this TotalCommander which is 32bit app so all DLLs ran into %Windir%\SysWOW64 which is dedicated for 32bit DLLs. To copy 64bit DLLs into correct folder (%Windir%\System32) you need to use WindowsExplorer or %Windir%\Sysnative folder in TotalCommander(32bit).
Groucho2004
27th November 2017, 18:31
I used for this TotalCommander which is 32bit app so all DLLs ran into %Windir%\SysWOW64 which is dedicated for 32bit DLLs.You're not the first one falling into this trap. :)
dioxin
11th April 2018, 16:55
Help me please. I'm using the x32 version of FrameRateConverter. In the settings I select the "slowest" preset and get an error: mt_merge:"luma" is unsupported in 422 and 444. If select the "Normal" preset, then everything works.
MysteryX
13th May 2018, 04:58
Version 1.2.1 is ready! (https://github.com/mysteryx93/FrameRateConverter/releases/tag/v1.2.1)
Slight improvement to quality based on comments I got from ShyK.
Two additions to the MSuper parts of the script:
sharp=1
The catrom method is the best in general. The "sharper" Wiener interpolation offers nothing over it except more artifacts. It's not really sharper (catrom never has perceivably "less detail"), and its artifacts can only make everything worse.
rfilter=4
it makes the search slightly better, and the result is less artifacts. The performance impact is negligible.
I did some testing and it is indeed consistently better, both on HD videos and especially on low-quality videos. The parade torture sample clip does see good improvement based on this change.
Help me please. I'm using the x32 version of FrameRateConverter. In the settings I select the "slowest" preset and get an error: mt_merge:"luma" is unsupported in 422 and 444. If select the "Normal" preset, then everything works.
Make sure you have Pinterf's latest version of MaskTools2
hello_hello
14th May 2018, 18:26
Version 1.2.1 is ready! (https://github.com/mysteryx93/FrameRateConverter/releases/tag/v1.2.1)
Thanks!
Lirk
5th August 2018, 16:08
Can InterpolateDoubles() restore 2 or 3 frames besides 1 by default? Is there "blend frames" option instead interpolation to avoid some artifacts? Does ConvertFPS() support only integer values of framerate and it can't be changed to 29,97 fps?
StainlessS
5th August 2018, 16:18
... and it can't be changed to 29,97 fps?
ConvertFPS(clip clip, float new_rate [, int zone, int vbi]) # 29,97
ConvertFPS(clip clip, int numerator [, int denominator, int zone, int vbi]) # 30000, 1001
ConvertFPS(clip clip1, clip clip2 [, int zone, int vbi]) # same framerate as clip2
ConvertFPS(clip clip1, string preset [, int zone, int vbi]) # "ntsc_video"
http://avisynth.nl/index.php/FPS
Lirk
10th August 2018, 11:07
MysteryX, can you add to InterpolateDoubles() availability for detection 1-3 frames successively instead only 1 doubled frame? With highest threshold value script can define few frames as dropped, but in this case script affects non-dropped frames.
byteshare
23rd August 2018, 16:40
Can someone help me figure out my syntax?
I'm using RipBot and getting the error that I have an invalid argument in the FrameRateConverter. My script is:
FrameRateConverter(NewNum="25", NewDen="1")
I also tried:
FrameRateConverter(preset="Faster")
I was told that it didn't know what "Faster" was
Atak_Snajpera
23rd August 2018, 17:08
video=FrameRateConverter(video,NewNum="25", NewDen="1")
Selur
23rd August 2018, 17:21
@byteshare: remove the quotes,..
FrameRateConverter(NewNum=25,NewDen=1)
+ last time I used it, preset only supported: slowest, slower, slow, normal and fast,... even if 'faster' is now supported it is probably all lower-case.
Yup,..
Pset = Preset == "slowest" ? P_SLOWEST : Preset == "slower" ? P_SLOWER : Preset == "slow" ? P_SLOW : Preset == "normal" ? P_NORMAL : Preset == "fast" ? P_FAST : Preset == "faster" ? P_FASTER : Preset == "anime" ? P_ANIME : -1
source: https://github.com/mysteryx93/FrameRateConverter/blob/master/FrameRateConverter.avsi line 92
Cu Selur
byteshare
23rd August 2018, 17:36
Thank you Atak_Snajpera and Selur
video=FrameRateConverter(video, preset="faster")
worked :)
Seedmanc
2nd September 2018, 16:17
FrameRateConverter( preset="slower",blksize=32 ) gives http://puu.sh/BouYf/f4a79c59d1.png even though I'm using masktools from the same author.
poisondeathray
2nd September 2018, 16:25
FrameRateConverter( preset="slower",blksize=32 ) gives <snip> even though I'm using masktools from the same author.
Post your full script
What colorspace does your source filter return ? Check with info() after the source filter.
Seedmanc
2nd September 2018, 16:33
Script is as follows
dss2("D:\kf2.mp4")
converttoyv12
FrameRateConverter( preset="slowest",blksize=16 )
I said "I'm using masktools from the same author" but it was a mistake, I meant pinterf's masktools. Before then I also used the default masktools but it gave the same results.
Taurus
2nd September 2018, 17:22
maybe:
converttoyv12()
:D
manolito
2nd September 2018, 17:47
This will make the color conversion a little faster (at least in classic AVS, no idea about AVS+), but it should not cause a crash.
Seedmanc
2nd September 2018, 17:50
The video is already in YV12, it was only put there to demonstrate that.
poisondeathray
2nd September 2018, 17:53
what avs version? check your plugins again or load them explicitly - maybe you have multiple versions
StainlessS
2nd September 2018, 18:28
Run AvsMeter against your installation, and see what version, and what plugs you got.
Today, G2K4 got a nice shiney new version to play with.
Groucho2004
2nd September 2018, 18:31
Run AvsMeter against your installation, and see what version, and what plugs you got.More precisely - Run "avsmeter avsinfo -log" and post the log file ("avsinfo_x86.log" or "avsinfo_x64.log").
Seedmanc
2nd September 2018, 18:31
Avisynth 2.6, the one with SetMTmode.
Do masktools and mvtools have their own version() function? Such large plugin packs with lots of dependencies should have that so you don't have to check it manually in plugin directory every time to see which one got loaded.
When I just call MMask(last) (mmask is among the offending functions in that line that FRC is complaining about) I get a strange "Access violation /syswow64/ntdll.dll".
Here's log, compressed. Why does everything has to be so difficult here in 2018.
StainlessS
2nd September 2018, 19:47
Seedmanc. dont think you log is likely to overflow Usage Forum post limit of 16KB (Dev forum=20KB).
Awaiting mods to approve. :)
Groucho2004
3rd September 2018, 08:14
Here's log, compressed. Why does everything has to be so difficult here in 2018.The size of the log is not the issue, the time it takes for a moderator to approve your attachment is. You'd be better off posting it on pastebin or similar.
Seedmanc
3rd September 2018, 09:18
I tried it on a different OS with a fresh installation of AVS+, still getting errors. https://pastebin.com/5Kz7Wsft log
Depending on the masktools version the errors are different:
MT a48 : mt_inpand unsupported colorspace, only planar YUV, etc, line 164
MT pinterf : mt_merge clips should have identical bit depths, line 189
Was this even tested?
Groucho2004
3rd September 2018, 10:06
I tried it on a different OS with a fresh installation of AVS+, still getting errors. https://pastebin.com/5Kz7Wsft log
Depending on the masktools version the errors are different:
MT a48 : mt_inpand unsupported colorspace, only planar YUV, etc, line 164
MT pinterf : mt_merge clips should have identical bit depths, line 189
Was this even tested?
Delete "mt_masktools-25.dll" and try again.
Seedmanc
3rd September 2018, 17:51
That helped, thank you very much.
But it looks like this plugin just blends frames together most of the time. Is there a configuration example I can use to remove "safety locks" so it never resorts to blending and instead shows its best attempt at interpolation even if it's not passing some good metrics?
StainlessS
3rd September 2018, 19:03
You wann give those that use this script, some idea what you are trying to do, low framerate up to super duper framerate, perhaps ?
Lirk
5th September 2018, 20:13
0 value doesn't disable BlendOver (and maybe SkipOver) parameters. 0 value just sets threshold to 0, but not disable this parameters.
Seedmanc
4th October 2018, 22:58
If merely doubling to 48-60fps counts as super for this script then my point still stands.
I'd rather see all the artifacts the script produces instead of the ghosting doubleframes, it would at least allow to compare to the artifacting other scripts do, to see which gets closer to the original (assuming I can take 60 fps, halve the framerate and try to reconstruct dropped frames). The way it is now the only measurement I can do is about its speed.
Here are the examples, one from the Sintel clip http://www.framecompare.com/image-compare/screenshotcomparison/0J9MNNNU the other from idolmaster ingame footage http://www.framecompare.com/image-compare/screenshotcomparison/WD7PNNNX for more 2D-ish kind of material. In both cases I had to use the "flow" output of FRC to get at least something similar to motion interpolation instead of pure doubling like ConvertFPS on auto. But even then the simple mvtools with recalculation did better. I tried setting various threshold params of FRC to 0 as the readme says but it didn't help.
zorr
5th October 2018, 23:12
...it would at least allow to compare to the artifacting other scripts do, to see which gets closer to the original (assuming I can take 60 fps, halve the framerate and try to reconstruct dropped frames). The way it is now the only measurement I can do is about its speed.
...
But even then the simple mvtools with recalculation did better. I tried setting various threshold params of FRC to 0 as the readme says but it didn't help.
You could try AvisynthOptimizer (https://forum.doom9.org/showthread.php?t=175723) for this task, it can search optimal settings for you (semi)automatically. If you're interested I can provide you a frame-doubling MVTools script that AvisynthOptimizer can work with. Should be easy to make one for FramerateConverter as well. Warning: running this optimization takes a long time (hours, maybe days if you get really serious about it) and is very addictive. ;)
Seedmanc
6th October 2018, 15:53
zorr, as a matter of fact yes I was going to try your tool for a while already, been watching your topic closely, waiting till it 'stabilizes' more or less about parameters and software involved. Maybe it's about time I give it a try.
I've been extensively testing various framerate conversion plugins recently,trying to figure out the best settings, but for now I've ran out of options (seems the pinterf's 64x64 does the trick better than the rest, though I had my hopes high for SVP). Particularly I'm interested in figuring out the usable truemotion parameters for blocksizes 32 and above, as they seem to be incompatible.
zorr
7th October 2018, 00:29
zorr, as a matter of fact yes I was going to try your tool for a while already, been watching your topic closely, waiting till it 'stabilizes' more or less about parameters and software involved. Maybe it's about time I give it a try.
While the optimizer is still officially beta I don't expect any major changes anymore. Please do try it and if you have any problems I will try to help. Your feedback on any issues you may have will be valuable.
I've been extensively testing various framerate conversion plugins recently,trying to figure out the best settings, but for now I've ran out of options (seems the pinterf's 64x64 does the trick better than the rest, though I had my hopes high for SVP). Particularly I'm interested in figuring out the usable truemotion parameters for blocksizes 32 and above, as they seem to be incompatible.
All right, here's a frame-doubling script using Pinterf's MVTools2.
TEST_FRAMES = 10
MIDDLE_FRAME = 25
# original framerate
FPS_NUM = 18
FPS_DEN = 1
# source clip
AVISource("d:\optimizer\bridge\bridge_cropped.avi")
AssumeFPS(FPS_NUM, FPS_DEN)
#return last
# needed for some parameter combinations
ConvertToYV24()
orig = last
# preprocessing - blur and/or degrain
#searchClip = orig
#searchClip = last.Blur(1.58).Blur(1.58)
searchClip = RemoveGrain(orig, 22) # optimize RemoveGrain(orig, _n_) | -1..24 | rmgrain
super_pel = 4 # optimize super_pel = _n_ | 2,4 | super_pel
super_sharp = 2 # optimize super_sharp = _n_ | 0..2 | super_sharp
super_rfilter = 2 # optimize super_rfilter = _n_ | 0..4 | super_rfilter
super_search = MSuper(pel=super_pel, sharp=super_sharp, rfilter=super_rfilter, searchClip)
super_render = MSuper(pel=super_pel, sharp=super_sharp, rfilter=super_rfilter, orig, levels=1)
blockSize = 32 # optimize blockSize = _n_ | 4,6,8,12,16,24,32,48,64 ; min:divide 0 > 8 2 ? ; filter:overlap overlapv max 2 * x <= | blockSize
searchAlgo = 5 # optimize searchAlgo = _n_ | 0..7 D | searchAlgo
searchRange = 2 # optimize searchRange = _n_ | 1..30 | searchRange
searchRangeFinest = 2 # optimize searchRangeFinest = _n_ | 1..60 | searchRangeFinest
lambda = 1000*(blockSize*blockSize)/(8*8) # optimize lambda = _n_ | 0..20000 | lambda
lsad=1200 # optimize lsad=_n_ | 8..20000 | LSAD
pnew=0 # optimize pnew=_n_ | 0..256 | pnew
plevel=1 # optimize plevel=_n_ | 0..2 | plevel
overlap=0 # optimize overlap=_n_ | 0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32 ; max:blockSize 2 / ; filter:x divide 0 > 4 2 ? % 0 == | overlap
overlapv=0 # optimize overlapv=_n_ | 0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32 ; max:blockSize 2 / | overlapv
divide=0 # optimize divide=_n_ | 0..2 ; max:blockSize 8 >= 2 0 ? overlap 4 % 0 == 2 0 ? min | divide
globalMotion = true # optimize globalMotion = _n_ | false,true | globalMotion
badSAD = 10000 # optimize badSAD = _n_ | 4..10000 | badSAD
badRange = 24 # optimize badRange = _n_ | 4..50 | badRange
meander = true # optimize meander = _n_ | false,true | meander
temporal = false # optimize temporal = _n_ | false,true | temporal
trymany = false # optimize trymany = _n_ | false,true | trymany
dct = 0 # optimize dct = _n_ | 0,2,3,4,5,6,7,8,9,10 | dct
delta = 1
useChroma = true
bv = MAnalyse(super_search, isb = true, blksize=blockSize, search=searchAlgo, searchparam=searchRange, pelsearch=searchRangeFinest,
\ chroma=useChroma, delta=delta, lambda=lambda, lsad=lsad, pnew=pnew, plevel=plevel, global=globalMotion, overlap=overlap, overlapv=overlapv,
\ divide=divide, badSAD=badSAD, badrange=badRange, meander=meander, temporal=temporal, trymany=trymany, dct=dct)
fv = MAnalyse(super_search, isb = false, blksize=blockSize, search=searchAlgo, searchparam=searchRange, pelsearch=searchRangeFinest,
\ chroma=useChroma, delta=delta, lambda=lambda, lsad=lsad, pnew=pnew, plevel=plevel, global=globalMotion, overlap=overlap, overlapv=overlapv,
\ divide=divide, badSAD=badSAD, badrange=badRange, meander=meander, temporal=temporal, trymany=trymany, dct=dct)
threshold = 10000
maskScale = 70 # optimize maskScale = _n_ | 1..300 | maskScale
mask_fps = 3 # optimize mask_fps = _n_ | 0..2 | mask_fps
inter = orig.MFlowFPS(super_render, bv, fv, num=FPS_NUM*2, den=FPS_DEN, mask=mask_fps, ml=maskScale, thSCD1=threshold, thSCD2=100)
# return this to look at the clip with doubled framerate
#return inter
fps_only = inter.SelectOdd()
# second pass
super_search2 = MSuper(pel=super_pel, sharp=super_sharp, rfilter=super_rfilter, fps_only)
super_render2 = MSuper(pel=super_pel, sharp=super_sharp, rfilter=super_rfilter, fps_only, levels=1)
bv2 = MAnalyse(super_search2, isb = true, blksize=blockSize, search=searchAlgo, searchparam=searchRange, pelsearch=searchRangeFinest,
\ chroma=useChroma, delta=delta, lambda=lambda, lsad=lsad, pnew=pnew, plevel=plevel, global=globalMotion, overlap=overlap, overlapv=overlapv,
\ divide=divide, badSAD=badSAD, badrange=badRange, meander=meander, temporal=temporal, trymany=trymany)
fv2 = MAnalyse(super_search2, isb = false, blksize=blockSize, search=searchAlgo, searchparam=searchRange, pelsearch=searchRangeFinest,
\ chroma=useChroma, delta=delta, lambda=lambda, lsad=lsad, pnew=pnew, plevel=plevel, global=globalMotion, overlap=overlap, overlapv=overlapv,
\ divide=divide, badSAD=badSAD, badrange=badRange, meander=meander, temporal=temporal, trymany=trymany)
inter2 = fps_only.MFlowFPS(super_render2, bv2, fv2, num=FPS_NUM*2, den=FPS_DEN, mask=mask_fps, ml=maskScale, thSCD1=threshold, thSCD2=100)
fps_only2 = inter2.SelectOdd()
delimiter = "; "
inter_yv12 = fps_only2.ConvertToYV12()
orig_yv12 = orig.ConvertToYV12()
# for comparison original must be forwarded one frame
orig_yv12 = trim(orig_yv12,1,0)
inter_yv12 = inter_yv12.Trim(MIDDLE_FRAME - TEST_FRAMES/2 + (TEST_FRAMES%2==0?1:0), MIDDLE_FRAME + TEST_FRAMES/2)
orig_yv12 = orig_yv12.Trim(MIDDLE_FRAME - TEST_FRAMES/2 + (TEST_FRAMES%2==0?1:0), MIDDLE_FRAME + TEST_FRAMES/2)
last = inter_yv12
global total = 0.0
global ssim_total = 0.0
global avstimer = 0.0
frame_count = FrameCount()
FrameEvaluate(last, """
global ssim = SSIM_FRAME(orig_yv12, inter_yv12)
global ssim_total = ssim_total + (ssim == 1.0 ? 0.0 : ssim)
""", args="orig_yv12, inter_yv12, delta, frame_count")
# NOTE: AvsTimer call should be before the WriteFile call
AvsTimer(frames=1, type=0, total=false, name="Optimizer")
# per frame logging (ssim, time)
resultFile = "D:\optimizer\perFrameResults.txt" # output out1="ssim: MAX(float)" out2="time: MIN(time) ms" file="D:\optimizer\perFrameResults.txt"
WriteFile(resultFile, "current_frame", "delimiter", "ssim", "delimiter", "avstimer")
WriteFileIf(resultFile, "current_frame == frame_count-1", """ "stop " """, "ssim_total", append=true)
return last
You will need to change the source (obviously) and the folder of the result file. Change MIDDLE_FRAME to find a good spot for the test. TEST_FRAMES sets the number of frames tested, larger than 10 will make the script more robust but will make the optimization process slower. Set the frame rate of your clip using FPS_NUM and FPS_DEN.
If your video has a large resolution it might be a good idea to crop it to a smaller size, leaving just the interesting motion in the center. Make a cropped video and load it directly into this script to make the optimization faster.
My approach at frame rate doubling is this: I double the rate of the original video, remove original frames, then double the rate again and compare against the original frames. That has been working well but I haven't done comparisons to other ways (like dropping every other frame and then doubling the rate). When you write out the optimized scripts take out the comment in front of "return inter" to see the frame-doubled version (ie without the second pass which recreates the original frames).
This script has a lot of parameters and the ranges are mostly not restricted in any way (some parameters like lambda and lsad don't have an upper limit so I just used a very large number there). I did take out dct=1 because with some parameter combinations it takes *extremely* long time to calculate (like 8 minutes when normal time is 1,5 seconds). That's a shame because in my testing dct=1 is usually the best quality-wise.
Instead of using truemotion true/false this script sets the parameters controlled by it (lambda, lsad, pnew, plevel, global) individually.
If you already know for example which blockSize is good then just adjust the search ranges accordingly.
This script doesn't have MRecalculate, I recommed that you first try to find optimal values without it and once you have them add MRecalculate and optimize only its parameters (I can give an example script of that as well). Actually you could stack as many recalculates as you want always using smaller and smaller blocksize... I think it could be a way to make a really robust script, starting with blocksize 64 and halving it with every recalculate. I haven't tried that yet so it's just a theory. :)
Note that not all the parametes of MVTools2 are there, I haven't gotten around to trying everything yet...
The script includes preprocessing the search clip with RemoveGrain, in my tests I have found it can help. Obviously we are searching an optimal value for that function as well.
Oh and one more thing, I came up with a way to limit the ugly artifacts you often get with MFlowFPS when good motion vectors are not found. Basically you reconstruct the frame created with MFlowFPS using MCompensate and the original frames. You just need to find good parameters for that, which you can do with the optimizer. I will give an example of that later. :)
parbruek
26th December 2018, 22:28
Confirming the same issue Sharc saw previously:
https://forum.doom9.org/showthread.php?p=1808322&highlight=access+violation#post1808322
(https://forum.doom9.org/showthread.php?p=1808322&highlight=access+violation#post1808322)
FrameRateConverter runs into Access Violation whenever I set the speed to anything slower than "normal". The error seems to be occuring in line 143:
bak = MAnalyse(superfilt, isb=true, blksize=BlkSize, blksizev=BlkSizeV, overlap = BlkSize>4?(BlkSize/4+1)/2*2:0, overlapv = BlkSizeV>4?(BlkSizeV/4+1)/2*2:0, search=3, dct=Dct)
Just tested with blu-ray and dvd compliant material with the same result, so it probably isn't triggered by resolution or bit depth...
I've tested and found the same issue with current versions of Avisynth 32 bit and Avisynth+. Should I fiddle with BlkSize, or does someone else know of a fix?
parbruek
26th December 2018, 22:49
Just found the issue - My apologies! I had a bad version of FFTW3.dll. And I'm not even sure where it was from. I grabbed the version from here (http://www.avisynth.nl/users/warpenterprises/) and dropped it in syswow64. Everything runs properly now.
attackworld
31st January 2019, 18:46
Sorry for lack of technical terms but...
Tested this with many many different settings, and the best interpolation I can get is just a blend of the two different frames. Only very small movement will the frame look like its a new frame altogether, but with bigger movements you can see a faded version of the two original frames in the "interpolated" frame.
At least with SVP it attempts to create an image that is somewhere between the two original frames.
Dogway
4th March 2019, 20:04
I'm unable to run this at all at a reasonable speed. I'm in AVS+ x64, and using fftw338-x64-AVX2. It falls into sub 1fps. Either with or without mp_pipeline using slower preset. What fftw do you guys use? Is there a special MT mode I have to use for FrameRateConverter.dll?
ChaosKing
4th March 2019, 20:45
Hmm I get 14fps on a 1080p source. Just with FrameRateConverter() alone. CPU is only @ 25%
Have you installed the latest plugins? You can use AVSRepo to download/install framerateconverter https://forum.doom9.org/showthread.php?t=175822
Dogway
4th March 2019, 21:22
I spent a week finding latest and fastest builds of everything manually, since I have some preference.
As I said the only ones I wasn't sure at all were fftw and also dfttest (the latest v1.9.4.3 gives me issues).
As far as I know the bulk of this script is MVTools, masktools, fftw (for slower modes) and Resizers for which I might change the code to use the faster multithreaded version by jpsdr.
Is that speed with slower or slowest preset?
I noticed that in the repo the latest FFTW3 version listed is 3.3.5, any reason to not use any higher?
ChaosKing
4th March 2019, 21:50
I used the default settings... just FrameRateConverter()
I need direct links + 3.3.5 is as fast as the newer builds, maybe max 1 fps slower.
Dogway
4th March 2019, 22:13
Default preset is normal so it uses DCT=0 (no use of fftw library).
Direct links are in the top of your AVSRepo thread, (https://forum.doom9.org/showpost.php?p=1844512&postcount=1), the Wolfberry builds.
AVX2 instruction should be faster, but I haven't seen speed tests on that though.
edit: I updated the fftw library with a build from Wolfberry and now my dfttest works, I'm going to run another test with FRC.
ChaosKing
4th March 2019, 22:37
I made my own speed tests. As far as I see I can not directly link to files in the gdrive share folder.
MysteryX
26th May 2019, 15:48
I don't know anything about 3D material.
I have this nagging feeling that there has to be something better than plain frame blending as a backup on artifact areas and stripes... ? Using original frames on those areas wasn't giving a good results -- maybe a variation of frame blending that is always 80/20% at most, so no 50/50 blended frames?
hum... if that could be done, it would provide a trade-off between mode skip where the artifact zones jump in chunks, and mode blend where artifact zones can be a blurry mess
Dreamject
26th May 2019, 19:28
O.o why are mvtools/FrameRateConverter so difficult and does not have any preset like 'import it to your player and just use'.
It's more easy to make presets that use core file.
https://s17.directupload.net/images/190526/scnxd3hw.png
Sending to ffdshow looks like
[HKEY_CLASSES_ROOT\.avs]
@="avsfile"
"PerceivedType"="text"
[HKEY_CLASSES_ROOT\avsfile]
@="AviSynth+ Script"
[HKEY_CLASSES_ROOT\avsfile\shell]
[HKEY_CLASSES_ROOT\avsfile\shell\Послать в FFDSHOW X64]
[HKEY_CLASSES_ROOT\avsfile\shell\Послать в FFDSHOW X64\command]
@="REG ADD \"HKCU\\Software\\GNU\\ffdshow64_raw\\default\" /v \"avisynthScriptMULTI_SZ\" /t REG_MULTI_SZ /d import(\\\"\"%1\"\\\")\\0 /f"
[HKEY_CLASSES_ROOT\avsfile\shell\Послать в FFDSHOW X86]
[HKEY_CLASSES_ROOT\avsfile\shell\Послать в FFDSHOW X86\command]
@="REG ADD \"HKCU\\Software\\GNU\\ffdshow_raw\\default\" /v \"avisynthScriptMULTI_SZ\" /t REG_MULTI_SZ /d import(\\\"\"%1\"\\\")\\0 /f\""
PS: I found it has presets, but I dont know how to use them
MysteryX
27th May 2019, 04:08
Are you trying to use it for real-time playback? This won't render at real-time speed. For that, have SVP project.
StainlessS
27th May 2019, 12:56
PS: I found it has presets, but I dont know how to use them
Apart from noobs like yourself, I dont think anybody [meaning regular Avs users] still uses ffdshow (or PotPlayerSource [I was not even aware of it till last few weeks], or whatever its called),
perhaps I'm wrong. Maybe best place find out about use of ffdshow, or Potplayer, is in forums specifically supporting those items.
EDIT:
This won't render at real-time speed.
Absolutely.
EDIT: I guess that you could start your own thread specifically for ffdhow/potplayer use with Avs in a particlar player, at least then you might get responses all in one place.
Maybe best forum would be Software Players forum, near bottom of Main D9 forum page.
EDIT: Most I ever do in a player is change aspect ratio or switch on subtitles, pretty much nothing else.
Dreamject
28th May 2019, 14:45
~_~ I'm not very stupid (and not very smart), just AviSynth is closed for understanding. You need use knowledges and logics from ~1990. It could be funny if you scare you grandson 'we had to use eval(""" """) widthout highlight instead of {}, we set filename in scripts by hand and them did not works without it', but using it in present is not funny. I still can not get why avisynth can not do processing in realtime. SVP does it, but svpflow1 based on mvtools2 and as I know svpflow2 (frame rendering plugin) based on another plugin.
>Most I ever do in a player is change aspect ratio or switch on subtitles, pretty much nothing else.
As I know you used interframe
https://forum.doom9.org/showthread.php?t=160226&page=48
But its dead and uses his own and very weird logic which has nothing to do with reality.
https://s17.directupload.net/images/190528/y77q4e57.png
I just translated svp logic from js to avisynth and it works mostly like svp. Only ofter that I gen knowledge that natively avisynth can not render in realtime O.o
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.