View Full Version : MeGUI with avisynth 64 bit: avisynth script creator won't work
Bluedan
29th November 2006, 20:19
I decided to not put this in the usual MeGUI bug thread to avoid confusion for 32bit users.
On a second thought I'm not sure if it is a case of false settings anyway.
And third: Using Avisynth in 64bit flavor is a minority problem I guess.
Environment: XP 64bit. MeGUI 0.2.3.2192. 64bit dll/exe: Avisynth 20-07-2006, x264cli_x64_rev602, decomb 16-08-2005, dgdecode 22-06-2006 all transferred to 64bit from squid80.
The setup is done following this. (http://forum.doom9.org/showthread.php?p=874848#post874848)
Well, I was using gordianknot for a long time to create the avs.
I wanted to use the build-in avisynth script creator but was confronted with the following error message when I try to open the d2v: no dgdecode_mpeg2source function known.
It seems that the dgdecode.dll wasn't found. Though when I create the avs with gordianknot (32bit everything) it can be run through megui.
In addition I am not able to set the plugin path to C:\Program Files (x86)\AviSynth 2.5\plugins\64bit in megui settings. I receive an error message saying something about an object. I'm sorry I cannot reproduce the exact words for I am in the middle of an encode. (Will add this later.)
What is wrong here?
check
30th November 2006, 00:56
I'd say it's the alpha version of 64bit software myself :P I'd just recommend you stick with the 32bit avisynth. If the info you posted in the other thread is correct (only using 65% of your CPU anyway), I think you'd be better off with avisynth32 + MT and multithreading x264.
squid_80
30th November 2006, 05:55
I don't understand why it's necessary to run MeGUI as a 64-bit application. Why can't you just point it to the 64-bit version of x264?
Bluedan
2nd December 2006, 22:09
I don't understand why it's necessary to run MeGUI as a 64-bit application. Why can't you just point it to the 64-bit version of x264?
That's exactly what I did. AFAIK there is no 64 bit version of MeGUI around and doesn't have to be: it's not time critical.
I just had to put MeGUI into a state that it is able to call 64 bit sub programmes. (Don't expect too much intelligence here from me, I'm no programmer, I'm afraid.)
I admit, I don't know how much the speed-up with 64 bit there really is (in terms of x264 mainly), but sure there is. :)
squid_80
3rd December 2006, 05:51
By using corflags to clear the 32bit flags you're turning MeGUI into a native 64-bit app, which means it's necessary to use the modified avisynthwrapper.dll and also it must use avisynth64 to display the preview. It's all unnecessary. All you need to do is:
- install avisynth (32-bit)
- install MeGUI (from x264.nl)
- install avisynth64.
- get 64-bit x264.exe and point MeGUI to it. When using the avisynth script creator turn off colour correction (since there is no 64-bit colormatrix) and don't even think about trying the "Analyse" button. If you choose a deinterlace option make sure there is a 64-bit function for it (e.g. part of decomb).
This way MeGUI will function as a 32-bit app using the regular 32-bit avisynth and plugins for the script creator, the only time 64-bit code is used is when x264.exe is called.
I just tried this and it worked flawlessly.
Bluedan
5th December 2006, 21:34
I cannot get it to work this way over here following your directives.
The AVS generator works fine. The avs plays fine in a direct show player.
But when I start the job execution megui says this:
Avisynth open failure:
Script error: there is no function named "DGDecode_mpeg2source"
x264 [error]: could not open input file 'F:\AEONFLUX_PAL_GERMANY\test.avs'
(F:\AEONFLUX_PAL_GERMANY\test.avs, line 1)
I guess this is when avisynth 64 bit should kick in? I still wonder why the 64 bit version is supposed to be involved when starting encoding. I don't get how both dll could co-exist.
Somebody please enlight me. :o
squid_80
6th December 2006, 04:09
You should be able to see a directory called \windows\syswow64. When a 32-bit program is running this directory appears to be \windows\system32, and the real \windows\system32 is invisible. Hence 64-bit dlls live in \windows\system32 and 32-bit dlls live in \windows\syswow64. This is how both versions co-exist.
A similar thing happens with the registry, entries for 32-bit programs are stored in different sections. I think this is where the problem is - 64-bit avisynth doesn't have a plugin directory set so dgdecode isn't being autoloaded. Copy this text into a .reg file (avisynth64plugin.reg or something), double-click on it and it will set your plugin directory to C:\Program Files (x86)\AviSynth 2.5\plugins\64bit which I took from your first post.
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\AviSynth]
@="C:\\Program Files\\AviSynth 2.5"
"plugindir2_5"="C:\\Program Files (x86)\\AviSynth 2.5\\plugins\\64bit"
Bluedan
6th December 2006, 23:46
Success!
That was causing the trouble. Now, it's much easier to handle. And I can skip GK for the script creation.
Thanks again, squid_80, for your patience and will to help.
It is really appreciated! :)
@check
CPU usage this way still varies between 60 and 70% on both cores together, ~50 fps first pass. What do you get there?
vBulletin® v3.8.5, Copyright ©2000-2012, Jelsoft Enterprises Ltd.