I'm trying to hardcode some subs into a video with MeGui.
My script is:
If I load this into MeGui, when it does the preview, it shows a frame from the middle, with the correct subs, it can scroll through the film, but I can't close the preview normally to start the encode. After a few minutes I can close it, but the main program window closes too.Code:FFmpegSource2("AdeleBlanc.mkv",atrack=-1,fpsnum=-1,fpsden=1) AddBorders(0,30,0,146) AmplifydB(7.27) TextSub("AdeleBlanc.ass")
If I comment out the Textsub, MeGui works normally after closing the preview.
Happens for both ass and srt subs.
The AVS plays normally in WMP, VirtualDub, everything else.
Looking at Process Explorer, MeGui is using 50% of CPU -- i.e 100% of one of the 2 processors -- continuously till I kill it.
Specifically, a thread calling VSfilter.dll, which is what Textsub uses.
I've never had this kind of problem with subs with anything else except MeGui.
I encoded to MPEG with HCEnc with much more complex scripts without any such overhead.
== Workaround: Found the MeGui option to show preview and turned it off. Now I can go directly to the encode and it's proceeding now, at 47fps. So the problem seems limited to the preview.
==Work around 1 failed: reached the end of the encode and hung. On aborting, MeGui helpfully deleted the encode.
Turned that option off and tried again. Did the audio encode first, it hung when it got to the end of that too.
+ Reply to Thread
Results 1 to 11 of 11
-
Last edited by AlanHK; 20th Jul 2013 at 14:13.
-
I tried to duplicate your problem with no success. I used basically the same script. MeGUI's preview behaved normally and the video encoded successfully (I just used a 5 minute video I had handy).
LoadPlugin("C:\Program Files\MeGUI\tools\ffms\ffms2.dll")
FFmpegSource2("E:\vid.mkv",atrack=-1,fpsnum=-1,fpsden=1)
LoadPlugin("C:\Program Files\MeGUI\tools\avisynth_plugin\VSFilter.dll")
AddBorders(0,30,0,146)
AmplifydB(7.27)
TextSub("D:\sub.srt")
I guess that's totally not helpful, but I tried. Are you using the versions of ffms2 and vsfilter which are bundled with MeGUI? Or for that matter, which version of AVIsynth? There's so many variables.
Maybe try adding " threads=1" to the FFmpegSource2 line to see if ffms2 is somehow causing a problem. -
I already have all the filters and dlls in my main Avisynth plugins folder
So I deleted MeGui's versions. The video still played, the preview still played correctly, but still went to 50% CPU on VSFilter.dll and could not close down normally.
I tried another video,
Code:AviSource("Flash.avi") Textsub("Flash.srt")
So it's not ffms2.
I have Avisynth 2.58, build Dec 22 2008. -
Another follow up:
While the preview displays with the MeGui Avisynth tools deleted, the encode aborts with "missing components".
So the encoder uses its own version of Avisynth, not the system one.
Since the problem seems to be VSfilter, and that's the same version (2002), I don't know why that should matter. -
Since the problem seems to be VSfilter, and that's the same version (2002), I don't know why that should matter.
-
Last edited by AlanHK; 22nd Jul 2013 at 03:13.
-
I guess that's why I couldn't duplicate the problem. I was letting MeGUI load the version of vsfilter which comes bundled with MeGUI (as per the script in my previous post), whereas you had an older version in the AVISynth plugins folder autoloading. If you don't specifically load the plugins in MeGUI's plugins folder (or let MeGUI load them when it creates a script), it can't use them. I guess if you let MeGUI load it's version of a plugin while there's another version autoloading in the AVISynth plugins folder it could cause conflicts. If I change a plugin in either the MeGUI or AVISynth plugins folder I always check to make sure if I've got two copies they're the same version.
In reply to your doom9 post:
As best as I can tell, MeGUI uses the "system" version of AVISynth if it's installed, and only uses it's own portable AVISynth if the "system" version isn't installed. I've got lots of plugins sitting in the "system" AVISynth plugins folder and they always autoload without a problem, so MeGUI must be using the "system" AVISynth.
As a test I created a simple script and then renamed MeGUI's avs subfolder, but MeGUI still happily loaded the script and ran the encode. That worked fine as long as MeGUI was running, but if I renamed the folder before opening MeGUI, it'd complain about not being able to find required components and wouldn't run an encode. I suspect though, there's no reason why MeGUI couldn't work if it can't find the portable AVISynth when it's first opened (as long as the system version is installed), however for some reason the MeGUI author(s) decided to impose an "artificial" limitation and not allow it to do so. Maybe there's a logical reason for doing so (if I'm correct).
Anyway, entry 2184 in the changelog says:
"portable AviSynth will be used if AviSynth is not installed"
Which logically means if AVISynth is installed the portable version won't be used.Last edited by hello_hello; 22nd Jul 2013 at 04:55.
-
PS I just realised there's 2 copies of avisynth.dll in MeGUI's installation folder. One in the main folder and a copy in the tools/avs subfolder. I'm not sure why..... but I renamed both and MeGUI still happily opened a script. It doesn't seem to care about the one in the main folder, just the one in the avs subfolder.
Anyone know what avisynthwrapper.dll does? MeGUI gets upset when it can't find it so I'm curious. I couldn't find anything definite via Google. -
Anyone know what avisynthwrapper.dll does?
Normally this should only be used by developers (= programmers) and not normal users.
(current source: http://sourceforge.net/p/megui/code/2374/tree/AvisynthWrapper/trunk/) -
That's what made me think the problem was with their version of VSfilter.
In fact, the MeGui version isn't being used at all, but it won't start the encode if it doesn't find it.
I can understand why developers would do that.
They want to have a guaranteed environment and not worry about what the user may have installed elsewhere.
However, from the users' point of view, it gets very ******* annoying having, for instance, every Java program installing 100 MB or more of "Java runtime environment" when I have a system install already. Then they each nag me to update them, separately.
Or God knows how many versions of ffmpeg I have.
It makes tracing errors a pain when you find the name of the program, but have multiple copies in multiple versions that could be the culprit. -
I renamed MeGUI's version of vsfilter (while MeGUI was running) and was still able to run an encode. I had to put a copy of vsfilter in the normal AVISynth plugins folder and remove the line from the script which loads the copy in MeGUI's plugins folder, but when I did, the copy in the AVISynth folder autoloaded and added the subtitles.
I still find it odd that MeGUI won't work if it can't find the portable AVISynth when it's opened. As long as MeGUI can verify the normal version is installed, and given it'll use that version if it is, the portable version isn't needed. Granted MeGUI will probably get upset if it can't find it's own plugins folder..... given it manually loads those plugins via the scripts it creates.... but not running without the portable version of AVISynth seems like an unnecessary restriction. I guess normally it wouldn't matter though, given the portable version comes bundled with MeGUI anyway.
Similar Threads
-
TextSub horror!
By YiuKorochko in forum SubtitleReplies: 2Last Post: 1st Aug 2011, 16:38 -
textsub incompatible with avisynth 2.5?
By icieling in forum DVD RippingReplies: 1Last Post: 1st Aug 2011, 15:56 -
VDub + TextSub + multipass problem
By Keeyu in forum SubtitleReplies: 3Last Post: 14th Jan 2011, 09:11 -
Font problem with TextSub 2.23
By Keeyu in forum EditingReplies: 0Last Post: 8th Jan 2011, 20:42 -
TextSub in Avisynth.
By Sarlula in forum SubtitleReplies: 3Last Post: 18th Dec 2009, 18:24