Guide from previous posts updated to keep up with this thread. Also has some alterations including new scripts etc.
Noobs guide for those new to this. I recommend you download all plugins linked on this page. Even if you have used previous ones with other scripts, the ones on this page are guaranteed to be up to date.
Here goes. This guide is for playback only. I'm sure other gurus here can alter this guide for VirtualDub and MeGUI etc, but not me. I recommend that you start with a clean palate. Uninstall all your codecs and players etc. and follow this guide.
A great site is afterdawn.com it has all the latest and greatest that we need for this to work.
For those who wish to dish a few bucks and have a nVidia card. Go out and buy CoreAVC and enable cuda in the settings. This will basically allow your GPU to do the x264/h.264/AVC decoding. Install it with the Haali options for the file types you wish to play.
Step 1:
a) Download K-Lite Mega Codec pack version 5.0.0 not the later versions and install ONLY Media Player Classic Regular, not Home Cinema. This player gives me the least headaches when trying to get everything to work. Also, if you didn't choose the CoreAVC option, install all the Haali options (splitter/renderer etc); CoreAVC users already had this option during setup. The next step is to enable MPC as the default player for all videos, this should be done already but can be customised in the setup (this also gives some nice file type icons). Enable the internal subtitle renderer, all other options are optional for your liking but the subtitle renderer is required as the ffdshow subtitle renderer sometimes messes up everything whilst doing Avisynth operations. Also Make MPC the default player for all video types, reason being that the codec pack has some nice bonuses with file type icons that look pretty sweet.
b) Once installed, open up MPC and enter the options window from the tools drop down. Click on the Output tab on the left of the options window and select your renderer as the Haali Renderer, then click the internal filters tab and uncheck everything in both columns. Apply and exit the player, don't attempt to play anything yet unless you've installed CoreAVC.
Step 1b (CoreAVC users):
To setup CoreAVC, open the decoder properties from the star menu, set deblocking to skip always, deinterlacing to None and check Prefer Cuda, Prefered decoder and use tray, apply and close.
Play a h.264 encoded video. Hopefully your tray should have a green CoreAVC icon indicating cuda is in use. Start Task Manager and check, your CPU usage, it should be hovering at a very low usage indicating your GPU is doing all the work.
Step 2:
Download and install Avisynth.
Step 3:
Download and install the newest ffdshow, during the installation, uncheck VFW and check all the Avisynth options. Install ffdshow with your required codecs. Launch ffdshow after the installation and do the audio settings for your speaker configuration. Disable the DXVA codec (its useless really as all other filters are then disabled including Avisynth. Make sure you enable all your needed codecs in the codecs tab.
Step 3b:
CoreAVC users must select the h.264 option in the ffdshow video tab as disabled and then enable RAW video to all supported. Then start MPC, options and click on external filters and add ffdshow video decoder as 'preferred'. This allows CoreAVC to do the decoding with the GPU, then passing the video to ffdshow for filtering using the CPU.
Step 4:
Everyone should be able to play a video now. And onto customising we go. The ffdshow tabs on the left hand side also dictate the order the filters are applied to the video. The higher up you drag them, the sooner they are applied to the video. For example if you have picture properties on top of resize, ffdshow will adjust the video picture before resizing the video. If using interlaced video, arrange Deinterlacing furthest up, use Yadif without doubling framerate, next comes picture properties for altering colour etc. Other filters you wish to use. Then Avisynth. The only exception is that resize must go under Avisynth (unless your downscaling to a smaller resolution), we don't want to waste CPU power by processing a large upscaled video when we can process a smaller video and then upscale it afterwards. In the Output tab check high quality conversion, in the rgb conversion tab, check the same and uncheck Dithering. Now we should have ffdshow configured apart from the Avisynth tab.
Step 5:
To set up Avisynth, download:
a) Working stable MT for mutithreading here:
http://www.mediafire.com/file/nnbngf...isynth258MT.7z
Put the avisynth.dll in your C:/Windows/system32 folder or SysWOW64 (if using 64 bit) if you aren't prompted to replace the original your putting it in the worng place, put the other dlls in your plugins folder located in your Avisynth directory in Program Files (or Program Files (x86) for 64 bit users) replacing the originals.
b) System dlls to stop ffdshow crashing here:
http://www.megaupload.com/?d=SP5FE2KG
Place them in the same folder you placed the avisynth.dll. For some reason, without these, Avisynth+ffdshow=crash.
c) Framedoubling plugin here:
http://avisynth.org.ru/mvtools/mvtools2.html
The link is at the bottom of the page. put it in your Avisynth plugins directory.
Step 6:
Everything is in place, hopefully. Open up ffdshow and check the Avisynth tab. Uncheck add ffdshow video source, check YV12 only. Buffer back ahead varies with different people, it shouldn't really affect video playback from avi or mkv files but does affect playback from discs; I have it on 0/20. The following script is based on Domas' (big thanks to him) script with a few of my adjustments mainly for speed optimisations as I haven't a very meaty computer.
Now add this script to the box:
Code:
Code:
SetMTMode(1,0)
ffdShow_source()
SetMTMode(2)
super=MSuper(pel=1, hpad=0, vpad=0, rfilter=4)
backward_1=MAnalyse(super, chroma=false, isb=true, blksize=16, searchparam=3, plevel=0, search=3, badrange=(-24))
forward_1=MAnalyse(super, chroma=false, isb=false, blksize=16, searchparam=3, plevel=0, search=3, badrange=(-24))
backward_2 = MRecalculate(super, chroma=false, backward_1, blksize=8, searchparam=1, search=3)
forward_2 = MRecalculate(super, chroma=false, forward_1, blksize=8, searchparam=1, search=3)
backward_3 = MRecalculate(super, chroma=false, backward_2, blksize=8, searchparam=0, search=3)
forward_3 = MRecalculate(super, chroma=false, forward_2, blksize=8, searchparam=0, search=3)
MBlockFps(super, backward_3, forward_3, num=60, den=1, mode=0)
SetMTMode(1)
GetMTMode(false) > 0 ? distributor() : last
This script is optimised for reasonably powered computers with a decent Core 2 Duo processor playing 720p. If you have a Core 2 Quad, i5 or lower level i7, try this script:
Code:
Code:
SetMTMode(1,0)
ffdShow_source()
SetMTMode(2)
super=MSuper(pel=2, hpad=0, vpad=0, rfilter=4)
backward_1=MAnalyse(super, chroma=false, isb=true, blksize=16, searchparam=3, plevel=0, search=3, badrange=(-24))
forward_1=MAnalyse(super, chroma=false, isb=false, blksize=16, searchparam=3, plevel=0, search=3, badrange=(-24))
backward_2 = MRecalculate(super, chroma=false, backward_1, blksize=8, searchparam=1, search=3)
forward_2 = MRecalculate(super, chroma=false, forward_1, blksize=8, searchparam=1, search=3)
backward_3 = MRecalculate(super, chroma=false, backward_2, blksize=4, searchparam=0, search=3)
forward_3 = MRecalculate(super, chroma=false, forward_2, blksize=4, searchparam=0, search=3)
MBlockFps(super, backward_3, forward_3, num=60, den=1, mode=0)
SetMTMode(1)
GetMTMode(false) > 0 ? distributor() : last
If you believe you have the ultimate processor, try this script:
Code:
Code:
SetMTMode(1,0)
ffdShow_source()
SetMTMode(2)
super=MSuper(pel=2, hpad=0, vpad=0, rfilter=4)
backward_1=MAnalyse(super, chroma=false, isb=true, blksize=8, searchparam=3, plevel=0, search=3, badrange=(-24))
forward_1=MAnalyse(super, chroma=false, isb=false, blksize=8, searchparam=3, plevel=0, search=3, badrange=(-24))
backward_2 = MRecalculate(super, chroma=false, backward_1, blksize=4, searchparam=1, search=3)
forward_2 = MRecalculate(super, chroma=false, forward_1, blksize=4, searchparam=1, search=3)
backward_3 = MRecalculate(super, chroma=false, backward_2, blksize=4, searchparam=0, search=3)
forward_3 = MRecalculate(super, chroma=false, forward_2, blksize=4, searchparam=0, search=3)
MBlockFps(super, backward_3, forward_3, num=60, den=1, mode=0)
SetMTMode(1)
GetMTMode(false) > 0 ? distributor() : last
The pel=x number dictates the accuracy of the estimation values being 1, 2 and 4. If you have less than 60% cpu usage but are still unable to move up to the next script, increase the pel value. Vice versa for freeing up some cpu without changing scripts. Overall, cpu usage should not go over 80~85% otherwise frames will get dropped.
The num=xx value is the outputed framerate. For most people, 60 is the best, some people have different monitors so always set it to a multiple of your monitors refresh rate.
Finally:
The script produces an infamous "soap opera" effect because it looks like the stuff seen on tv played at 50i. Some people, like me get used to it after a while, some people don't. If you are after smooth motion but still with that filmic look, replace the third last line in the script with these lines:
Code:
Code:
Framerate = 24 ? \\
MBlockFps(super, backward_3, forward_3, num=72, den=1) : \\
Framerate 24 ? \\
MBlockFps(super, backward_3, forward_3, num=75, den=1) : \\
Framerate 23 ? \\
MBlockFps(super, backward_3, forward_3, num=72000, den=1001) \\
: \\
MFlowFps(super, backward_3, forward_3, num=60000, den=1001) \\
As I only have a 60Hz monitor, I could not test these with other refresh rates.
Credit goes to Bahn Yuki the starter of this thread, Domas4 the original creator of the scripts and collaboration with SubJunk to find the best parameters. Of course we cannot forget the developers of MT and mvtools2 who helped make this possible.
Enjoy, and if this has helped you, I could do with a little donation to help towards my operation in a few months. Just pm me.