View Full Version : MeGUI development
Sub-zero
7th June 2009, 06:01
Afaik there is "priority" thing. Why you need to limit the speed when CPU resources are free? Choose tesa then, it will be slower and even with a little bonus of quality ^_^
yep, i know. and it is really helpful. But the goal is to let the CPU dont get 100% of clock speed busy for long times since some old processors (like my Pentium 2800MHz) cannot endure for long timed encodings ^^"
and i think this feature (speed limiter) has many advantages like increasing utilization .
e.g. : i tried to encode an anime episode (SD) in megui with automated 2-pass several times , each time the computer restarts (cpu heat). I finally gave up and was forced to encode with x264vfw in VirtualDub with setting the speed limiter to half . It took longer time.. but actually did the job. and by this way, the CPU can stay much cooler and not get overheated. right?
i dont want to use VFW anymore T-T
i hope that i made my point clear. Because i'm not native English talker ^^"
nurbs
7th June 2009, 11:39
If your processor, no matter how old it is, overheats while encoding then either your cooler is insuficient or not properly installed. The CPU can run at the speed it was designed for under full load as long as you want if everything is correctly installed and there are no defects.
Kurtnoise
10th June 2009, 17:49
0.3.1.1040
- (kurtnoise) add LinqBridge lib to the megui NSIS script.
- (kurtnoise) [MainForm] activate HDStreamExtractorIndexer.Factory
- (kurtnoise) [Job] add HDStreamExJob to the Job Interface.
- (kurtnoise) [HDStreamExtractor] add megui job support. <---- please, test this :thanks:
- (kurtnoise) [HDStreamExtractorIndexer] better lines parsing.
- (kurtnoise) [HDStreamExJob] change CodecString & EncodingMode
- (kurtnoise) [hfyuSettings] change ID : huffyuv -> Huffyuv
- (kurtnoise) [AudioStream] add "AC3 EX" case.
- (kurtnoise) [JobWorkerWindow] few improvements in the log reporting.
- (kurtnoise) [DGMCreator] add vob files support.
- (kurtnoise) [tsMuxeR] add Chapters file support.
- (kurtnoise) [VideoUtil] add getChapterTimeLine() function.
- (kurtnoise) [OneClick] apply getChaptersFromIFO to the One Click Encoder code.
- (kurtnoise) [VideoUtil] add getChaptersFromIFO() function.
- (kurtnoise) [ChapterInfo] better formating for SaveText() function.
- (kurtnoise) fix a potential NullPointer Exception for several Muxers. Based on patch from ViceIce (#2799156)
- (kurtnoise) [Megui NSIS SCript] Remove old entry in the register key from the previous installer. Patch by XhmikosR (#2801959)
- (kurtnoise) update script & reader to support the last beta DGxxxNV tools package.
- (kurtnoise) [DialogManager] cosmetic changes for RunCUVIDServer()
http://sourceforge.net/project/showfiles.php?group_id=156112&package_id=244469&release_id=688838
Sharktooth
11th June 2009, 13:31
0.3.1.1041
- (kurtnoise) enable DSS2 in Avisynth Script/Settings.
- (kurtnoise) [AviSynthProfileConfigPanel] add DSS2 over DSS checkbox.
- (kurtnoise) [MeGUISettings] add Haali Media Splitter Path detection.
- (kurtnoise) better handling of DGDecodeNV lib.
- (kurtnoise) add eac3 & ddp files extension to the AudioEncoderInterface & MainForm.
Inspector.Gadget
13th June 2009, 22:01
Even after the 1040/1041 changes relating to the DGDecodeNV suite of tools, MeGUI still attempts to call MPGSource() when autoloading a newly created DGM file where it should call DGSource().
Kurtnoise
14th June 2009, 04:59
Even after the 1040/1041 changes relating to the DGDecodeNV suite of tools, MeGUI still attempts to call MPGSource() when autoloading a newly created DGM file where it should call DGSource().
http://www.mediafire.com/?m2whnykvunv
Inspector.Gadget
14th June 2009, 05:26
Ah, thanks :). That solves the autoload problem, but MeGUI informs me that the DGx deinterlacer is incompatible with the DGM input file - I can edit in the last tab to add the option and the preview shows it working, though. Also, opening a DGM file in the AVS Script Creator with the CUVID server already running crashes MeGUI. MeGUI is definitely well on its way to handling files from the NV tools - thank you, developers, for all your hard work in bringing us this great program.
I will plan to give all three index types a more thorough test tomorrow morning with this new build.
Kurtnoise
14th June 2009, 05:35
That solves the autoload problem, but MeGUI informs me that the DGx deinterlacer is incompatible with the DGM input file
http://www.mediafire.com/?mmligzgrznj
Sharktooth
14th June 2009, 14:08
forgot to post the .1042 changelog:
0.3.1.1042
- (kurtnoise) Add an option in MeGUI settings to force video file extension for QuickTime compatibility (http://forum.doom9.org/showthread.php?p=1243370#post1243370). This way, fix issue #2797133
- (kurtnoise) [LanguageSelectionContainer] add zho as alternative Chinese Language.
- (kurtnoise) [HdBdStreamExtractor] add a DirectorySeparatorChar for input when the selected path is not the root disk. Fix issue #2805803
- (kurtnoise) [AudioStream] add DTS-ES & AC3 Surround cases.
Inspector.Gadget
14th June 2009, 14:44
That updated build works perfectly, thank you Kurtnoise!
Kurtnoise
14th June 2009, 19:05
I've received a PM from XhmikosR. I post his message here coz I couldn't commit anything for the next 2 months from now...
I modified the bat files which are used to build MeGUI in order to build also the installer IF NSIS is installed. I also made the output to show in the same cmd window and made the output of msbuild a little more minimal (errors and warnings still show of course).
If you want you can adapt some of my changes.
You can download the bat files here (http://www.mediafire.com/file/ywqqyoinbjg/megui_bat.zip).
I'd prefer also using ECHO OFF since the errors in the bat files still would show up, but that's up to you to decide.
PS. Update your NSIS to the latest version if you haven't done it already since it has many fixes for Win7.
Personally, I don't care because I don't use this to compile megui...
komisar
15th June 2009, 09:07
I have a question about the auto-update in MeGUI.
I work in a system with limited rights.
But I have the right to write to the directory containing the program and AVISynth plug-ins. After Ctrl+U I get this:
http://komisar.gin.by/img/trash/megui_err1.jpg
What is the "...directory Source..."?
For any additional directories are needed right of write?
Sharktooth
15th June 2009, 12:32
the error message is "Can't create directory"
then it continues with "Source of exception: ..."
blame M$ for those criptic .net error messages.
megui, however, needs administrator rights to work.
komisar
15th June 2009, 12:45
2developers, how about add in public static DirectoryInfo ensureDirectoryExists(string p) from core/util/FileUtil.cs something like
IOException("Can't create directory: "+p);
megui, however, needs administrator rights to work.
This is a bad idea... :-/
Sharktooth
15th June 2009, 12:55
i'll add the exception handling in the weekend.
i know admin rights is somewhat annoying expecially with vista and newer M$ OSes but still it will solve a lot of problems accessing files.
komisar
15th June 2009, 13:07
This is not an option to use administrative rights to the work with program (for installing -- maybe, but not for work).
And also... In "%USERPROFILE%\Local Settings\Application Data\www.doom9.net\" megui store user-settings, but after update version current settings not migrate. And in this directory appear new and new (e.g. 0.3.1.1035, 0.3.1.1037, 0.3.1.1039), but settings not migrate...
Kurtnoise
15th June 2009, 15:39
This is not an option to use administrative rights to the work with program (for installing -- maybe, but not for work)...
give me a *good* reason why it's bad ?
you should install it directly in a folder where you have all permits...that's all.
komisar
15th June 2009, 17:03
Kurtnoise, why I need to switch administrative right for update Megui if "you should install it directly in a folder where you have all permits...that's all."???
Kurtnoise
15th June 2009, 17:39
depends where you have installed megui and/or where is located your update_cache folder...
komisar
15th June 2009, 17:47
Kurtnoise, megui (with update_cache) installed in folder where i have full access. plus i have full access to avisynth-plugin folder.
P.S. Why megui need access to "%windir%\Debug\UserMode\ChkAcc.log"? AccessDenided occur...
I suspect that this happens when the program was installed by another user (with another credentials)
Kurtnoise
15th June 2009, 17:55
define "full access" ??? How did you install megui ?? what did you try to do ? anyway, it's off-topic here.
btw, I don't understand your second question.
komisar
15th June 2009, 18:21
Kurtnoise, I wrote a PM...
b66pak
15th June 2009, 18:50
0.3.1.1042
- (kurtnoise) Add an option in MeGUI settings to force video file extension for QuickTime compatibility (http://forum.doom9.org/showthread.php?p=1243370#post1243370). This way, fix issue #2797133
hi, this force to .264 even when xvid (with .avi) is used with autoencode!!!
i can't believe that you reverted to this:
http://forum.doom9.org/showthread.php?p=1243803#post1243803
AFTER you fixed it:
http://forum.doom9.org/showthread.php?p=1245915#post1245915
best regards
_
Kurtnoise
16th June 2009, 07:39
1/ you're off-topic.
2/ this has been fixed.
3/ enjoy yourself coz I'd like definitively to remove this.
b66pak
16th June 2009, 16:37
should i understand that autoencoding to raw (.264) and muxing with audio to .mkv is OK but autoencoding to raw (.264) and muxing with audio to .mp4 is not? why did you add "force QT compatibility" when was not needed?
_
Kurtnoise
16th June 2009, 16:43
no, it's because some users have reported some muxing issues with the previous code (i.e force muxing with .h264 extension for you know what...). Now, to run the same way as you want, you have to check the appropriate case.
Flight16
21st June 2009, 02:26
I would like to have a stab at fixing a few bugs I came across that make megui unusable for me (I've already filed them on the bug tracker).
What is megui's policy/guide about svn access and submitting fixes?
Thanks
Sharktooth
21st June 2009, 15:05
svn read access is public. patches may be posted at the patches tracker (http://sourceforge.net/tracker/?atid=798478&group_id=156112&func=browse)
however, i read your bug reports and i'll commit your fixes soon.
Kurtnoise
22nd June 2009, 18:21
ONCE AGAIN, stop to send me megui questions/features requests via PM...I don't read them anyways (all are deleted before reading).
Sharktooth
23rd June 2009, 03:00
@kurtnoise: that's why my PM box is always full... ;)
mavinashbabu
24th June 2009, 16:35
Hi,
can i request here please if you Dev guys don't mind... is it possible to have a lossless profile for XVid?
there is one for X264 but importing the .mp4/mkv using directshowsource() always had issues with me.
OR if you can guide me how to make one even that will help me. [check/uncheck options in xvid scratchpad]
Thanks,
Avinash
nurbs
24th June 2009, 16:46
XviD and Mpeg4-ASP codecs in general don't support lossless encoding.
Your post sounds like you are trying to do something specific with the encode, so if you describe what it is maybe somebody can give you an advice.
mavinashbabu
24th June 2009, 16:58
Thanks for the reply.
I have got a bunch of DVD9's which i want to encode to DVD5 using HC. For what ever reasons how hard i struggle i cannot keep HC encode use more than 1 processor [ i have quad Q6600 ]
. Hence i tried to do it via x264 lossless and imported it using directshowsource() in a separate .avs file, but result was i got a half black screen on right side of screen and half movie on left side, can't provide a screenshot as i had deleted files.
Now actual point of my post above, i was happily achieving 90% CPU utilization with 4 processors running in a x264 lossless profile.
Resultant .MP4/MKV files absolutely does not have any issues at all.
Hope i am clear.
Thanks.
nurbs
24th June 2009, 17:10
x264 has a very efficient threading method, I guess it's more efficient than the method HCenc uses, so you might see speed loss there. Why don't you just ask in the Mpeg2 subforum for some help with your setup. You could also try running several encodes at the same time.
edit: also this is the development thread, we shouldn't post here
alexins
5th July 2009, 14:03
Sharktooth, tsMuxeR 1.10.6 (Windows) (http://www.smlabs.net/tsMuxer/tsMuxeR_1.10.6.zip); MKVToolnix 2.9.7 (http://www.bunkus.org/videotools/mkvtoolnix/win32/mkvtoolnix-unicode-2.9.7.7z)
Sharktooth
7th July 2009, 13:02
tnx... update in progress.
edit: the trunk version of megui is also ready for the new x264 defaults and options. ill make a new build as soon as some x264 rev1178+ builds with nal-hrd patch are made.
Dark Shikari
7th July 2009, 19:20
tnx... update in progress.
edit: the trunk version of megui is also ready for the new x264 defaults and options. ill make a new build as soon as some x264 rev1178+ builds with nal-hrd patch are made.Won't it require some significant modifications to allow users to use presets and tunings, because all other settings set by MeGUI will override the preset/tuning?
Sharktooth
7th July 2009, 19:39
the actual trunk version doesnt support presets and tunings. just changes in the commandline options and defaults to ensure compatibility with newer x264 versions.
presets and tunings support will come shortly.
Dark Shikari
7th July 2009, 19:49
On that note, will we be able to completely dump all of the speed-related MeGUI presets?
It seems that with these changes, the only thing needed is device-related restrictions and bitrate-related options, since users can select the speed/quality tradeoff rather easily.
Sharktooth
7th July 2009, 20:11
exactly.
Kurtnoise
8th July 2009, 13:41
@Sharktooth :
Index: packages/video/x264/x264Encoder.cs
===================================================================
--- packages/video/x264/x264Encoder.cs (revision 1292)
+++ packages/video/x264/x264Encoder.cs (working copy)
@@ -341,7 +341,6 @@
if (output.EndsWith(".264"))
sb.Append("--aud "); // recommended by the specs
- sb.Append("--progress "); // ensure that the progress is shown
if (xs.NoDCTDecimate)
sb.Append("--no-dct-decimate ");
if (xs.PSNRCalculation)
Sharktooth
9th July 2009, 12:30
yeah, i just forget to remove it.
Sharktooth
9th July 2009, 12:58
0.3.1.1043
- (kurtnoise) [AviSynthWindow] update DGxxxIndexFile version string.
- (kurtnoise) updpate dgmReader & dgvReader to the latest DGSource().
0.3.1.1044
- (kurtnoise) [HDBDStreamExtractor] fix some issues for HD-DVD.
- (kurtnoise) [VideoUtil] forceRawAVCExtension only if videoEncoderType is x264
- (kurtnoise) [HdBdStreamExtractor] improve dummyInput creation.
- (kurtnoise) [HDStreamExtractorIndexer] fix an issue in the command line with M2TS as job input.0.3.1.1045
- (kurtnoise) [ScriptServer] remove duplicate code.
- (kurtnoise) [ScriptServer] fix incorrect static member. (#2807518)0.3.1.1046
- (Sharktooth) [Dialogs] *.m2ts -> *.m2t* to support .m2t extension.
- (Sharktooth) [VideoUtil] Added ".aac" extension to the list of the audio files demuxed by DGIndex since getAllDexumedAudio() is now used for DGAVCIndex as well.
- (Sharktooth) [OneClickWindow] Fixed incorrect charset encoding for non-english file names (patch by Fight16)0.3.1.1047
- (sharktooth) [x264Encoder] Removed --progress switch since it's a new x264 default option.
- (sharktooth) [x264] Reconfigured default settings and commandline generation due to the changes in x264 defaults and CLI options.
- (kurtnoise) [AviSynthWindow] revisit checkNVCompatibleFile() function.
- (kurtnoise) update MediaInfo library and its wrapper to the latest release (0.7.17)
Kurtnoise
9th July 2009, 17:56
The power of the TPL (http://msdn.microsoft.com/en-us/library/dd460693%28VS.100%29.aspx)... :)
use case : rotate all 1080p BBB pictures (http://media.xiph.org/BBB/) at 180°.
Using foreach as a sequential workflow (only 1 core used) :
using System;
using System.Collections.Generic;
using System.IO;
using System.Drawing;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// A simple source for demonstration purposes. Modify this path as necessary.
string[] files = System.IO.Directory.GetFiles(@"F:\big buck bunny", "*.png");
string newDir = @"D:\Test";
Directory.CreateDirectory(newDir);
DateTime start_time = DateTime.Now;
Console.WriteLine("Processing started...");
foreach (string currentFile in files)
{
string filename = Path.GetFileName(currentFile);
Bitmap bitmap = new Bitmap(currentFile);
bitmap.RotateFlip(RotateFlipType.Rotate180FlipNone);
bitmap.Save(Path.Combine(newDir, filename));
}
// Keep the console window open in debug mode.
DateTime stop_time = DateTime.Now;
TimeSpan elapsed_time = stop_time - start_time;
Console.WriteLine("Total Time elapsed : {0:D2}:{1:D2}:{2:D2}.{3:D3}", elapsed_time.Hours, elapsed_time.Minutes, elapsed_time.Seconds, elapsed_time.Milliseconds);
Console.WriteLine("Processing complete. Press any key to exit.");
Console.ReadKey();
}
}
}
>> Total time elapsed : 00:12:20.537
Using Parallel.forEach as a parallel workflow (all cores used) :
using System;
using System.Collections.Generic;
using System.IO;
using System.Threading;
using System.Drawing;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// A simple source for demonstration purposes. Modify this path as necessary.
string[] files = System.IO.Directory.GetFiles(@"F:\big buck bunny", "*.png");
string newDir = @"D:\Test";
Directory.CreateDirectory(newDir);
DateTime start_time = DateTime.Now;
Console.WriteLine("Processing started...");
// Method signature: Parallel.ForEach(IEnumerable<TSource> source, Action<TSource> body)
Parallel.ForEach(files, currentFile =>
{
// The more computational work you do here, the greater
// the speedup compared to a sequential foreach loop.
string filename = Path.GetFileName(currentFile);
Bitmap bitmap = new Bitmap(currentFile);
bitmap.RotateFlip(RotateFlipType.Rotate180FlipNone);
bitmap.Save(Path.Combine(newDir, filename));
// Peek behind the scenes to see how work is parallelized.
// But be aware: Thread contention for the Console slows down parallel loops!!!
// Console.WriteLine("Processing {0} on thread {1}", filename,
// Thread.CurrentThread.ManagedThreadId);
// Console.WriteLine("Processing {0} ", filename);
} //close lambda expression
); //close method invocation
// Keep the console window open in debug mode.
DateTime stop_time = DateTime.Now;
TimeSpan elapsed_time = stop_time - start_time;
Console.WriteLine("Total Time elapsed : {0:D2}:{1:D2}:{2:D2}.{3:D3}", elapsed_time.Hours, elapsed_time.Minutes, elapsed_time.Seconds, elapsed_time.Milliseconds);
Console.WriteLine("Processing complete. Press any key to exit.");
Console.ReadKey();
}
}
}
>> Total time elapsed : 00:08:50.699
Tested on Q9450 @ 2.66GHz
Nice, isn't it ? ;)
Bug #2819292 (http://sourceforge.net/tracker/?func=detail&aid=2819292&group_id=156112&atid=798476)
OneClick's automatically-created chapter files suffer from progressive desynchronization when encoding NTSC DVDs (I haven't tested PAL.) At then end of a one-hour encoded MKV, the chapter marks will be early by three or four seconds.
This is an old problem I've had with ChapterGrabber, which can be solved (in the ChapterGrabber GUI) by a) loading NTSC disc, b) Change current FPS to 30.000, and finally c) Convert Chapter Times by FPS to 29.970.
As a quick and dirty fix to get proper chapter times, I did this:
=== modified file 'megui/trunk/core/util/IFOparser.cs'
--- megui/trunk/core/util/IFOparser.cs 2009-05-26 12:50:32 +0000
+++ megui/trunk/core/util/IFOparser.cs 2009-07-08 09:08:58 +0000
@@ -152,7 +152,7 @@
{
short? frames = GetFrames(playbackBytes[3]);
int fpsMask = playbackBytes[3] >> 6;
- fps = fpsMask == 0x01 ? 25D : fpsMask == 0x03 ? (30D / 1.001D) : 0;
+ fps = fpsMask == 0x01 ? 25D : fpsMask == 0x03 ? 30D : 0;
if (frames == null)
return null;
=== modified file 'megui/trunk/packages/tools/chaptercreator/IfoExtractor.cs'
--- megui/trunk/packages/tools/chaptercreator/IfoExtractor.cs 2009-05-26 13:02:48 +0000
+++ megui/trunk/packages/tools/chaptercreator/IfoExtractor.cs 2009-07-08 09:08:58 +0000
@@ -54,6 +54,8 @@
pgc.Chapters = GetChapters(location, titleSetNum, out duration, out fps);
pgc.Duration = duration;
pgc.FramesPerSecond = fps;
+ if (pgc.FramesPerSecond == 30.0)
+ pgc.ChangeFps(29.970029970029969);
OnChaptersLoaded(pgc);
OnExtractionComplete();
There must be a better way (and one that also addresses other input FPS values), but I don't fully understand the GetStreams() code in class IfoExtractor.
Sharktooth
13th July 2009, 02:17
uhm... i cant accept that patch but if you come up with a better (and global) solution i will be glad to commit it.
@all: some megui presets (all baseline presets) are broken due to the 3 b-frames as new x264 default. i will patch the relevant code in megui soon to fix the problem. also since x264 has a new --profile switch and automatic fast first pass (unless disabled with a switch) some other changes are needed... i will make those changes as well until i finish the new x264 configuration form and changes required to x264 command line generation.
Dark Shikari
13th July 2009, 02:22
uhm... i cant accept that patch but if you come up with a better (and global) solution i will be glad to commit it.
@all: some megui presets (all baseline presets) are broken due to the 3 b-frames as new x264 default. i will patch the relevant code in megui soon to fix the problem. also since x264 has a new --profile switch some other changes are needed... i will make those changes as well until i finish the new x264 configuration form and changes required to x264 command line generation.Why not just roll out an "update" to the old x264 until the changes are made?
It doesn't make sense to leave out in the wild a known-broken system when you can easily fix it.
Sharktooth
13th July 2009, 02:26
coz i will probably fix it tomorrow... ;)
also rolling back to an older version of x264 will require an older version of megui due to the new x264 options already implemented.
EDIT: read the next post...
Sharktooth
13th July 2009, 03:14
b-frames patch commited and new version rolled out... will cost you a beer ;)
fast 1st pass and --profile support is coming tomorrow. however, that is not mandatory since x264 will do a "best guess" detection for profile and will automatically do a fast first pass unless specified... so everything will work even without that support...
0.3.1.1048
- (sharktooth) [x264] Fixed b-frames controls behavior and commandline generation to respect the new x264 b-frames default value. Should also fix the baseline profile encoding.
... so where's my beer? :p
Sharktooth
13th July 2009, 13:36
0.3.1.1049
- (sharktooth) [x264ConfigurationPanel] Additional checks to ensure proper options values are passed to the commandline generator.
- (sharktooth) [x264] Fixed x264 --subme & --ref commandline options generation due to the new x264 defaults.
vBulletin® v3.8.11, Copyright ©2000-2025, vBulletin Solutions Inc.