View Full Version : MeGUI - x264/XviD/lavc/Snow encoder with MP4/MKV/AVI output & audio
Pages :
1
2
3
[
4]
5
6
7
8
9
10
11
12
QuadraQ
1st November 2005, 04:36
OK I've been trying to do some digging and this is what I've found:
I updated DGIndex to version 1.4.5 (according to the developer's website this is the latest release version). I did a search for DGDecode.dll on my system, and made sure they were all the latest version (including the one in the MeGUI folder).
I'm using a single VOB file as my test. So I launched DGIndex and opened the vob file. I choose to demux all audio tracks, and the "Forced Film" option. I then saved the project as ManualTest.d2v.
I then launched MeGUI and brought up the d2v creator and selected the same VOB file as before. I selected the AC3 audio channel to demux and saved it as MeGUITest.d2v.
Now I opened the ManualTest.d2v file in MeGUI's AviSynth Script Creator and check the "Suggest Resolution" checkbox and click the "Auto Crop" button and then save the script as ManualTest.avs.
Next I followed the same exact procedure except this time I opened the file MeGUI created MeGUITest.d2v, and save the script as MeGUITest.avs.
OK here's the fun part. If I open the ManualTest.avs and then bring up the Bitrate Calculator, the fps show as 23.976 (correct). If I shutdown MeGUI and bring it back up and this time open the MeGUITest.avs and again go to the Bitrate Calculator, the fps show as 25 (incorrect). In addition if I queue the job I get the dead status window problem I'm trying to track down (works fine with the ManualTest.avs).
I did a line by line compare of the two d2v files using ExamDiff 1.6 and the only difference is this line:
ManualTest.d2v
"Field_Operation=1"
MeGUITest.d2v
"Field_Operation=1 (0:None 1:ForcedFILM 2:RawFrames)"
The avs scripts are identical except for the d2v files they point to.
When I remove the " (0:None 1:ForcedFILM 2:RawFrames)" from the MeGUITest.d2v file so that it's identical to the ManualTest.d2v file then everything works (the bitrate calculator shows 23.976 and the encoding job proceeds normally).
Could someone run this test to confirm my results. Thanks.
berrinam
1st November 2005, 05:43
@QuadraQ: :goodpost: This seems to be a result of MeGUI's auto force film (it's in the settings), probably in combination with varying versions of DGIndex. I can reproduce this problem by reducing the Auto Force Film threshold to 0% in MeGUI's settings.
QuadraQ
1st November 2005, 06:17
@QuadraQ: :goodpost: This seems to be a result of MeGUI's auto force film (it's in the settings), probably in combination with varying versions of DGIndex. I can reproduce this problem by reducing the Auto Force Film threshold to 0% in MeGUI's settings.
OK that makes sense! What version of DGIndex are you using?
berrinam
1st November 2005, 06:31
v1.4.0, but it causes the same problems that you described (ie, it shows up as 0.0fps)
What I meant by version considerations is that I do seem to recall some d2v files which had (0:None 1:ForcedFILM 2:RawFrames) in them, and I doubt that Doom9 would accidentally have made MeGUI to insert that line unless it was previously accepted by DGIndex, and so I presume that it was simply a line which is now obsolete.
Doom9
1st November 2005, 08:14
I added that because when I wrote the autoforcefilm code that suffix was in the file (I always wondered why something that looks like comment was in the file, but on the other hand it's nice not to have to search for it).
hpn
1st November 2005, 15:24
Required tools:
.NET Framework 1.1 (http://www.microsoft.com/downloads/details.aspx?FamilyID=262d25e3-f589-4842-8157-034d1e7cf3a3&displaylang=en) Version 2.0 is currently not supported!
For a few days I've been testing the final 10/27/2005 (not beta) .NET Framework Version 2.0 (http://www.microsoft.com/downloads/details.aspx?familyid=0856EACB-4362-4B0D-8EDD-AAB15C5E04F5&displaylang=en) and seems it works fine with MeGUI. I don't want to jump to any conclusion and say it's safe to use, just if other people want to try it and see if they encounter problems.
Sharktooth
1st November 2005, 15:28
i have it installed and it does work (at least with megui-x264).
dimzon
1st November 2005, 15:50
i have it installed and it does work (at least with megui-x264).
.NET Framework support side-by-side execution (so v1.1 may be used)
Doom9
1st November 2005, 16:25
I have downloaded VS2k5, Express, MSDN docu, runtime and SDK but I cannot install it right now.. I might whip up a VM to test it and if it all works out upgrade.. the thing is though I sometimes develop on the way from and to work and upgrading at work means I have to get a lot of colleagues to upgrade because they use software I've written (and am still working on).
stax76
1st November 2005, 17:45
Try to always install the runtime a application was build against. I'm hoping most developers will make the switch to 2.0 soon. Retail version of VisualStudio 2005 as well as SharpDevelop 2.0 is not out yet but hopefully soon.
QuadraQ
1st November 2005, 19:09
I added that because when I wrote the autoforcefilm code that suffix was in the file (I always wondered why something that looks like comment was in the file, but on the other hand it's nice not to have to search for it).
Well I went to the DVD2AVI / DGIndex forum to ask neuron2 about this and this was his reply:
The extra stuff on the strings was removed as of version 1.3.1 beta 8.
So I'm hoping that you'll be able to update MeGUI soon to reflect that. Thanks! :cool:
Doom9
1st November 2005, 19:48
So I'm hoping that you'll be able to update MeGUI soon to reflect that.already done.
@Sharktooth: I've been unable to reproduce your problem in the 0.2.2.9 build.
Doom9
2nd November 2005, 08:21
Regarding AVC Levels I need your input: VBV isn't so much of a problem, but levels impose limits on frame size and bitrate. Now if we're queueing video jobs manually and have the AviSynth script loaded prior to configuration, I can display the appropriate warning right in the configuration. But once you start using profiles the problems start: say you select your profile prior to selecting the input. When do I notify that the level is incompatible with the frame size, and what about the bitrate?
It gets worse in auto mode as there the bitrate may only be known after audio encoding, so I would have to interrupt the queue to ask you if you want to relax the level for a certain bitrate, or reduce the bitrate (thus not achieving your desired size anymore).
One click mode is worst as there prior to encoding I know neither the framesize of the AviSynth script, nor what bitrate I'm getting.
Either way, as soon as we go automated, levels either have to be ignored or I have to interrupt the queue and you can forget about setting up a couple of movies and encode them through the night or while you're at work if you've made one small mistake with regards to levels.
subcool
2nd November 2005, 15:26
i'v come across a really annoying bug in MeGui... "sticking to jobs"
when a job is supposed to be finished, MeGui will _not_ start the next job scheduled...
This is version 0.2.2.8 im using
http://arienai.com/Capture.jpg <-- screenshot
also, when i output a x264 encode in .MP4, i cant playback the MP4 (even when muxed with sound)
So i encode to raw first and then mux audio + video -> MP4 wich works fine.
forgot to mention this, but when i Abort the stuck job and manually start the next job, the resulting file is playable (when muxed) without errors
Doom9
2nd November 2005, 17:29
also, when i output a x264 encode in .MP4, i cant playback the MP4 That is definitely in the wrong thread here.. it's an x264 issue not a megui issue. Using the exact same commandline you will get the exact same file regardless of who runs x264.exe. And I see no logs, commandlines and such.. and how do you know it's a bug if nobody else has a problem?
Sharktooth
2nd November 2005, 17:42
use the "nicefps()" filter in your .avs file: http://mirror05.x264.nl/eMotionEstimation/nicefps.zip
bond
2nd November 2005, 18:10
mp4 files created during an aborted encode will not work. thats the normal behaviour
bob0r
2nd November 2005, 18:24
"new: you can now manually enter a negative audio delay (delay in filenames was always properly recognized)"
:thanks: **** KISS **** :thanks:
hackboyz
2nd November 2005, 19:07
Hi
what means this error:
Log for job job2-4
IsoMedia import - track ID 1 - Video (size 640 x 272)
Error importing D:\Leon\VTS_01_1 T01 3_2ch 448Kbps DELAY 0ms.mp4: Invalid IsoMedia File
----------------------------------------------------------------------------------------------------------
The current job contains errors. Skipping chained jobs
----------------------------------------------------------------------------------------------------------
Log for job job2-4
IsoMedia import - track ID 1 - Video (size 640 x 272)
Error importing D:\Leon\VTS_01_1 T01 3_2ch 448Kbps DELAY 0ms.mp4: Invalid IsoMedia File
an exception ocurred when trying to read from stdout: Key cannot be null.
Parameter name: key
-------------------------------------------------------------------
subcool
3rd November 2005, 01:26
mp4 files created during an aborted encode will not work. thats the normal behaviour
I know that, but if you look at the screenshot. All the frames have been processed ;)
@Doom9:
just because nobody else has the same problem, doesnt mean it can't be a bug :P
i'v had this 'sticking' of jobs in multiple encode over multiple version of MeGui en its kinda annoying when you wanna do long encodes at night.
and if you wanna read logs, here is the log of the job that got stuck:
----------------------------------------------------------------------------------------------------------
Next job job1-1 is a video job. encoder commandline:
"C:\x264\x264.exe" --pass 1 --bitrate 718 --stats "D:\encoding\raws\kaleidoscope\Kaleidoscope.stats" --keyint 240 --bframes 2 --subme 1 --weightb --analyse none --qpmax 27 --ratetol 90 --qcomp 0.9 --me dia --sar 1:1 --progress --no-psnr --output NUL "D:\encoding\raws\kaleidoscope\Kaleidoscope.avs"
successfully set up video encoder and callbacks for job job1-1
----------------------------------------------------------------------------------------------------------
Log for job job1-1
avis [info]: 640x480 @ 23.98 fps (34884 frames)
x264 [info]: no need for a SAR
x264 [info]: using cpu capabilities MMX MMXEXT SSE 3DNow!
x264 [info]: slice I:250 Avg QP:22.16 size: 22593
x264 [info]: slice P:16274 Avg QP:24.32 size: 5707
x264 [info]: slice B:18360 Avg QP:25.93 size: 1001
x264 [info]: mb I I16..4: 43.0% 0.0% 57.0%
x264 [info]: mb P I16..4: 11.5% 0.0% 0.0% P16..4: 36.4% 0.0% 0.0% 0.0% 0.0% skip:52.1%
x264 [info]: mb B I16..4: 0.6% 0.0% 0.0% B16..8: 11.7% 0.0% 0.0% direct: 4.9% skip:82.8%
x264 [info]: kb/s:642.8
Actual bitrate after encoding without container overhead: -174933.45
----------------------------------------------------------------------------------------------------------
The current job was aborted. Stopping queue mode
The current job contains errors. Skipping chained jobs
Richard Berg
3rd November 2005, 06:19
Version 2.0 final may work as well. Please report your findings.
Different versions of the .Net framework install side-by-side. MeGUI will always be run inside the 1.1 framework unless you recompile it with VS2005.
Richard Berg
3rd November 2005, 06:33
Bugs in 0.2.2.9a:
* Tools -> Settings -> OneClick Defaults gives an unhandled exception. Stack trace:
System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values.
Parameter name: '2' is not a valid value for 'index'.
at System.Windows.Forms.ComboBox.set_SelectedIndex(Int32 value)
at MeGUI.OneClickDefaultWindow..ctor(Hashtable videoProfiles, Hashtable audioProfiles, Int32 videoIndex, Int32 audioIndex)
at MeGUI.SettingsForm.configOneClick_Click(Object sender, EventArgs e)
at System.Windows.Forms.Control.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ButtonBase.WndProc(Message& m)
at System.Windows.Forms.Button.WndProc(Message& m)
at System.Windows.Forms.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
* Adding/deleting profiles does not refresh the main window. New profiles don't show up; selecting deleted profiles gives an unhandled exception:
System.NullReferenceException: Object reference not set to an instance of an object.
at MeGUI.MeGUI.audioProfile_SelectedIndexChanged(Object sender, EventArgs e)
at System.Windows.Forms.ComboBox.OnSelectedIndexChanged(EventArgs e)
at System.Windows.Forms.ComboBox.WmReflectCommand(Message& m)
at System.Windows.Forms.ComboBox.WndProc(Message& m)
at System.Windows.Forms.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
Doom9
3rd November 2005, 09:26
* Tools -> Settings -> OneClick Defaults gives an unhandled exception. Stack trace:And the scenario would be? I see index two meaning you have profiles.. I can't just reproduce it with the amount of information you've given me. I suspect what happened is that you deleted a profile but due to issue number 2 you mentioned, it wasn't removed from the combobox in the main gui, was still selected, then you went to the settings- one click settings, and it tried to set the video profile combobox to the non existing profile.
However, I cannot reproduce your deletion problem either so can you please give me a scenario, starting with a blank megui.exe (no settings, profiles and jobs), how to create profiles and how I can reproduce your second problem?
Different versions of the .Net framework install side-by-side.Does that really work? I'm wondering if I could create 1.1 compatible binaries with VS2.5.. if so I'll probably upgrade shortly (just burned the DVD image yesterday).
@subcool: does using mencoder work? besweet? mp4box? mkmerge? mencoder for avi merging?
@hackboyz: it probably means something is wrong with your mp4 file
stax76
3rd November 2005, 09:55
Of course does side by side execution work, you can install different .NET versions. Assemblies can be installed to the GAC that have same filename but are different in version. Your application will run with the runtime and assembly versions it was compiled against. DLL hell is a thing of the past.
I don't think VS 2005 can compile against .NET 1.1 so you would have to fire up csc.exe by hand. You might have a hard time not to use .NET 2.0 features ;)
Doom9
3rd November 2005, 10:28
hmm... they finally did something right then. This is a major bonus over Java. I know the runtime picks the proper DLL versions but I wasn't aware it also applied to the whole runtime libraries. Thinking about it, it does make sense though. Since you have 2.0 installed and know how to handle a compiler, have you tried compiling MeGUI with the 2.0 csc? It would be neat if I could develop with VS2k5 and then for the release just compile with the 1.1 csc.. but as you said, I've been using the new Java 1.5 features extensively and have missed typed arraylists and hashtables in C# ever since.
stax76
3rd November 2005, 12:42
irc compiling your app didn't even issue a compiler warning. When I started StaxRip in april using DVX as base I enabled "treat all warnings as errors". I got more than hundred compile time errors and warnings as the compiler was much improved. Not to mention I had cross thread gui code *everywhere* which worked fine with 1.1 but it is not permitted with 2.0 (you'll get a nice runtime exception). I knew it shouldn't be done back then but I didn't care since it appeared to work very well. Since I felt like redoing anything (having some lessons learnt...) I wasn't much concerned that my code was completely broke using the new runtime. Anonymous methods can be handy for cross gui code btw, not a VB feature as it don't mix well with basic VB concepts but maybe they'll come anyway.
subcool
3rd November 2005, 14:35
@subcool: does using mencoder work? besweet? mp4box? mkmerge? mencoder for avi merging?
Besweet works, MP4box and mencoder work too. I do not use mkvmerg and avi merging. I only output to RAW and mux that to MP4.
Strange thing is that sometimes is does do the chained jobs (1-1 and 1-2) but then gets stuck on job 1-2.
Doom9
3rd November 2005, 19:44
over multiple version of MeGui en its kinda annoying when you wanna do long encodes at night.with which version did it start?
Is x264.exe still running before you manually abort?
Also, could you run the exact same commandline that gets stuck (does it always? if you restart the job does the same thing happen) in a commandline and paste everything you see here?
Richard Berg
3rd November 2005, 23:13
Your application will run with the runtime and assembly versions it was compiled against.
Yup. I have about 15 versions of the framework on my dev machine...
It would be neat if I could develop with VS2k5 and then for the release just compile with the 1.1 csc..
I don't know if there's a 2.0 compiler switch to warn you before using 2.0-only features, so you'd have to be careful. The 2.0 framework is actually a smaller download than 1.1 was, so if you switch to VS2k5 you may as well have people grab 2.0 instead.
I will see about reproducing that OneClick Settings problem when I get home. I've never been to that dialog before (analog capture = no OneClick for me). I have Sharktooth's x264 profile collection installed.
Sharktooth
4th November 2005, 00:12
@Doom9: x264 has got a new option: trellis quantization.
usage:
-t, --trellis <integer> Trellis RD quantization. Requires CABAC. [0]
- 0: disabled
- 1: enabled only on the final encode of a MB
- 2: enabled on all mode decisions
Doom9
4th November 2005, 08:57
I've just released a build with trellis support.
I'm already working on levels but I have received zero feedback to my questions. Since levels limit framesizes, using levels can be disastrous (if you want to enforce a level, you may need to make compromises on frame size, and likewise, if you don't want to compromise on framesize, you must bump up the level or use unrestricted) so I really need a good way to handle this. I suppose the first release will just take care of the VBV values (the necessary mv option is not exposed in cli anyway) and mb decisions, not frame sizes.
berrinam
4th November 2005, 09:08
I'm already working on levels but I have received zero feedback to my questions.I can't see myself using levels much, but in any automated process, what would seem most logical to me is to give the level precedence over all other settings, ie compromise frame size and/or bitrate to meet the required level.
max-holz
4th November 2005, 09:12
Don't care of my post!!!
Chainmax
4th November 2005, 13:26
I think there's a bug in MeGUI that's been going on since 0.2.2.9a. When configuring the first pass in a 2-pass encode, after selecting a custom matrix the "Video Output" option gets greyed out, and so does the dropdown box with the Mode selection. Any idea why this happens? The only workaround I found is: configure the 1st pass as normal, queue it, close MeGUI, open it again, configure the second pass, queue it and start the encoding.
Doom9
4th November 2005, 13:54
The only workaround I found is: configure the 1st pass as normal, queue it, close MeGUI, open it again, configure the second pass, queue it and start the encoding.The description isn't entirely accurate.. it has nothing to do with the matrix.. it also happens if you just set the profile to high profile, close and reopen the configuration dialog. Should be easy to fix. Here's the workaround: select main profile, then select high profile again and the encoding mode field will no longer be locked. Also, why do you not use automated 2 or 3 pass mode?
netchris
4th November 2005, 14:22
If that aint much trouble, i would like to see a start frame-end frame option in the avisynth script creator (or maybe itll be more noob friendly to make it starting/ending time).
Megui rocks! Thanx alot for your effort Doom9.
:thanks:
Doom9
4th November 2005, 16:55
hmm... I'm assuming you're using a DGIndex project.. and in that case to make audio synch you need to limit the range of your DGIndex project.. if you do it in AviSynth, since there's no audio, limiting the range of frames actually does harm and no good. Or how exactly do you plan to get the audio in synch if you're limiting the encoding range in AviSynth?
ChronoCross
4th November 2005, 17:31
@Doom9
The only way he can do it is in DGIndex...unless he's changing the audio to wav(which is a little umm well dumb) then he could just use audio dub and then trim. but yeah it makes no sense if he's planning on using it with other types of advanced audio.
Perhaps you could add the function for people who are encoding video only. They might be using it to overlay a song or something to a personal movie clip which can always be done later because sync really doesn't matter in that case.
Sharktooth
4th November 2005, 18:27
New x264 option: --b-rdo (requires --subme 6+)
Extends RDO to B-Frames (similar to b-vhq in xvid).
Doom9
4th November 2005, 19:59
@Sharktooth: will do as soon as I'm done with the levels. I can already force the non source dependant things and I've added a nice little check that you can run against your source and that can automatically increase the level to match your source if the current level isn't enough. I plan on using something similar for the one click mode to reduce the resolution until it matches the required level.
Sharktooth
4th November 2005, 20:35
cool :eek:
Chainmax
5th November 2005, 01:10
Also, why do you not use automated 2 or 3 pass mode?
I will try that, is it any different from manually setting the two passes?
netchris
5th November 2005, 01:52
Im encoding mpeg files (dvb source- video clips in exact), so i have to use DGIndex to create d2v files. I only play with video (testing different x264 options for my own sake). This can be done with creating new d2v files (each time containing the frames i want to process) but its easier having a starting full video-clip-d2v and just choose the portions of the clip i want to play with each time.
This can be done by manually editing the avs file (adding trim() ) but it would be easier to have such an option ready at the gui.
(Im sure i could have said all that with less words so sorry for the big message)
Im aware of the problems related to audio (when using the full audio clip while part of the vid), but doesnt the Nero aac encoder or the Faac codec have an option to choose the starting time and end time of the audio clip you want encoded (encode part of the audio clip)? If the timestamps are the same as the ones in the video, wouldnt they be synched?
Doom9
5th November 2005, 01:52
I will try that, is it any different from manually setting the two passes?less work... and if you insist you can still load the jobs from the queue and reconfigure them.
Doom9
5th November 2005, 02:11
A new build is out.
A few words about the level feature: levels enforce VBV and certain macroblock values. But AVC levels mostly concern source properties, which may not be known at configuration time. Hence, I have added a new tool called AVC profile validation. After loading a video source, you can use it to verify if your source can be encoded at the selected level. If not, you're informed which level is needed for your source and you'll have an option to automatically change the level accordingly. In one click mode, if your video profile has a level set, the resolution will be adapted until the movie can be encoded fullfilling your desired level. In extreme circumstances (say you're selecting a very low level), this could lead to the output no longer being as large as desired because the resolution has to be reduced considerably, so chose your levels wisely. In addition, please refer to aku's posts about levels and how they apply to x264.
DeadRinga
5th November 2005, 03:29
I am having trouble with the D2V creator. When i put in the vob and select an audio track pressing Queue doesnt do anything. If i check both the checkboxes at the bottom the window just closes. I've got the newest version of dgindex and i made sure it was in the MeGUI folder. I'm using 0.2.3.1
DeadRinga
5th November 2005, 06:32
Nevermind. It adds it as a separate job. Just found it.
bond
5th November 2005, 14:38
doom9, is it ok that with high levels p4x4 isnt useable anymore, but with low levels it is?
Doom9
5th November 2005, 14:49
did you check out the link in the changelog? It explains it.. it's needed for compliance.
charleski
5th November 2005, 14:50
For a few days I've been testing the final 10/27/2005 (not beta) .NET Framework Version 2.0 (http://www.microsoft.com/downloads/details.aspx?familyid=0856EACB-4362-4B0D-8EDD-AAB15C5E04F5&displaylang=en) and seems it works fine with MeGUI. I don't want to jump to any conclusion and say it's safe to use, just if other people want to try it and see if they encounter problems.
I've had .NET v2.0.50215 installed for a couple of weeks now and MeGUI works fine with it.
bond
5th November 2005, 15:00
did you check out the link in the changelog? It explains it.. it's needed for compliance.ah ic, so its not really an explicit requirement but the only way to ensure compliance atm in x264
subcool
5th November 2005, 15:03
with which version did it start?
Is x264.exe still running before you manually abort?
Also, could you run the exact same commandline that gets stuck (does it always? if you restart the job does the same thing happen) in a commandline and paste everything you see here?
it started with 0.2.2.8.
I haven't looked at if x264.exe is stuck too, i'll look at that next time it happends. I'll give the commandline a shot too soon.
But another thing i noticed is that it doesnt happen on short encodes (like if the encoding takes less than 5 mins) just on longer ones where (for me) the first pass takes 1 hr and the 2nd bout 1.5 ~ 2 hrs
Doom9
5th November 2005, 15:20
it started with 0.2.2.8.Are you sure it's megui or is it perhaps the x264 revision you're using? I've been looking at the source code archive and the video encoder hasn't been changed since october 4th or release 0.2.2.6.. and I'm pretty sure that's the only place your problem could stem from (well.. actually I think it's your setup but on my end the videoencoder makes the most sense looking at your log and what is missing from it). It is quite important to know if x264.exe is still running or not.. it narrows down the section where something could've gone wrong (basically your reported bitrate makes me thing that's where something goes wrong.. hence me asking to run x264 from the commandline).
subcool
5th November 2005, 19:25
I have updated x264 but the problem stayed the same. And when a job remains stuck, x264.exe is still running too. the 1-2 job got stuck too >_<
Doom9
5th November 2005, 19:27
now run the job from the commandline please... I have a suspicion but the lack of reports plus my own experience seem to contradict it.
also, it would be useful to run a job that gets stuck (long one) and one that doesn't on the commandline and post the entire output here for both cases so that I can see the difference.
Richard Berg
6th November 2005, 04:13
@Doom9 - FYI, the latest build fixes both of the exceptions I saw before.
charleski
6th November 2005, 15:12
Umm, unless I'm very much mistaken (which is always possible! :) ), it looks like there's a bug in the way MeGUI constructs the commandline for BeSweet using Nero AAC. I was trying to work out why my delay compensation wasn't happening when I noticed that the commandline was:
"...\BeSweet\BeSweet.exe" -core( -input "stuff.mpa" -output "stuff.mp4" -logfile stuff.besweet.log ) -bsn( -2ch -vbr_normal -codecquality_high -aacprofile_lc -ota( -d -80 -g max )
Surely there needs to be a closing parenthesis after -aacprofile_lc? It would help if the name of the logfile is enclosed in quotation marks as well, DGIndex produces demuxed tracks with spaces in the filename. This only affects use of the NAAC encoder, the other options seem fine.
[Edit]This is using version 0.2.3.1 of meGUI, whcih is otherwise excellent.
Here's the relevant portion of the log (had to copy it from the tab, for some reason nothing is saved in my logs directory):
----------------------------------------------------------------------------------------------------------
Next job job1 is an audio job. besweet commandline:
"C:\Program Files\GordianKnot\BeSweet\BeSweet.exe" -core( -input "C:\New Folder\stuff T01 DELAY 0ms.mpa" -output "C:\New Folder\stuff T01 DELAY 80ms.mp4" -logfile C:\New Folder\stuff T01 DELAY 80ms.besweet.log ) -bsn( -2ch -vbr_normal -codecquality_high -aacprofile_lc -ota( -d 80 -g max )
successfully set up audio encoder and callbacks for job job1
----------------------------------------------------------------------------------------------------------
Log for job job1
besweet: "C:\Program Files\GordianKnot\BeSweet\BeSweet.exe" -core( -input "C:\New Folder\stuff T01 DELAY 0ms.mpa" -output "C:\New Folder\stuff T01 DELAY 80ms.mp4" -logfile C:\New Folder\stuff T01 DELAY 80ms.besweet.log ) -bsn( -2ch -vbr_normal -codecquality_high -aacprofile_lc -ota( -d 80 -g max )
BeSweet v1.5b31 by DSPguru.
--------------------------
[00:00:00:000] Initializing...
[00:00:00:000] -- Initializing...
Doom9
6th November 2005, 15:41
@charleski: it's all fixed in the "b" release.
max-holz
6th November 2005, 16:18
@charleski: it's all fixed in the "b" release.
I see that's pending.
charleski
6th November 2005, 22:49
Thanks for the speedy fix. Sync issues are a major pain for me as I'm encoding from DVB-T streams that almost always start with an open GOP. I was tearing my hair out until I noticed the commandline.
subcool
7th November 2005, 10:45
now run the job from the commandline please... I have a suspicion but the lack of reports plus my own experience seem to contradict it.
also, it would be useful to run a job that gets stuck (long one) and one that doesn't on the commandline and post the entire output here for both cases so that I can see the difference.
here is one run in CLI that gets stuck in MeGui
I copy/pasted the 1st pass CLI that MeGUI uses, so i didnt expect any problems... but as you see, there were.
there only was a 1.4 MB kaleidscope.stats.temp file in the x264 directory while normally the stats files would be around 3 MB
C:\x264>x264.exe --pass 1 --bitrate 690 --stats ".stats" --keyint 240 --bframes
2 --subme 1 --weightb --analyse none --qpmax 27 --ratetol 90 --qcomp 0.9 --me di
a --sar 1:1 --progress --no-psnr --output NUL "D:\encoding\raws\kaleidoscope\Kal
eidoscope.avs"
avis [info]: 640x480 @ 23.98 fps (34407 frames)
x264 [info]: no need for a SAR
x264 [info]: using cpu capabilities MMX MMXEXT SSE 3DNow!
encoded frames: 16172/34407 (47.0%), 13.45 fps, eta 0:22:35
C:\x264>x264.exe --pass 2 --bitrate 690 --stats ".stats" --keyint 240 --ref 4 --
mixed-refs --bframes 2 --subme 7 --weightb --analyse all --8x8dct --qpmax 27 --
ratetol 90 --qcomp 0.9 --me umh --sar 1:1 --progress --no-psnr --output "D:\encoding\raws\kaleidoscope\Kaleidoscope.mp4" "D:\encoding\raws\kaleidoscope\Kaleidos
cope.avs"
avis [info]: 640x480 @ 23.98 fps (34407 frames)
x264 [info]: no need for a SAR
x264 [error]: ratecontrol_init: can't open stats file
x264_encoder_open failed
bond
7th November 2005, 13:03
the "--stats ".stats"" looks strange, try writing a real filename in there
btw x264's statsfiles have the extension .log normally
subcool
7th November 2005, 14:16
i actually restarted the encode before going to school and replaced '.stats.' with 'kaleidoscope.stats' and it continued with the 2nd pass (i wrote the jobs in a batch file)
Output for 1st pass was:
C:\x264>x264.exe --pass 1 --bitrate 690 --stats "kaleidoscope.stats" --keyint 24
0 --bframes 2 --subme 1 --weightb --analyse none --qpmax 27 --ratetol 90 --qcomp
0.9 --me dia --sar 1:1 --progress --no-psnr --output NUL "D:\encoding\raws\kale
idoscope\Kaleidoscope.avs"
avis [info]: 640x480 @ 23.98 fps (34407 frames)
x264 [info]: no need for a SAR
x264 [info]: using cpu capabilities MMX MMXEXT SSE 3DNow!
x264 [info]: slice I:255 Avg QP:22.46 size: 21314 0:00:00
x264 [info]: slice P:15888 Avg QP:24.64 size: 5559
x264 [info]: slice B:18264 Avg QP:26.18 size: 997
x264 [info]: mb I I16..4: 44.2% 0.0% 55.8%
x264 [info]: mb P I16..4: 11.4% 0.0% 0.0% P16..4: 35.6% 0.0% 0.0% 0.0% 0
.0% skip:53.0%
x264 [info]: mb B I16..4: 0.6% 0.0% 0.0% B16..8: 11.6% 0.0% 0.0% direct:
4.9% skip:82.8%
x264 [info]: kb/s:624.2
Sharktooth
7th November 2005, 14:39
just a note: --subme 7 was broken on certain builds and made x264.exe crash or lock.
please use the new rev365 build OR use --subme 6.
subcool
7th November 2005, 17:06
Output from 2nd pass (using build from 6-11-2005 from x264.nl)
the x264.exe is not even closing now... o.O
it doesnt appear to be doing anything either
C:\x264>x264.exe --pass 2 --bitrate 690 --stats "kaleidoscope.stats" --keyint 24
0 --ref 4 --mixed-refs --bframes 2 --subme 7 --weightb --analyse all --8x8dct -
-qpmax 27 --ratetol 90 --qcomp 0.9 --me umh --sar 1:1 --progress --no-psnr --out
put "D:\encoding\raws\kaleidoscope\Kaleidoscope.mp4" "D:\encoding\raws\kaleidosc
ope\Kaleidoscope.avs"
avis [info]: 640x480 @ 23.98 fps (34407 frames)
x264 [info]: no need for a SAR
x264 [info]: using cpu capabilities MMX MMXEXT SSE 3DNow!
mp4 [info]: initial delay 262144 (scale 6285217)
x264 [info]: slice I:255 Avg QP:19.89 size: 253130:00:00
x264 [info]: slice P:15888 Avg QP:22.00 size: 6063
x264 [info]: slice B:18264 Avg QP:24.14 size: 1158
x264 [info]: mb I I16..4: 31.6% 29.7% 38.7%
x264 [info]: mb P I16..4: 6.3% 3.1% 3.9% P16..4: 26.9% 8.5% 4.7% 0.4% 0
.2% skip:46.1%
x264 [info]: mb B I16..4: 0.4% 0.3% 0.2% B16..8: 14.0% 0.9% 1.7% direct:
2.1% skip:80.4%
x264 [info]: 8x8 transform intra:24.3% inter:28.0%
x264 [info]: ref P 79.0% 9.8% 7.2% 4.0%
x264 [info]: ref B 82.1% 8.7% 5.8% 3.4%
x264 [info]: kb/s:690.9
encoded 34407 frames, 1.74 fps, 690.93 kb/s
bond
7th November 2005, 17:18
subcool, try to search for "nicefps" in this forum. there was (is?) a problem with strange framerates fixeable with nicefps and other methods (like changefps())
Sharktooth
7th November 2005, 17:21
.... ensure your commandline contains options not supported by SVN builds... --subme 7 for example........
zajc
7th November 2005, 20:27
Bug?!
MeGUI version 0.2.3.1
Test case:
settings
uncheck the "Open progress window"
When I try to encode HUFFYUV .avi file into XVID the megui.exe process takes most of the CPU instead mencoder (mencoder.exe 40% CPU, megui.exe 60% CPU). Encoding is horribly slow.
When I check the Open progress window then mencoder.exe use 99% CPU, megui.exe 1% CPU.
It might be a bug!?
Doom9
7th November 2005, 20:40
I'm encoding right now without progress window. mencoder takes 50%, megui 0% (it's a dual core so only using 50% is normal.. XviD doesn't contain any SMP optimizations).
zajc
7th November 2005, 21:22
Hmmm, now it works fine too when I restarted megui.
I put 7 jobs in queue to encode huffyuv -> xvid
1 1st pass 20 fps (.avi length 45 min)
1 2nd pass 10 fps
2 1st pass 25 fps (.avi length 130 min)
2 2nd pass 10 fps
3 1st pass 14 fps (.avi length 45 min)
3 2nd pass 6 fps
4 1st pass 7 fps (.avi length 21 min)
4 2nd pass 4 fps
5 1st pass 4 fps (.avi length 3 min)
5 2nd pass 2 fps
6 1st pass 3 fps (.avi length 5 min)
6 2nd pass 3 fps
Then I found out megui.exe procces takes more then 60% of CPU time and I abort the 7th job. After restarting megui.
7 1st pass 23 fps (.avi length 22 min)
7 2nd pass 11 fps
I have never experienced such behavour with previous version of megui althought I put 20 jobs or more in queue.
zajc
7th November 2005, 21:36
I forgot that the megui created a log. I check the log which was 9.5 MB big and contain endless messages, message in bold was repeated for 1.000.000 times (I think this was the main reason why megui.exe take more then 60% CPU):
Next job job3-1 is a video job. encoder commandline:
"C:\util\megui.tools\mplayer\mencoder.exe" "C:\xvidanje\sk.2005.11.06_XVID.avs" -ovc xvid -o NUL: -passlogfile "C:\xvidanje\sk.2005.11.06_XVID.stats" -xvidencopts pass=1:bitrate=1426:max_key_interval=300:packed:vhq=1:qpel:chroma_me:trellis:min_iquant=1:min_pquant=1:min_bquant=1:keyframe_boost=100:kfthreshold=1:kfreduction=20
successfully set up video encoder and callbacks for job job3-1
Exception when trying to update status while a job is running. Text: Cannot call Invoke or InvokeAsync on a control until the window handle has been created. stacktrace: at System.Windows.Forms.Control.MarshaledInvoke(Control caller, Delegate method, Object[] args, Boolean synchronous)
at System.Windows.Forms.Control.Invoke(Delegate method, Object[] args)
at MeGUI.MeGUI.UpdateGUIStatus(StatusUpdate su)Exception when trying to update status while a job is running. Text: Cannot call Invoke or InvokeAsync on a control until the window handle has been created. stacktrace: at System.Windows.Forms.Control.MarshaledInvoke(Control caller, Delegate method, Object[] args, Boolean synchronous)
at System.Windows.Forms.Control.Invoke(Delegate method, Object[] args)
at MeGUI.MeGUI.UpdateGUIStatus(StatusUpdate su)Exception when trying to update status while a job is running. Text: Cannot call Invoke or InvokeAsync on a control until the window handle has been created. stacktrace: at System.Windows.Forms.Control.MarshaledInvoke(Control caller, Delegate method, Object[] args, Boolean synchronous)
Doom9
7th November 2005, 23:03
I double checked.. ran 5 jobs after another, (same file all the time) and it actually got faster.. not slower. And looking at the source code that message doesn't make sense either, the only thing that "show progress window" does it add a window.Show when starting a code.. the window is always there regardless of whether that option is checked or not.. you couldn't even get an exception (your logs indicate one) if the window weren't created.
Doom9
7th November 2005, 23:07
weird, I'm seeing those exceptions as well but they have no performance impact on my system. I guess mine's better than yours ;) I'll have to rework the whole show/don't show part then.
Tima
8th November 2005, 00:23
I queue a job which uses mencoder, exit MeGUI, move mencoder.exe to another location, start MeGUI, set the new location in Settings, save, run my job and MeGUI says 'mencoder.exe not found'..
Maybe it's better to revise format of jobs' storage? How's about to store only commandline switches, and substitute the proper path to encoder at the actual start of the job?
Doom9
8th November 2005, 09:21
Maybe it's better to revise format of jobs' storage? How's about to store only commandline switches, and substitute the proper path to encoder at the actual start of the job?I'm afraid it's not that simple.. it used to be like that but because people wanted to be able to edit complete commandlines, the commandlines are not touched by the program anymore once written (except for the scenarios where the commandline needs to be regenerated due to a bitrate change).
Here's a workaround for you though: select the job, press load, press update and the commandline should be regenerated with the new path. I know where you're coming from, but the scenario is too exotic to be worth much programming time.
Doom9
8th November 2005, 11:18
btw, if there's anybody wondering why the "c" release isn't out yet, I pulled it at the last minute in order to fix the exceptions you get when you deactivate the progress window via settings.
Tima
8th November 2005, 15:59
Here's a workaround for you though: select the job, press load, press update and the commandline should be regenerated with the new path.
Thanks for the hint. It solves the problem quite good.. :)
Liisachan
9th November 2005, 02:14
A very small problem about this switch of x264:
--filter <alpha:beta> Loop filter AlphaC0 and Beta parameters [0:0]
megui uses a comma instead of a colon, for example
--filter -1,-2
instead of
--filter -1:-2
Although, x264.exe seems to be ok with this comma.
Richard Berg
9th November 2005, 05:40
Simple bug in MeGUI.videoOutputOpenButton_Click() -- it doesn't handle filenames with "." in them correctly. For example, if I enter "video-1.5mbps" as the filename, MeGUI will automatically call changeVideoOutputExtention which changes it to "video-1.mp4". You should check for a valid video extension first; if not present, the file type needs to be appended instead of replaced.
Doom9
9th November 2005, 06:38
if I enter "video-1.5mbps" as the filenameAnd how can you do that in the first place? The input open fields should all be non-editable, thus forcing you to use a fileopendialog which only returns valid files.
Richard Berg
9th November 2005, 06:50
Video Output uses a filesavedialog, so you can type whatever you want.
Sharktooth
9th November 2005, 11:59
My impression on Trellis still enabled with CABAC disabled was right.
Uncheck CABAC and trellis get disabled... save the profile and close the config window.
Select another profile then re-select the "just saved profile" and click on the config button. "magically" trellis is enabled even if CABAC is still disabled and it's still in the command line!
ALSO
Selecting baseline profile disables the b-frames options but only in the guy. The command line still shows "... --bframes 3 --b-pyramid --b-rdo --weightb...".
Switching back to another profile only the b-frames textbox is enabled. when you change the number of b-frames then all b-frames options become available.
The same happens with --8x8dct when switching from high-profile to lower profiles.
if "turbo" is previously selected and a mode where turbo is grayed out is set, "-me dia" and all the turbo speed ups are always set in the commandline even if other modes are specified...
this is the same for all options when they get grayed out, for example if --weightb was previously selected, it remains in the commandline even if b-frames are decreased to 0.
Possible fix: when disabling the control you should also reset, uncheck/set it to "false", set it to "0"... depending on the control...
ALSO
RDO for B-frames remains enabled even if B-Frames are set to 0 or gets disabled by other options
EDIT: only in MeGUI-x264... (coz it was not updated).
...
ALSO
when selecting automatic 3 passes the 1st pass command line gets displayed... and when enabling turbo, you cant compare your command line settings with the ones in the GUI.
i missed other bugs for sure...
Doom9
9th November 2005, 13:41
GUIs are going to be the end of me.... now you know why open source software often has no good GUI.. it's tedious boring work without rewards. Gosh do I hate GUIs. Give me something interesting to code please.
BTW: those problems are mainly caused by your insistence on triple state.. I used to simply clear options that don't mix, now I have to keep the logic twice to enable triple-state (an example of triple state: go high profile, check 8x8i, go main profile.. it stays checked.. to do that, I need the same disabling logic again in the commandline generation and I need to return the actual checked options regardless of whether they're enabled or disabled). In addition, in order to allow the proper opening of such a profile, I once again have to apply the entire enabling/disabling GUI logic when the configuration dialog comes up.
Sharktooth
9th November 2005, 13:44
eheh... well, an easy way is to create a function for disabling controls which scans the control type and disables it in the correct way (resetting its value too).
if i have some time i'll look at the megui source and will post a patch. but that won't be soon since im busy more than ever.
another way is to create an exclusion list for every x264 parameter and parse it everytime you load the xml profiles... but that's a pain in the a$$... :D
another way: dont parse disabled controls (but that requires the deletion of some tags in the xml...) OR add a status field for the controls in xml data file :)
Sharktooth
9th November 2005, 14:24
Auto 3-passes with turbo is buggy too...
the first pass "turbo" settings are propagated for all the 3 passes...
zajc
9th November 2005, 16:20
I have 3 questions/problems:
software used: megui 0.2.3.1
1. question/problem: I created (2 times) 1310 MB xvid .avi from 25 GB mjpeg .avi source. Somehow .avi isn't playable. After investigation I found out in Gspot 2.52b1 that the .avi file is Multipart OpenDML AVI (162443 frames in first part, 35651 frames follow). How to make the file playable in BSplayer? Also in VirtualDub file can not be opened.
2. question/problem: I tried to mux (Avi Muxer) this .avi file (1. question) and mp3 (ABR) and then split the output into 700 MB files. The result is 1400 xvid .avi file (shouldn't be there 2 files :confused: ), which again is not playable. Should AVImuxer and spliting the output work?
3. question/problem: This has nothing to do with 1. and 2. question. After muxing several playable .avi files, I have a problem to open muxed .avi file in virtualdub. It always warn me: "Truncated or invalid MP3 audio format detected (18 bytes, should be 30)." When I try to demux the file, .mp3 file is playble but corrupted. Is this a mencoder or .avi format problem. Can somebody please explain what is the problem?
Thanks! :confused:
stephanV
9th November 2005, 16:56
Whats the error VirtualDub gives?
zajc
9th November 2005, 17:30
Also in VirtualDub file can not be opened.
Error is in the status bar: VideoSourceAvi error: file read error (8004406d) :confused:
Sharktooth
9th November 2005, 17:51
@Doom9: i compiled MeGUI-x264 with the 0.2.3.1b sources and the RDO thing is still buggy (the control doesnt get disabled if b-frames = 0).
i posted the patch in the development thread... maybe tonight i'll add a couple of fixes too...
Doom9
9th November 2005, 18:28
Should AVImuxer and spliting the output work?No, I'm afraid mencoder doesn't offer proper splitting.. since all mux windows are based on the mp4 ones, they all have that ability but if the underlying program doesn't support it, there's nothing I can do about it (want to write an avi muxer/splitter? I'll be happy to support it)
stephanV
9th November 2005, 20:53
Error is in the status bar: VideoSourceAvi error: file read error (8004406d) :confused:
zajc: mencoder avi files larger than 1GB only appear to work in mplayer... :(
Devinator
14th November 2005, 14:24
Possibly noobish questions here. Will x264 produced like this play on any standalones? I have a Phillips 624. And also must you use MKV if you plan to include AC3 audio tracks?
Doom9
14th November 2005, 14:47
Will x264 produced like this play on any standalones?If you manage to get one that can handle AVC... currently there are no such devices. And once there are, levels will also play an important role. Since at this point we cannot know what players will look like, the safe answer is "your content will never play on a standalone".. everything else is speculation because there are no players. Your Philips cannot and will never be able to handle AVC.
And also must you use MKV if you plan to include AC3 audio tracks?Well, if the mencoder guys fix the AC3 muxing bug, AC3 would work as well. You can try.. if it freezes during muxing phase, you know they still haven't fixed the bug, if it works, you're in luck.
Devinator
14th November 2005, 22:31
Thanks for the info... Still a very promising codec. I was getting 30+fps on a test to encode a small video clip. Up from 15-18 before using the MT avisynth plugin. However I tried to encode a full movie overnight and it just stopped encoding after 5 minutes or so. The program didn't crash or stop responding. Set automatic 3 pass under config. Then under the bitrate calculator I set MKV, 1/3 DVD size and selected the two audio tracks I wanted.
Oh well, I'll mess around with it a bit.
berrinam
15th November 2005, 05:24
I don't know if the right place to post it, but since a lot of people have been reporting problems with x264 here, there seem to be a few things to say before doing this:
1. Work out whether it is x264 or MeGUI causing the problem. This tends to be simple enough: if MeGUI crashed, then it is almost certainly causing the problem. If MeGUI stays active, but flags the job as an error, then look at the commandline in the MeGUI log. If there are any outrageous values in the commandline (especially negative/very low/very high bitrates), then see the commandline MeGUI generated had a problem, and so it is not x264's fault. In almost any other situation, it is an x264 problem, not a MeGUI problem.
2. Read the MeGUI log through yourself. This often has a section which will say the error and you may be able to solve it based on that.
3. Check if it can be solved by adding nicefps to the end of your avisynth script (see here (http://forum.doom9.org/showthread.php?p=717181#post717181)).
Of course, nobody is forcing you to do what I say, but it seems that a lot of problems can be solved by these three steps. They also prevent clogging up the MeGUI thread with non-MeGUI-related bugs.
leowai
16th November 2005, 06:22
@berrinam,
:goodpost: , especially step 1.
I believe if bug reporter goes through these steps, he/she can make a more accurate bug report.
Revgen
16th November 2005, 20:24
"Pyramid" seems to be grayed out in the latest version of MeGUI bundled with Sharktooth's 367 version. I can't seem to enable it even though I've set my b-frames to 3.
Has there been a change in the last few builds?
stax76
17th November 2005, 16:50
GUIs are going to be the end of me.... now you know why open source software often has no good GUI.. it's tedious boring work without rewards. Gosh do I hate GUIs. Give me something interesting to code please.
I find it quite fun and always work on the GUI until I think it's perfect, especially since VS 2005 has much to offer in this regard, maybe you are getting wrong at the problem. Here (http://www.joelonsoftware.com/uibook/chapters/fog0000000057.html) is a nice article. I like this guy's blog, most of the time his articles are fun to read and very interesting.
Sharktooth
17th November 2005, 17:06
"Pyramid" seems to be grayed out in the latest version of MeGUI bundled with Sharktooth's 367 version. I can't seem to enable it even though I've set my b-frames to 3.
Has there been a change in the last few builds?
i've just noticed it... well... i dunno :)
ok, i'll check it asap.
Sharktooth
17th November 2005, 17:29
another bug... if you save a high profile megui profile when you click the config window b-pyramid will be grayed out.
workaround: set your bframe options (excluding b-pyramid)... switch to main profile then switch back to high profile...
EDIT: fix posted in the megui dev thread along with fixed binaries and new x264-full package.
Chainmax
17th November 2005, 18:46
"Pyramid" seems to be grayed out in the latest version of MeGUI bundled with Sharktooth's 367 version. I can't seem to enable it even though I've set my b-frames to 3.
Has there been a change in the last few builds?
I think I had the same problem and got around it by using the arrows to increase the number of bframes rather than directly writing it on the box.
Does anyone know when a new version that can properly do automated 3-pass with turbo will be released?
Sharktooth
17th November 2005, 18:49
i'll fix the b.frames and trellis thing first. then i'll check the turbo issue.
bear with me... megui code is too much chaotic for me...
Chainmax
17th November 2005, 19:00
Oh, it was not my intention to appear pushy or demanding. I apologize if it came out like that :o.
Sharktooth
17th November 2005, 19:02
Oh well, no problems, mine was only an informative post:)
Sharktooth
17th November 2005, 23:33
new MeGUI and MeGUI-x264 binaries in the MeGUI dev thread.
Chainmax
18th November 2005, 02:14
What fixes are included in this new version?
[edit]Why does the full x264 package has rev367D and the lite package still has rev367A?
Sharktooth
18th November 2005, 02:16
the tri-state things... (the glue code).
well the options should be now grayed/ungrayed out in the correct way.
i also included the berrinam patch for the "one click encoder".
bob0r
18th November 2005, 17:04
x264 revision 368 now has --b-rdo option (--b-rdo RD based mode decision for B-frames. Requires subme 6.). (SVN)
Please update megui(x264) source and ill compile a new megui-x264 for x264 SVN users :)
Sharktooth
18th November 2005, 18:32
i'll update it tonight.
Sharktooth
19th November 2005, 15:47
the patch is up on the megui dev thread.
foxyshadis
24th November 2005, 21:15
With recent versions I'm getting an unhandled exception when clicking on the job config option in x264 version, after loading an avs file. I haven't had a chance to test full version yet. Setting the profile level to anything other than unrestricted works fine.
stack dump is:
************** Exception Text **************
System.ArgumentException: '0' is not a valid value for 'Value'. 'Value' should be between 'Minimum' and 'Maximum'.
at System.Windows.Forms.NumericUpDown.set_Value(Decimal value)
at MeGUI.x264ConfigurationDialog.set_CodecSettings(x264Settings value)
at MeGUI.x264ConfigurationDialog.EnforceLevel(x264Settings inputSettings)
at MeGUI.x264ConfigurationDialog.showCommandLine()
at MeGUI.x264ConfigurationDialog.avcLevel_SelectedIndexChanged(Object sender, EventArgs e)
at System.Windows.Forms.ComboBox.OnSelectedIndexChanged(EventArgs e)
at System.Windows.Forms.ComboBox.set_SelectedIndex(Int32 value)
at MeGUI.x264ConfigurationDialog.set_CodecSettings(x264Settings value)
at MeGUI.MeGUI.videoConfigButton_Click(Object sender, EventArgs e)
I can't verify that.. it must be settings related so you need to share a lot more info. Plus, this is a topic for the user thread ;)
Sorry about the wrong thread earlier. Anyway, I deleted my settings file and all profiles, and it still occurs. I have whatever the latest release of .Net 1.1 is, on XP SP2. It also occurs on a Server 2003 SP1 machine also with .Net 1.1.
Sharktooth
24th November 2005, 21:30
try the version included with x264 rev375A.
charleski
24th November 2005, 22:01
@foxyshadis: That bug is due to an error in the first release of the levels code. get one of the latest builds, as it was fixed a few days ago.
[Edit] BTW, if anyone wants to test the level-enforcement code I wrote, please pickup Sharktooth's latest build from the end of the MeGUI development thread. It especially needs to be tested on video with odd framesizes and framerates, if you have any such stuff lying around.
I'm currently working on a set of UI additions, trying to maintain the established workflow of the program while adding things that make it a bit more intuitive for n00bs like me who are upgrading from GordianKnot. I'm already adding things to the avisynth creator so that it can directly load additional filetypes, though avi is going to be a fair amount of work because of the kludge that 'avi' is. If you can think of other improvements (that are real improvements and not along the lines of wanting VfW support :) - I'll put in code to let the avisynth creator read VDub frameserver files ), then post here and be as specific as you can.
BTW, all my additions are going to be targeted at the full version of MeGUI only.
Razorholt
13th December 2005, 21:20
Quick (stupid?) question: I'm trying to convert to .AVI using MeGUI (with mencoder). Selecting AVC doesn't do any good but with ASP it does work. Why?
Thanks,
- Dan
Doom9
13th December 2005, 21:23
because the x264 version of MeGUI only supports x264.exe and that doesn't support AVI?
Or did you post in the same thread (and forgot a bunch of details.. I don't really have a clue what you're doing).
Razorholt
13th December 2005, 21:32
oooooh ok! Thanks Doom9!
What I'm trying to do? Oh man, I dunno. The aim is to encode a mov to ogm. I'm very limited in size and I want maz quality. So I tried:
AVS -> MKV (with MeGUI + AVC) then MKV -> OGM (with VirtualDudMod) => failed. Bunch of errors with VDM.
Now, I know I can succeed with the ASP codec but I doubt whether I could end up with the same quality/compression as with AVC. Am I wrong? MKV was impressive though.
- Dan
Doom9
13th December 2005, 22:18
VirtualDubMod can't handle AVC in MKV.. so your problems start right there
OGM imho has outlived its usefulness.. use either MKV or MP4 for AVC.
Razorholt
13th December 2005, 22:39
But I need a streaming container and OGM was perfect...
klicker4546
13th December 2005, 22:48
Hello,
I'm using the latest version of MeGUI and I'm trying to convert a vob-file to xvid. When I opened my avs-script everything looked fine in the preview. As soon I start the conversion-job it's says "processing" but mencoder doesn't seem to react. I tried it with several versions of mencoder. In the end nothing happens. :confused:
When I copy the commandline to a batch file and execute it, mencoder starts working. Can someone help me?
charleski
13th December 2005, 23:36
@klicker4546: We need a log.
But I need a streaming containermp4 is a streaming container :)
klicker4546
14th December 2005, 00:56
Hi, thanks for the quick reply. I ran another encoding session and here's the log:
Next job job1-1 is a video job. encoder commandline:
"D:\MeGUI\mencoder.exe" "D:\MeGUI\test.avs" -ovc xvid -o NUL: -passlogfile "D:\MeGUI\2pass.stats" -xvidencopts pass=1:bitrate=700:max_key_interval=300:vhq=4:chroma_me:trellis:interlacing:keyframe_boost=100:kfthreshold=1:kfreduction=20
successfully set up video encoder and callbacks for job job1-1
Job aborted, deleting output file...Deletion failed.
Is this line corrrect? "D:\MeGUI\mencoder.exe" I was wondering if it needs those quotation marks or not...
Here's the avs-script I used:
LoadPlugin("C:\Programme\AviSynth 2.5\plugins\DGDecode.dll")
MPEG2Source("D:\MeGUI\test.d2v")
ConvertToYV12()
Output container was avi. Correct me if it's not supported for xvid. (Although it worked for me with releases of MeGUI.)
Does that help??? :)
@klicker4546: We need a log.
charleski
14th December 2005, 01:21
-o NUL:
Are you sure you have an output file set in the GUI?
klicker4546
14th December 2005, 01:33
Yes, absolutely!
See attachements!
Are you sure you have an output file set in the GUI?
charleski
14th December 2005, 01:51
Well there haven't been any changes to the xvid side of meGUI recently, but it's possible that this is an unintended side-effect of some of the modifications to commandline generation. Exactly which version of meGUI are you using?
I've never used mencoder, but I assume you see the same abort if you just paste "D:\MeGUI\mencoder.exe" "D:\MeGUI\test.avs" -ovc xvid -o NUL: -passlogfile "D:\MeGUI\2pass.stats" -xvidencopts pass=1:bitrate=700:max_key_interval=300:vhq=4:chroma_me:trellis:interlacing:keyframe_boost=100:kfthreshold=1:kfreduction=20into a command window?
klicker4546
14th December 2005, 02:06
Well there haven't been any changes to the xvid side of meGUI recently, but it's possible that this is an unintended side-effect of some of the modifications to commandline generation. Exactly which version of meGUI are you using?
I've never used mencoder, but I assume you see the same abort if you just paste "D:\MeGUI\mencoder.exe" "D:\MeGUI\test.avs" -ovc xvid -o NUL: -passlogfile "D:\MeGUI\2pass.stats" -xvidencopts pass=1:bitrate=700:max_key_interval=300:vhq=4:chroma_me:trellis:interlacing:keyframe_boost=100:kfthreshold=1:kfreduction=20into a command window?
I've just created a batch file:
logfile.bat
"D:\MeGUI\mencoder.exe" "D:\MeGUI\test.avs" -ovc xvid -o NUL: -passlogfile "D:\MeGUI\2pass.stats" -xvidencopts pass=1:bitrate=700:max_key_interval=300:vhq=4:chroma_me:trellis:interlacing:keyframe_boost=100:kfthreshold=1:kfreduction=20
and it worked. That's what the problem is. When I create a batch-file it's always working (using the command line created by MeGUI). I guess there's something messed up with passing the command line to the mencoder. I'm currently using MeGUI 0.2.3.1023. But I also tried it with 1021 and 1022. I can't find any older version below 1021 to give it a try with those.
Again I'll add two pictures.
Razorholt
14th December 2005, 07:08
Charleski, I tried many containers with our streaming software and, so far, only MPG(files have been encoded with MainConcept), WMVand OGM were usable. I don't seem to be able to stream any other formats and that includes MP4. FYI, we're using WMP.
Is there any specific settings I'm missing here?
Thanks,
- Dan
Shinjite
14th December 2005, 07:54
Pardon me for asking, I was wondering is it the latest MEGUI version posted in the first page?
Doom9
14th December 2005, 09:22
Pardon me for asking, I was wondering is it the latest MEGUI version posted in the first page?It wasn't.. now it links to the proper place.
charleski
14th December 2005, 12:33
@klicker4546: Can you try this version (http://homepages.nildram.co.uk/~cajking/MeGUI/MeGUI.NETv1.1.Bins_0.2.3.1018.rar) and see if it works? The commandline is fine, but you might be having an issue with the process call-backs.
klicker4546
14th December 2005, 14:39
Ok, I'll give it a try and let you know if it works.
@klicker4546: Can you try this version (http://homepages.nildram.co.uk/~cajking/MeGUI/MeGUI.NETv1.1.Bins_0.2.3.1018.rar) and see if it works? The commandline is fine, but you might be having an issue with the process call-backs.
klicker4546
14th December 2005, 15:05
It's still the same story. Nothing is going to happen after I hit the start button. Just an encoding status window pops up, but there's no activity at all. The calling event for loading the avs-script produced an error message. Is it the problem you referred to in your posting? And I need to set the output file manually. :confused:
Here's the commandline produced by mencoder:
Next job job1 is a video job. encoder commandline:
"C:\Programme\Videobearbeitung\MPlayer\mencoder.exe" "C:\Dokumente und Einstellungen\akw\Eigene Dateien\test.avs" -ovc xvid -xvidencopts bitrate=700:max_key_interval=300:vhq=1:chroma_me:trellis:lumi_mask:interlacing:rc_reaction_delay_factor=16:rc_averaging_period=100 -o "C:\Dokumente und Einstellungen\akw\Eigene Dateien\test.avi" -of avi -ffourcc XVID
successfully set up video encoder and callbacks for job job1
I also attach a screenshot of the status window.
This is really weird... but thanks anyway!!!
Ok, I'll give it a try and let you know if it works.
Doom9
14th December 2005, 15:10
The calling event for loading the avs-script produced an error message. What is "calling event" ? If there's an error loading the AviSynth script, it's no wonder it doesn't work.. MeGUI is very picky about its input and needs to be able to load it via VfW or nothing will ever be encoded.
klicker4546
14th December 2005, 15:17
I know it's very picky! But the avs-script works fine with version 0.2.3.1023. The preview works fine. And the MPC also plays the avs-script. So I don't think there's an issue with the avs. If you wanna have a look at the script, I'll post it.
What is "calling event" ? If there's an error loading the AviSynth script, it's no wonder it doesn't work.. MeGUI is very picky about its input and needs to be able to load it via VfW or nothing will ever be encoded.
charleski
14th December 2005, 18:04
Ok, we need to dissect the problem a bit more.
When you start the queue, press ctrl-alt-del and go to the Processes tab of the Task Manager. Is mencoder listed there, and if so, is it doing any work (look at the CPU%)?
Are you able to run other encoders, like x264, with meGUI?
klicker4546
14th December 2005, 20:46
Ok, here we go! Mencoder ist listed there, it starts to work for 1 or 2 seconds before it seems to get stuck. CPU-Usage 0-2%. That's odd. And I tried several versions of mencoder. Generic builds and also k7-because I've got an Athlon XP CPU. When I hit abort in the job-list or in the status window, the windows does not close. I need to close the whole application (MeGUI) or just click the status window that it disappears.
I tried it with x264 and it worked fine for me.
Alternatively I gave it a try with a directshowsource command in my avs-script to see whether that's gonna work or not.
DirectShowSource("C:\Dokumente und Einstellungen\...\Eigene Dateien\04VB.wmv",audio=false,video=true)
ConvertToYV12()
Is it an issue that I've got Avisynth version 2.56 installed instead of 2.55?
Ok, we need to dissect the problem a bit more.
When you start the queue, press ctrl-alt-del and go to the Processes tab of the Task Manager. Is mencoder listed there, and if so, is it doing any work (look at the CPU%)?
Are you able to run other encoders, like x264, with meGUI?
charleski
14th December 2005, 22:37
The avisynth version won't matter as long as it's over 2.55.
The commandline is formed correctly and the mencoder thread is being started, but I suspect it's hanging when mencoder tries to report back to meGUI, though this works fine on my machines (and this is the first time someone has reported such a problem).
Try running it with the progress window closed (an option in settings).
If this doesn't work, we need to add some more debugging code to see what's failing.
klicker4546
14th December 2005, 23:15
I'm actually trying it with MeWIG and mencoder works fine. ;)
Ok, I'll give it a try the way you suggested it.
I've got .net framework 1.1 and 2.0 installed. It possible that interferes?
The avisynth version won't matter as long as it's over 2.55.
The commandline is formed correctly and the mencoder thread is being started, but I suspect it's hanging when mencoder tries to report back to meGUI, though this works fine on my machines (and this is the first time someone has reported such a problem).
Try running it with the progress window closed (an option in settings).
If this doesn't work, we need to add some more debugging code to see what's failing.
klicker4546
14th December 2005, 23:33
Ok, I did as you told. I deselected the progress window in settings. And it is still the same. :-)
MeWIG is properly working. Damn, it's so strange!!!
Shinjite
15th December 2005, 06:31
Mine the problem started when I use MeGUI 0.2.3.1b (haven't update yet) and I couple it up with the latest mencoder with Xvid 1.2 dev and the 1st pass is not even working. When I switch back to mencoder with Xvid 1.1.0Beta 2, it works....
klicker4546
16th December 2005, 16:01
Hi, so you think the newer xvid version causes your problems then? Hmmm, I i have xvid 1.1.0-cvs from 9/12/2005 installed. And got mencoder not working under MeGUI.
:rolleyes:
Mine the problem started when I use MeGUI 0.2.3.1b (haven't update yet) and I couple it up with the latest mencoder with Xvid 1.2 dev and the 1st pass is not even working. When I switch back to mencoder with Xvid 1.1.0Beta 2, it works....
Doom9
16th December 2005, 16:42
I've got .net framework 1.1 and 2.0 installed. It possible that interferes? No, .NET binaries will pick the runtime they've been compiled on if it's available.. I have both runtimes installed as well. I guess the important question would be, can you handle a debugger? I have a feeling such an issue would be caught within a minute if you can debug. I could tell you where to set the breakpoints and which methods to step through.
Also, you quoted me above but forgot your reply ;)
Can you have a look at the stats file? How many frames does mencoder encode? And could you capture all stdout and stderr output when running mencoder from the commandline and attach here so we can see what MeGUI sees as feedback from mencoder. Since you report it starts up properly but then does nothing, this isn't so much a problem of events propagating back to the GUI rather than reading stdout and process that data I suspect. Event routing has a try/catch in it so if there were a problem updating the progress window, you'd notice an error message in the logs.
weaver4
16th December 2005, 18:07
I'm sorry but I have been looking for 30minutes on where to download the latest Executable MeGui. I found the source code but where is the executable? Can someone point me to it? Thanks,
Doom9
16th December 2005, 18:18
'm sorry but I have been looking for 30minutes on where to download the latest Executable MeGui. 30 Minutes? Why do I not believe that? Binaries have always been available from the first post of this thread. So, if you go to that post and use your browser's search (if you don't know that.. you need to take a crash course in computer use), and you type in download and see where it gets you. The second hit is
You can also download Sharktooth's builds And there's a link there.. and it goes to a page that has 4 file downloads.. so you have a 25% chance of hitting the right one without looking at the filename.. and a 100% chance if you look at the filename.. (anything with src in it looks suspiciously like source code).
Sorry, I can't resist.. nobody spends 30 minutes and doesn't find if a search on "megui download" yields the result in the first thread. If you said two minutes, maybe but even that's pushing it.. search engines were created so that you can search, and check out at least the 10 first links.. and if you didn't find anything after that, okay, it happens.
klicker4546
16th December 2005, 18:58
First of all thanks for your reply. Ok, now to your question, if I can handle a debugger. I have a little experience with programming VB .Net. Just a tiny little bit though, because I've just started to learn :rolleyes:. But I think I should be able to debug it with your (detailed) instructions. Where to set the breakpoints and which methods to step through. So let's give it a try.
No, .NET binaries will pick the runtime they've been compiled on if it's available.. I have both runtimes installed as well. I guess the important question would be, can you handle a debugger? I have a feeling such an issue would be caught within a minute if you can debug. I could tell you where to set the breakpoints and which methods to step through.
I wasn't aware of that. Can you forgive? :)
Also, you quoted me above but forgot your reply ;)
Ok, I gonna have a look at the stats file for you, in order to see how many frames are encoded and also at the stdout and stderr when I am running mencoder from the commandline. It could take some time though. Pls send send me the debugging info I need.
Can you have a look at the stats file? How many frames does mencoder encode? And could you capture all stdout and stderr output when running mencoder from the commandline and attach here so we can see what MeGUI sees as feedback from mencoder. Since you report it starts up properly but then does nothing, this isn't so much a problem of events propagating back to the GUI rather than reading stdout and process that data I suspect. Event routing has a try/catch in it so if there were a problem updating the progress window, you'd notice an error message in the logs.
Doom9
16th December 2005, 19:30
I wasn't aware of that. Can you forgive?I wasn't either initially, even though I should've known after taking that MS exam.
As far as debugging goes, you'll want to look at the method mencoderEncoding() in VideoEncoder.cs and set a breakpoint at the line line = sr.ReadLine(); // reads a line from stdoutthen go step by step from there. The while loop basically is a stdout reader loop, it reads everything from mencoder's stdout. So, if you start encoding, the first question is, do you even get to the breakpoint. If not, we'll have to start looking earlier than that. If you get to the point, start iterating (F5 in visual studio) and watch the contents of the variable line. As soon as it starts with "Pos:", start going step by step and watch what happens inside "if (line.StartsWith("Pos:")) // status update". If you get that far, pay special attention to the first time "counter" equals 10, as I suspect that's the last bit of code you're going to hit. Most likely, you get an exception thrown somewhere that will make the encoder thread exit or block, but I'm just guessing.
I think if you do that, we'll get real close to the problem rather quickly.
weaver4
16th December 2005, 19:50
30 Minutes? Why do I not believe that? Binaries have always been available from the first post of this thread. So, if you go to that post and use your browser's search (if you don't know that.. you need to take a crash course in computer use), and you type in download and see where it gets you. The second hit is
And there's a link there.. and it goes to a page that has 4 file downloads.. so you have a 25% chance of hitting the right one without looking at the filename.. and a 100% chance if you look at the filename.. (anything with src in it looks suspiciously like source code).
Sorry, I can't resist.. nobody spends 30 minutes and doesn't find if a search on "megui download" yields the result in the first thread. If you said two minutes, maybe but even that's pushing it.. search engines were created so that you can search, and check out at least the 10 first links.. and if you didn't find anything after that, okay, it happens.
Ok, I am not a newbe. Every link I found using a search tool pointed me back to this thread including Video Help, DivX Digest and such. I am not looking for the source just the executable.
http://www.google.com/search?sourceid=navclient-ff&ie=UTF-8&rls=GGGL,GGGL:2005-09,GGGL:en&q=megui
The first post has links to:
--.Net Framework
--Avisynth
--x264
--besweet (very nice)
--mp4box
--mkvtoolnix
--DCMPGDec
and links for just the MeGui x264 and Snow edition. I wanted to try MeGui with XVID so I did not think these were the right files.
When I go to Sharktooth site. It has two files with a .7z extension on them (wouldn't know what to do with those) and the other two files are: MeGui-Src*.rar which look like source files to me.
Regardless; with your exceptional guidance I was able to download the source code and get it to compile.
Doom9
16th December 2005, 20:00
well, if you get to Sharktooth's site, you're already there. 7z is just another compression format, that Winrar can handle (or 7zip can handle as well. there's a bunch of tools that can handle it.. but I suspect most people who handle rar use Winrar for it since it's the native tool.. since version 3.x Winrar can handle 7zip archives (open, but not create)).
So this is the latest compiled version: http://files.x264.nl/Sharktooth/force.php?file=./megui/megui_0.2.3.1023b.7z .. as I said, it's the only one without src in the filename. Though I admit, it would make much more sense to put the source in a separate directory so you'd only have one file in the main directory. I'm going to suggest that to Sharktooth.
I'm afraid as long as I'm taking a break from development, I can't make things as easy as they used to be since I'm no longer distributing anything myself. That may change again in the future but I'm booked till the end of the year.
Sharktooth
16th December 2005, 22:26
Binaries are now here: http://files.x264.nl/Sharktooth/?dir=./megui/Binaries
Sources here: http://files.x264.nl/Sharktooth/?dir=./megui/Sources
Doom9
16th December 2005, 22:33
thanks, I've updated the links.
Chris Benoit
16th December 2005, 22:39
Ok here's my question.I want to use MEGui to encode videos for psp.I have got the profiles and i see the PD-PSP one.I want to ask:Will i have better results if i enable rd0 2 instead of rdo?
Also what will i gain if i enable B-frame pyramid,i8x8 and lossless quantitizer.
And lastly will i get better results if i load a custom matrix?What are custom matrices anyway?
Sharktooth
16th December 2005, 22:47
Chris Benoit, "Video profiles for MeGUI" discussion is here: http://forum.doom9.org/showthread.php?t=101813
After my answer let's continue there the discussion.
RDO 2 (--subme 7) is only marginally better than standard RDO, but much slower.
The profile is good as it is and any modification may compromise the playability on the PSP.
So, do not enable b-pyramid coz the PSP doesnt support it.
All the PSP is not compatible with High Profile too.
i8x8, adaptive dct, lossless encoding (not quantizer!) and custom matrices are all in the High Profile and are not supported.
Chris Benoit
16th December 2005, 23:00
Ok thanx for clearing that up.Also one more thing.Should i tamper with the deblocking options?Alpgha and Beta?What do they actualy do?
Is this profile for megui the best solution for avc encoding for psp?
thanx for your answer.
Sharktooth
16th December 2005, 23:05
Ok thanx for clearing that up.Also one more thing.Should i tamper with the deblocking options?Alpgha and Beta?What do they actualy do?
If the picture is too washed out you may lower the deblocking levels. Find the sweetspot between a sharp picture and a blocky picture.
Is this profile for megui the best solution for avc encoding for psp?
Rule number 12 applies:
12) How NOT to post on this forum:
5 minutes after your initial post you reply to your own post writing something like "Why is nobody helping me? I'm sure you know the answer". Once somebody replies to your thread but doesn't give you exactly the answer you've been expecting you insult them.
Do not ask "what's best" because this question cannot be answered objectively. Each and everyone has their own view about what's best in a certain area. The best is what works best for you!
Chris Benoit
16th December 2005, 23:11
Oops sorry i forgot about that rule.Well let me rephrase.
Is there anything else i should be concerned with in order for the quality of the encoded file to yield better results?
So i tried encoding a file and the resulted mp4 was not playable.Well on the pc it played only the video,no sound but on the psp it displayed "corrupt file"
I used the default psp settings,didn't tamper anything.
And my avs was this:
DirectShowSource("C:\Documents and Settings\Administrator\My Documents\a.avi")
LanczosResize(368,208)
ChangeFPS(29.97)
klicker4546
17th December 2005, 00:35
Ok, I tried the debugging now. I set the breakpoint at the line where you wanted me to. No problem so far with mencoder. I was able to step to the breakpoint without any problems. I was able to iterate by pressing F5. The loop was done 9 times before it gave 2 exceptions: System.IO.IOException, System.OutOfMemoryException. I'll attach you two screenshots. You were right when you suspected that the last line I'll be able to hit is the first time "counter" equals 10. That's the point where it either blocks or the program exits. Pretty good!
I hope that this helps to isolate the problem.
Also I attached the xvid-stats file and 2 screen captures of mencoder's command line stdin/stdout. Hopefully it's all you need. I'm not really sure if I did it right or not. Pass me some feedback, please. As I am eager to learn. :)
I wasn't either initially, even though I should've known after taking that MS exam.
As far as debugging goes, you'll want to look at the method mencoderEncoding() in VideoEncoder.cs and set a breakpoint at the line line = sr.ReadLine(); // reads a line from stdoutthen go step by step from there. The while loop basically is a stdout reader loop, it reads everything from mencoder's stdout. So, if you start encoding, the first question is, do you even get to the breakpoint. If not, we'll have to start looking earlier than that. If you get to the point, start iterating (F5 in visual studio) and watch the contents of the variable line. As soon as it starts with "Pos:", start going step by step and watch what happens inside "if (line.StartsWith("Pos:")) // status update". If you get that far, pay special attention to the first time "counter" equals 10, as I suspect that's the last bit of code you're going to hit. Most likely, you get an exception thrown somewhere that will make the encoder thread exit or block, but I'm just guessing.
I think if you do that, we'll get real close to the problem rather quickly.
Doom9
17th December 2005, 01:47
hmm, can you set a conditional breakpoint that hits when counter is 9, then go step by step from there to find out exactly which line causes the exceptions, and show me your autos (the variables visual studio automatically tracks) as well as the current value of line ? And OutOfMemoryException really scares me.. are you running low on memory? Also, can you get the Message property of these two exceptions? Especially the IO Exception.. I'm wondering what could cause this.. actually I suspect it could be the
if (job.Output != "") // if its empty, we're dealing with a 2pass first pass that does not generate an output file
{
FileInfo fi = new FileInfo(job.Output);
su.FileSize = fi.Length / 1024;
} part, which then of course raises the question, which job are we talking about? Is this a single pass job or a second pass job? And can you verify that the file mentioned in job.Output actually exists.
klicker4546
17th December 2005, 02:45
Oh my, that's quite a hard crash course of debugging for me! :p
But ok, I consider it as sort of an challenge for me. I'll give it a try tomorrow or on sunday.
Hmm, I have 768 MB of RAM. It should be fine, I guess.
Can you tell me something how to set up conditional breakpoints and a little bit of those variables VS automatically tracks? Where to find etc... ?
hmm, can you set a conditional breakpoint that hits when counter is 9, then go step by step from there to find out exactly which line causes the exceptions, and show me your autos (the variables visual studio automatically tracks) as well as the current value of line ? And OutOfMemoryException really scares me.. are you running low on memory? Also, can you get the Message property of these two exceptions? Especially the IO Exception.. I'm wondering what could cause this.. actually I suspect it could be the
if (job.Output != "") // if its empty, we're dealing with a 2pass first pass that does not generate an output file
{
FileInfo fi = new FileInfo(job.Output);
su.FileSize = fi.Length / 1024;
} part, which then of course raises the question, which job are we talking about? Is this a single pass job or a second pass job? And can you verify that the file mentioned in job.Output actually exists.
edit:
I almost forgot: I tried both kind of jobs. First I tried two pass, because it didn't work, I tried it with single pass. There's a little avi-file as an output. It's only a few kbytes, because mencoder gets stuck.
Doom9
17th December 2005, 03:20
when you start debugging, you have various tabs at the bottom (unless you deactivate them).. one is called autos, and there's one called breakpoints. You'll see that your regular breakpoints have no condition set, then you can right click on one, select properties and configure it. Or do it the easy way, just press F5 8 times after hitting the breakpoint, then continue with F10 until it crashes.. I often do that to get a feeling of how the software works.
klicker4546
17th December 2005, 13:12
Hi, I tried to step over. Think I found it where the exception occurs. And I think I also traced the variables value. I made a few short avi-sequences and also screenshots. I'll send them as PM to you, hope that's ok.
Maybe it helps.
Furthermore it's really interesting that mencoder still runs after MeGui exits, while debugging. This normally does not happen if I run MeGUI. Mencoder doesn't do anything and hangs.
I'm uploading the files of the debug to megaupload.com. I'll send you the link as PM.
when you start debugging, you have various tabs at the bottom (unless you deactivate them).. one is called autos, and there's one called breakpoints. You'll see that your regular breakpoints have no condition set, then you can right click on one, select properties and configure it. Or do it the easy way, just press F5 8 times after hitting the breakpoint, then continue with F10 until it crashes.. I often do that to get a feeling of how the software works.
Sharktooth
17th December 2005, 19:43
@Doom9: May i include MeGUI (full) in a completely new package that will include x264 and faac also?
Doom9
17th December 2005, 19:58
absolutely.. the more it's being spread the better. I just regret not being able to put more time into it at this point but I hope to change that next year.
Sharktooth
17th December 2005, 20:22
The idea is to create a all-in-one solution for DVD to MP4 (AVC+AAC) backup maybe including also dvd ripping thru mencoder + libdvdcss.
In any case (x264 CLI or mencoder), MeGUI is a real lightweight app and the one click encoder is very easy for newbies.
In a near future the packages will be renamed to x264-lite, x264-std and x264-full.
Also if coding tech aac+ (the winamp encoder) or nero aac+ support could be added it would be great.
Doom9
17th December 2005, 20:42
I plan to look closely at the audio department, going through what dimzon suggested. If that can be done properly, we can implement proper cutting, for any kind of stream to the tool, thus creating a huge benefit over traditional solutions.
I'm no fan of using mencoder for decoding and ripping though.. I frankly don't trust anything but DGDecode, and mencoder lacks in x264 and xvid features (xvid_encraw will be supported in the new improved version).
Another point where serious improvement can be made is the avi muxing / splitting area.
We should also give serious thought to the current codec configuration dialogs, and perhaps how the software starts up.. most people seem to miss the one click mode.. perhaps this should be the default, and people using more advanced modes can be trusted to find their tools instead of going to other way round.
Sharktooth
17th December 2005, 20:55
yeah. i totally agree. a "basic" and "advanced" choice at start would be cool.
one click encoder could have different presets for the newbies too.
for what concerns the audio part, i would drop all the non-free stuff (including the nero encoder) and use only free (OS or not) softwares (lame, faac, winamp...).
Doom9
17th December 2005, 21:02
well.. winamp is commercial too.. you just don't have to pay for it.. but how long is this going to last? If I have significant reason to believe that the free alternatives are at least equal if not superior than the nero encoder, I have no quarrel dropping it.. but if it means giving in in quality, then this shouldn't be an option, and since you can chose different AAC encoders, we can still offer a free version, and even a completely open source based version as well.
Sharktooth
17th December 2005, 21:13
well, from the first tests the winamp 5.12 encoder performs better than nero (at least on low bitrates).
samples are available in the Real Anime LE thread.
However there will always be a free version of winamp... :)
Doom9
17th December 2005, 21:15
but who says it they won't move the AAC encoder to the pay version? Unless something is open source you can never be 100% sure it's going to be available forever.
Sharktooth
17th December 2005, 21:17
well, nero is already payware and is limiting their software more and more... in the worst case we will have a free AAC+ solution for a while.
Doom9
17th December 2005, 21:22
well.. those 32 kbit comparisons are completely useless to me, in fact it makes me want to shoot myself. They prove nothing, there's no settings, nothing. Winamp only does CBR, Nero has quality based mode as well. And interesting bitrate ranges for DVD backups would be 96 kbit up to 160 kbit/s, with Winamp's CBR having to face Nero's quality mode.. you gotta use the best of each codec.. who cares of Winamp CBR is better than Nero CBR if you're going to use Nero quality mode? I'll await ramorjim's tests if he ever does a test that suits DVD backups, or any other test that looks halfway serious (I don't trust myself with audio.. I'm a videophile and can live even with 128 kbit/s CBR MP3).
Sharktooth
17th December 2005, 21:26
well... aac+ at 64kbps is quite good, similar to LC-AAC at 96kbps.
Yes, 32kbps samples maybe are too much, but if yo go over 96, then AAC becomes useless (just use MP3).
However, even at 32kbps they sounds pretty good...
Doom9
17th December 2005, 23:53
@: let me recapitulate your videos and screenshots:
line contains "Pos: 0.8s 10f (0%) 0.00fps Trem: 0min 0mb A-V:0.000[0:0]
the IOException happens in the line "line = sr.ReadLine();" with counter being set to 9.
And MeGui crashes at the line "su.FPS = this.getFPS(line);
Is that correct? What is the content of line when megui crashes and can you step into the getFPS method to find the exact location, and the important variables in that method?
The warnings are just from .Net 2.0.. just shows some of the differences to the 1.1 runtime but they are nothing to be worried about.
Also, can you try commenting out all the code inside the "if (line != null)" and see if you can get past the 10th frame?
also try wrapping all the code inside "(while !proc.HasExited)"
in a try {}
and add the following catch:
catch (Exception e)
{
log.Append("exception in mencoderEncoding: " + e.Message);
}
And just to make sure nothing goes haywire on your system, can you try encoding via x264.exe for a change just to see if that works out properly? or try audio encoding
klicker4546
18th December 2005, 12:13
Yes, you're right. I stepped in to the method again and made another screen capture vid, which shows the value of the variable before it crashes. After the program exits. I can't see it's value. Maybe I should set here a breakpoint?
@: let me recapitulate your videos and screenshots:
line contains "Pos: 0.8s 10f (0%) 0.00fps Trem: 0min 0mb A-V:0.000[0:0]
the IOException happens in the line "line = sr.ReadLine();" with counter being set to 9.
And MeGui crashes at the line "su.FPS = this.getFPS(line);
Is that correct? What is the content of line when megui crashes and can you step into the getFPS method to find the exact location, and the important variables in that method?
Ok, so I take it that I can just ignore those messages then.
I've tried to go along with your suggested debugging instructions. But it seems way to complex to me. I've just started programming (VB .Net) and C# looks way strange to me.
I had an idea though. I'm running VM Workstation. I could set up a working environment, where someone could go ahead with the debugging on my computer as it seems that I am not able to go ahead.
It's the point that I'm not aware where for example the method "(while !proc.HasExited)" starts and ends. Where to insert the try{} and the catch. :scared:
The warnings are just from .Net 2.0.. just shows some of the differences to the 1.1 runtime but they are nothing to be worried about.
Also, can you try commenting out all the code inside the "if (line != null)" and see if you can get past the 10th frame?
also try wrapping all the code inside "(while !proc.HasExited)"
in a try {}
and add the following catch:
catch (Exception e)
{
log.Append("exception in mencoderEncoding: " + e.Message);
}
And just to make sure nothing goes haywire on your system, can you try encoding via x264.exe for a change just to see if that works out properly? or try audio encoding
Doom9
18th December 2005, 12:20
alright, I'm attaching a zip file containing two source files.. just plug them into your source directory, compile and run and see what you get. I suspect there will still be problems so try debugging again. Once counter is equal to 9, step through everything pressing F11.. that will jump into every other method that is being called as well. Then please give me the exact line you were on before you pressed F11 and an exception was catched. And if the program still crashes, the same for the crash please (which line are you on before pressing F11 caused the crash).
Sharktooth
18th December 2005, 15:59
uhm. well, i'll add the winamp AAC+ encoder support (thru besweet+bsn) and will update the nero encoder support.
klicker4546
18th December 2005, 17:44
Ok, thanks again for your help. This this will make it a little easier for me.
I'll let you know what happened.
alright, I'm attaching a zip file containing two source files.. just plug them into your source directory, compile and run and see what you get. I suspect there will still be problems so try debugging again. Once counter is equal to 9, step through everything pressing F11.. that will jump into every other method that is being called as well. Then please give me the exact line you were on before you pressed F11 and an exception was catched. And if the program still crashes, the same for the crash please (which line are you on before pressing F11 caused the crash).
molitar
18th December 2005, 17:55
Question on mencoder I have a AMD 64bit processor but running 32bit windows should I install the xp or the 64bit version? In other words is it based on the operating system or the processor?
Doom9
18th December 2005, 17:57
@molitar: mplayer2005.11.23.Athlon-64.7z = a 32 bit build for the athlon64.. basically it's an sse3 build.. but it really doesn't seem to matter which build you take.. you can make your own speed tests if you like to verify that.
molitar
18th December 2005, 19:11
Ok I got all the components but one suggestion it took me a while to figure out where the full megui was. Was looking for a link for it throughout the thread.. I would suggest where you have the link to download the x264 CLI that you add (includes megui).
Doom9
18th December 2005, 19:27
the download link is in the first post. I'll add a bold "click here to download" on line4 of that post right after the program description and before the links to all the additional components you will need. I hope that'll be satisfactory. What sharktooth and bobor distribute is not under my control, though at least Sharktooth is going to include the full version in the future.
molitar
18th December 2005, 19:44
I crashed using megui. Crash log below: I also noticed that the file requires haali media splitter to open it but when I go to queue it I have 4 haali media splitter tray icons don't know if that could be a part of it or not.
See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.
************** Exception Text **************
System.NullReferenceException: Object reference not set to an instance of an object.
at MeGUI.AVIReader.AVIFileRelease(Int32 pfile)
at MeGUI.AVIReader.Dispose(Boolean disposing)
at MeGUI.AVIReader.Close()
at MeGUI.VideoPlayer.OnClosing(CancelEventArgs e)
at System.Windows.Forms.Form.WmClose(Message& m)
at System.Windows.Forms.Form.WndProc(Message& m)
at System.Windows.Forms.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
klicker4546
18th December 2005, 19:51
Ok, now. I build MeGui with your changes applied. The application did not crash anymore. :p
And I did a little more of debugging. The line before it throws the exception is
su.NbFramesDone = getFrameNumber(line);
The counter variable had a value of 10. I stepped once more with F11 and it threw an exception in line
public int NbFramesDone
{
get {return nbFramesDone;}
---> set {nbFramesDone = value;}
}
Error message: - AudioPositionTicks 'this.AudioPositionTicks' threw an exception of type 'System.NullReferenceException' long {System.NullReferenceException}
- base {"Object reference not set to an instance of an object."} System.SystemException {System.NullReferenceException}
- base {"Object reference not set to an instance of an object."} System.Exception {System.NullReferenceException}
+ Data {System.Collections.ListDictionaryInternal} System.Collections.IDictionary {System.Collections.ListDictionaryInternal}
HelpLink null string
+ InnerException null System.Exception
Message "Object reference not set to an instance of an object." string
Source "MeGUI" string
StackTrace " at MeGUI.StatusUpdate.get_AudioPositionTicks() in D:\\megui_src\\StatusUpdate.cs:line 206" string
+ TargetSite {Int64 get_AudioPositionTicks()} System.Reflection.MethodBase {System.Reflection.RuntimeMethodInfo}
- Static members
- Non-Public members
_COMPlusExceptionCode -532459699 int
Ok, thanks again for your help. This this will make it a little easier for me.
I'll let you know what happened.
Hope it helps to trace the problem now! :sly:
Doom9
18th December 2005, 21:04
when you step into the method "getFrameNumber(line)", what does happen? If you press F11 when you're on line
su.NbFramesDone = getFrameNumber(line);You'll go to line 494 where the method getFrameNumber starts.. what is the content of the variable
string frameNumberinside that method? It should be 10, should it not?
And what's the value of nbFramesDone and value in
set {nbFramesDone = value;}
Perhaps you could just give me a link to the mencoder build you're using? Man I wished I would sit in front of that pc.. it's probably the most frustrating thing for any programmer.. while it doesn't always solve things, being able to get your hands on a debugger that shows the actual problem.. you just can't beat the bugfixing power of that.
Your exception location makes no sense though, you the only way the ProgressWindow accesses the variable AudioPositionTicks is when you have an audio status update. Are you really 101% sure you are looking at the right place? On line 222 in VideoEncoder.cs I declare StatusUpdate. On line 227 in the same file I set su.JobType to 0, meaning it's a video job, and that's not changed through event propagation or anywhere in the class itself.
So can you add additional breakpoints in StatusUpdate.cs on line 18 (double div = (double) AudioPositionTicks / (double)AudioLengthTicks;) and line 373 in ProgressWindow.cs (if (su.JobType == 1) // audio status update). If those are triggered, step through them until you get an exception. Note the line number of the exception, do the whole thing again, stop stepping one line before the exception and give me a list of the locals please (only local variables of ProgressWindow and StatusUpdate please).
Basically the exception you're reporting here makes no sense.. it looks like you're encoding video but the status update is for an audio job.. needless to say that this will never work.
Another perhaps easier attempt: put a breakpoint on line 272 in VideoEncoder.cs. Dump the contents of the variable su at that point.. that's the StatusUpdate object that gets propagated to the MeGUI and ProgressWindow class, and that's where the exception comes from ultimately. And do you ever get into the catch in VideoEncoder.cs on lines 285 and below?
@molitar: loaded assemblies are usually not info anybody needs, however, all steps taken from the loading of MeGUI until th exception.. that's information you should never leave out, even if it turns out not to be useful.. it's covering all the basics that make a good bug report.
stax76
18th December 2005, 22:01
I'm not a debugging expert but for me the only thing that really works is to configure VS to break immediatelly even if the exception is handled, appears to have many advantages and on top of that some really weird things happened here until I configured VS like that. Of course sometimes a exception can be expected and this is not wanted but on such methods the DebuggerNonUserCodeAttribute can be applied so VS won't break.
On the Debug menu, click Exceptions.
In the Exceptions dialog box, select Thrown for an entire category of exceptions, for example, Common Language Runtime Exceptions.
http://msdn2.microsoft.com/en-us/library/d14azbfh.aspx
klicker4546
19th December 2005, 03:24
Oh man, do we ever get it resolved? :eek:
And I am absolutely sure that it was that line where the exception occurs. So far can see it! I'm not too familiar with debugging and just a beginner with programming in general.
Ok, I will try what you'd wanted me to try. I'll attach two vid-caps of the last debugging session to my next message.
when you step into the method "getFrameNumber(line)", what does happen? If you press F11 when you're on line
su.NbFramesDone = getFrameNumber(line);
Doom9
19th December 2005, 12:45
Oh man, do we ever get it resolved?if there's a way for me to remote access your desktop then I think it would be rather easy. However, if you just gave me the link to your mencoder build, I could compile the latest code on my own to see if anything as funky happens. I'm almost certain su.JobType is equal to 1 on your box, no idea why it happens, but it would explain the exception you're getting.
klicker4546
19th December 2005, 13:49
Ok, I'll download vnc and setup remote access. It would really ease up the whole process. :-) Let me see what I can do. Ok, here's the link to the mencoder build I use.
Mencoder (http://oss.netfarm.it/mplayer/builds/mencoder-k7-cvs-20051213.zip)
if there's a way for me to remote access your desktop then I think it would be rather easy. However, if you just gave me the link to your mencoder build, I could compile the latest code on my own to see if anything as funky happens. I'm almost certain su.JobType is equal to 1 on your box, no idea why it happens, but it would explain the exception you're getting.
Chris Benoit
19th December 2005, 14:40
IS there a way to import a bunch of avs files altoghether?Instead of opening the avs one by one and adding to the queue wouldn't it be better to open a bunch of them at the same time,so they will be queudd altogether?
Doom9
19th December 2005, 14:46
well,it's a pretty big presumtion to assume every source would be encoded exactly the same way..
klicker4546
19th December 2005, 15:12
Hello doom9,
I have set up ultravnc. If you want you can do the debugging on my desktop.
I will send you the rc.key file for a secured connection if you like.
Do you have any instant messenger like ICQ or so?
Please let me know if you wanna go ahead with it.
Edit: I did a litlle more debugging. I am able to get to line 285 and further. So that an exception was catched. I attach a screenshot and a copy of the error message.
Chris Benoit
19th December 2005, 15:13
Well what harm could it be for that option to exist?If someone doesn't need it he's not obligated to use it.
I on the other hand only need avc encoding for psp,and for every file i need to encode i use the psp profile,so it would save me a considerable amount of many if every time i could just open all avs files at once.
So what do you say?
Sharktooth
19th December 2005, 15:22
opening multiple avs files would mean a complete rewrite of the job and settings controls.
dunno if it's worth adding it, since it can lead to some problems too (for example bitrate setup).
Doom9
19th December 2005, 15:27
@Chris: I'm afraid it's not that easy to achieve.. an app is built a certain workflow, and in case of MeGUI, it's load an avisynth script, load a profile / select codec and configure, select the container, press queue, or before pressing queue load the audio file, configure that as well, and go the autoencoding route.
It gets even more complex when you consider the one click encoder.
How would your idea work with all those modes? And keep in mind that you shouldn't break existing workflows while at it.
Chris Benoit
19th December 2005, 16:00
I see,i just asked if ti was possible without having to go to that trouble,but since you say that it needs lots of work and it could result to problems then i gues i'll just have to add manually every .avs.
Thanx for your replies guys.
greggerm
19th December 2005, 23:43
Problem:
I am attempting to use the one-click mode - After MeGUI passes a job to a video encoder (tested with both x264 and mencoder) for a two-pass job, the progress window pops up and no progress is made. The .stats file is created, but remains empty (0kb), and the (x264/mencoder) encoder process appears to do work at 50% processing time (hyperthreaded cpu).
I've left the system in this state overnight when attempting to encode both a 4 minute chapter of a DVD, and an entire DVD itself, but when I wake up in the morning, everything is just as it was - processor use at 50% and no stats. In essence, no progress.
Programs
Megui Full 0.2.3.1023d (tested with previous versions over the past few days)
x264 Full 387E / mplayer 2005.11.23.P4
Avisynth 2.5.6
dgdecode 1.4.5
besweet 1.5b31 +nero AAC
mp4box (downloaded as linked here Friday)
yuvcodecs-1.2
.net 1.1
Settings
I've tried my own settings, but I also tested with the "generic" suite of profiles provided on the forums (v.91?).
Edit: When I attempt to play the AVS file, media player pops up then closes immediately - is this part of the issue?
Edit: I also attempted to run the command line found in the logs FROM the command line - it launches the encoder, gets to the processor id section (SSE, SSE2, etc), and holds there. CRTL-C escapes.
Edit: Edited out the log files and command lines, as it seems that Doom9 has uncovered an issue with One Click Encoding and the resultant D2V file. (Below)
Doom9
19th December 2005, 23:53
Edit: When I attempt to play the AVS file, media player pops up then closes immediately - is this part of the issue?Yes I believe so. Could you recreate the d2v file manually (using dgindex directly, not via megui), make sure you enable force film if megui enabled it (to find that, open the d2v file via notepad and look at the last line.. if it mentions a percentage larger than what is in the settings (95 by default) enable force film in dgindex. Then please post both d2v files so I can have a look at them.. I believe megui does something that corrupts the d2v file and this propagates through the AviSynth script and makes encoding fail.
greggerm
20th December 2005, 00:24
The oneclick D2V file has some extra wording (almost comments) in the first block of information. The dgindex native file does not have that commenting. (Inside the Field_Operation line)
I edited the oneclick one to remove those words, and I was able to open the AVS - and presumably the encode would continue, but I can't quite figure out how to resume an aborted job.
I've attached the two files in a zip for your pleasure.
Hopefully this little hiccup can be addressed - the One Click option is *HUGE* for us newbs who are migrating over from Nero. :)
Edit:
In the interest of speed (seeing as the attachment needs approval), here's the difference I noticed... I cannot guarantee that it's the ONLY difference, but when I removed the extra coding, it was usable in AVS.
MeGUI/One Click Created
Field_Operation=1 (0:None 1:ForcedFILM 2:RawFrames)
DGIndex Native Created
Field_Operation=1
Thanks,
-Greg
Doom9
20th December 2005, 00:54
but I can't quite figure out how to resume an aborted job. Just double click on it.. it goes back to waiting state ;) Thanks for the project files, I'll have a look tomorrow.. it's getting late.
Doom9
20th December 2005, 01:36
aww, crud.. thanks for those d2v files.. they remind me of what I should've fixed a long time ago. I'm pretty sure that if you take this line:
Field_Operation=1 (0:None 1:ForcedFILM 2:RawFrames)
and convert it into
Field_Operation=1
The file should work just fine.
Umm.. which release of MeGUI it is you're using? Turns out that's been long fixed.
greggerm
20th December 2005, 01:48
Yes, removing the extra stuff makes a world of difference. I noticed that running the logged DGIndex command line on it's own creates a clean file, but the resulting file if left to MeGUI has the comments in it.
Using the latest and greatest build posted today by Shark in the Dev thread... 0.2.3.1023D.. is there a different one I should be using?
In my testing with a clean file, I came across a question about the one-click functionality: ...it doesn't... at least for me. :)
I run a one-click job, and manually edit the D2V file as seen above. It runs the audio portion fine, and starts the 1st pass of the video. But it errors immediately when starting the 2nd pass. The logs show some sort of odd calculations, which result in the 2nd pass bitrate to be set at 0. x264 doesn't like this, and errors out.
----------------------------------------------------------------------------------------------------------
job job2-1 has been processed. This job is linked to the next job: job2-2
this series of jobs starts with an audio job and is followed by regular twopass video jobs
The audio job is named job2-1 the first pass job2-2 and the second pass job2-3
The second pass job has a desired final output size of 20480000 bytes and video bitrate of 700 kbit/s
The size of the first audio track is 5787017 bytes
Desired video size after substracting audio size is 14261Setting the desired bitrate of the subsequent video jobs to 0 kbit/s
Next job job2-2 is a video job. encoder commandline:
"C:\Audio and Multimedia\MeGUI\x264\x264.exe" --pass 1 --bitrate 0 --stats "C:\TIJ\VIDEO_TS\VTS_04_1.stats" --bframes 3 --b-pyramid --filter -1,0 --subme 1 --analyse none --me dia --threads 2 --progress --no-psnr --output NUL "C:\TIJ\VIDEO_TS\VTS_04_1.avs"
successfully set up video encoder and callbacks for job job2-2
----------------------------------------------------------------------------------------------------------
Log for job job2-2
avis [info]: 640x272 @ 23.98 fps (8614 frames)
x264 [info]: using cpu capabilities MMX MMXEXT SSE SSE2
x264 [info]: slice I:48 Avg QP:47.44 size: 1546
x264 [info]: slice P:3338 Avg QP:50.98 size: 251
x264 [info]: slice B:5228 Avg QP:50.97 size: 143
x264 [info]: mb I I16..4: 91.4% 0.0% 8.6%
x264 [info]: mb P I16..4: 10.4% 0.0% 0.0% P16..4: 8.0% 0.0% 0.0% 0.0% 0.0% skip:81.5%
x264 [info]: mb B I16..4: 6.1% 0.0% 0.0% B16..8: 18.5% 0.0% 0.0% direct: 0.3% skip:75.2%
x264 [info]: final ratefactor: 231.11
x264 [info]: kb/s:36.9
Actual bitrate after encoding without container overhead: 37.92
----------------------------------------------------------------------------------------------------------
job job2-2 has been processed. This job is linked to the next job: job2-3
Next job job2-3 is a video job. encoder commandline:
"C:\Audio and Multimedia\MeGUI\x264\x264.exe" --pass 2 --bitrate 0 --stats "C:\TIJ\VIDEO_TS\VTS_04_1.stats" --ref 5 --bframes 3 --b-pyramid --filter -1,0 --subme 6 --weightb --trellis 1 --analyse all --8x8dct --threads 2 --progress --no-psnr --output "C:\TIJ\VIDEO_TS\VTS_04_1_Video.mp4" "C:\TIJ\VIDEO_TS\VTS_04_1.avs"
successfully set up video encoder and callbacks for job job2-3
...and then it errors out and stops...
This is with the versions listed a few threads above (all current as of 12/19/05)
Somewhere along the lines, signals are getting crossed and the one click system seems to be getting confused. If I cut n' paste the 2nd job's command line, edit the bitrate and run it in a window, I get a properly created mp4 which I can then mux together.
And with that, I have an additional question - I am looking for the encoder to do it's work targetting a specific bitrate, not file size. Using the "standard" but slower workflow, a box pops up using the AutoEncode mode asking if you want to target the encode to a size, target a bitrate, or target a quality. How can I control these options in a one-click mode? I am leaning on this to take away my "dependancy" on Nero Recode, as it provides you with the ability to set the bitrate independant of any desired size restrictions.
Edit: On Page 10 of the Dev thread (Post 190 (http://forum.doom9.org/showpost.php?p=684806&postcount=190) ), doom9 mentions that the automatic modes are NOT rate based, and are very much "target size" oriented. Unless that has changed, looks like I may be out of luck. While the "full" encoding method may be a bit tedious with the great number of DVD's I want to rip down, perhaps someone can offer up a very smooth workflow to nicely set up a half-dozen DVDs at a time or so...
Thanks for your continued help and pointers,
-Greg
Chris Benoit
20th December 2005, 12:35
Guys can i make some other suggestion for features to add?
A)Can you add the feature off time-start jobs?In order for the queud files to be encoded in a speicified time.
B)Also when you input an avs,then the output should have the same name.For the first avs it does that,but when you put a second the output stays the same.
E.g. you put a.avs and the output automatically becomes a.mp4 but if you put b.avs the output remains b.mp4,so can it become b.mp4 and so on?
P.S.If i have any further suggestions should i address them here or in the megui development discussion?
amango
20th December 2005, 13:30
Feature request:
I encode usually recorded stuff from DVB. For this material it is useful if I could set ranges (start-ending) which frames to encode to cut out advertisement.
Without the cutting-feature I am limited to VirtualDub, so I have to use the VfW-version of x264.... MeGui can only be used for DVD-ripps in his current form (as other apps like Auto Gordion Knot).
buzzqw
20th December 2005, 14:59
trim with cuttermaran/Mpeg2Schnitt
make a d2v project
import d2v to megui
BHH
greggerm
21st December 2005, 00:31
aww, crud.. thanks for those d2v files.. they remind me of what I should've fixed a long time ago. I'm pretty sure that if you take this line:
Field_Operation=1 (0:None 1:ForcedFILM 2:RawFrames)
and convert it into
Field_Operation=1
...
Umm.. which release of MeGUI it is you're using? Turns out that's been long fixed.
Doom9 - just curious - did I stumble upon a bug that was reintroduced into the program, or should I be using another build other than the one I am (Sharktooth's 0.2.3.1023D, as found in the development thread yesterday)
Thanks!
-Greg
Doom9
21st December 2005, 00:49
@amango: once we rewrite audio to no longer use BeSweet, that will be possible, but prior to that there's just no way.. going AviSynth we can accurately cut audio and video and that's what's needed to cut out commercials.
@greggerm: I'm honestly perplexed why this happens, I only have the 0.2.3.1023 source code here right now but that one seems to have the proper code. As x264.nl is currently down I can't check if the very latest source has this problem as well. But the funny thing is that I experienced the same problem (I'm not sure about the d2v containing the wrong contents.. I never checked) with the build on my HD (an older one).. and that one seems to have the proper code as well so I need to investigate this a bit more, but with the codec comparison I have my hands full.
P.S.If i have any further suggestions should i address them here or in the megui development discussion?Here please
A)Can you add the feature off time-start jobs?In order for the queud files to be encoded in a speicified time.Can you give me a reason not to start them immediately?
Doom9
21st December 2005, 01:03
well.. I found the dgindex bug alright, the problem is it was fixed when I was making the indexer more flexible and copied code around.. I was still using the code in the old location and fixed that, so once I started using the code at the new location, that one didn't include the fix. Somebody needs to change line
208 in DGIndexer.cs to
sw.WriteLine("Field_Operation=1");. And if the method public static void applyForceFilm(string fileName)is still in VideoUtil.cs, it can be safely removed (I hope.. I can't download the latest sources to compare with what I have and see if it compiles).
stax76
21st December 2005, 01:19
@amango
The available MPEG-2 cutters "don't seem to cut it" so until it's supported by MeGUI or StaxRip maybe you can generate your script using AVSEdit. I already wanted to start working on it as you and some others requested it but was scared of because the required changes will have rippling effects all over the application.
greggerm
21st December 2005, 03:37
well.. I found the dgindex bug alright, the problem is it was fixed when I was making the indexer more flexible and copied code around.. I was still using the code in the old location and fixed that, so once I started using the code at the new location, that one didn't include the fix. Somebody needs to change line...
I take it I'd need development tools in order to compile with that change on my own. :)
I'll sit tight and watch for the next build and hope it's cleaned up in there.
THANKS for your effort in weeding that out!
-Greg
Sharktooth
21st December 2005, 03:52
well.. I found the dgindex bug alright, the problem is it was fixed when I was making the indexer more flexible and copied code around.. I was still using the code in the old location and fixed that, so once I started using the code at the new location, that one didn't include the fix. Somebody needs to change line
208 in DGIndexer.cs to
sw.WriteLine("Field_Operation=1");. And if the method public static void applyForceFilm(string fileName)is still in VideoUtil.cs, it can be safely removed (I hope.. I can't download the latest sources to compare with what I have and see if it compiles).
I'll do it as soon as files.x264.nl is back online...
EDIT: done. check the development thread. Sources and Bins are available.
greggerm
21st December 2005, 04:35
EDIT: done. check the development thread. Sources and Bins are available.
Schweet - fetched - tested - works!
MeGUI operational question -
What's the parallel setting between MeGUI and Nero Recode for the Nero-branded "Psychovisual Enhancements" (the things that compress dark scenes more, theoretically savings space by sacrificing dark details). I'd like to tweak the settings a touch in MeGUI/x264 - I've been using Nero as a crutch, so I have to learn the REAL settings now.
Sharktooth
21st December 2005, 04:37
x264 has no "real" psy enanchments yet.
sh0dan
22nd December 2005, 09:24
Would it be possible for any of you put up a mirror somewhere. I haven't been able to download the binaries for more than a day. Very frustrating! :angry:
Sharktooth
22nd December 2005, 14:39
Would it be possible for any of you put up a mirror somewhere. I haven't been able to download the binaries for more than a day. Very frustrating! :angry:
a mirror is already provided. check this post: http://forum.doom9.org/showthread.php?p=754913#post754913
Paul Atreides
22nd December 2005, 20:56
nsis 2.12 could be use by Sharktooth to make x264 package
charleski
23rd December 2005, 05:25
@amango
The available MPEG-2 cutters "don't seem to cut it"
The vast majority of my encodes are DVB MPEG-2s cut and demuxed with ProjectX or PVAstrumento/cuttermaran. I have no problems with them in meGUI whatsoever.
Introducing editing functions into meGUi would hugely add to the complexity (as you need to maintain sync with the audio) and is completely unessecary as there are other tools that do the job.
stax76
23rd December 2005, 11:42
Maybe those apps have improved but compared to the application I use to cut I found those apps much of a pain last time I've tried.
nixo
27th December 2005, 10:31
Is it possible in MeGui to do a fixed quant XviD encode using a quantizer that isn't a whole number?
It seems to work fine from command line but I'm not having a lot of success in MeGui.
sh0dan
27th December 2005, 10:46
a mirror is already provided. check this post: http://forum.doom9.org/showthread.php?p=754913#post754913
I cannot see the Full Package anywhere - and it's still down.
Doom9
27th December 2005, 12:59
Is it possible in MeGui to do a fixed quant XviD encode using a quantizer that isn't a whole number?No (well, yes but doing that is only for programmers). And I'm pretty sure as far as XviD or other ASP codecs are concerned, you only have integer quantizers.
@sh0dan: I've added a link to the temporary mirror.
stax76
27th December 2005, 13:11
No (well, yes but doing that is only for programmers). And I'm pretty sure as far as XviD or other ASP codecs are concerned, you only have integer quantizers.
Don't know about mencoder but VFW codecs don't need integer, for DivX there is quite a bit difference beween 3 and 4, I tend to use XviD at 2.5, iirc it compares to DivX at 3.
Doom9
27th December 2005, 13:15
and what would 2.5 result in? 50% 2 and 50% 3? Don't tell me there's 2.5 quantizer I'm unaware off (and for that matter the XviD status window)
stax76
27th December 2005, 13:35
I just recently started to play with advanced codec settings so I'm pretty much clueless. I made however a quick XviD test, there appear to be a file size/quality difference:
q4 = 2.89 MB
q3.5 = 3.75 MB
q3 = 4.13 MB
q2.5 = 6.28 MB
q2 = 6.76 MB
akupenguin
27th December 2005, 13:39
Yes, XviD dithers the quants, 50% q2 and 50% q3.
lavc allows a qscale=2.5, and really does it (rounds to the nearest integer quant, but tweaks RD and trellis to get a quality point halfway between qscale=2 and qscale=3).
stax: Notice how your q2.5 is nowhere near halfway between q2 and q3. That's because the q3 half of the frames are lower quality, but most of the details missed there just have to be encoded in the next q2 frame. So overall you don't save many bits, and just lose a little compression efficiency.
nixo
27th December 2005, 13:56
AutoGK uses this approach when you choose 'Target Quality' mode. 75% quality equals quant 2.67, 67% equals quant 2.99 and so forth... It's really nice to do 1-pass encodes when your hardware isn't exactly state-of-the-art and file size isn't an issue.
I've been doing 2.67 quant encodes through VDubMod for a while and I just thought I'd ask since MeGUI looks really good to me... :-)
Doom9
27th December 2005, 14:12
well, it's no problem changing those up/down boxes. I don't see the sense of 1 pass encoding *at all* but it's no problem to make the change.
nixo
27th December 2005, 14:14
That'd be great. Thanks!
stax76
27th December 2005, 14:52
I use always single pass quality mode. Regarding multipass vs quality mode I started a thread recently. While there were great answers and help I'm still much interested in other peoples opinion on the topic, it can be found here:
http://forum.doom9.org/showthread.php?t=104548
Sharktooth
27th December 2005, 15:04
nsis 2.12 could be use by Sharktooth to make x264 package
got it.
I cannot see the Full Package anywhere - and it's still down.
coz thats no longer the latest version. get this: http://www.webalice.it/f.corriga/megui/megui_0.2.3.1024.7z
and the sources are here: http://www.webalice.it/f.corriga/megui/MeGUI-src.ChngdFls_0.2.3.1024.rar
smok3
27th December 2005, 15:09
I use always single pass quality mode. Regarding multipass vs quality mode I started a thread recently. While there were great answers and help I'm still much interested in other peoples opinion on the topic, it can be found here:
http://forum.doom9.org/showthread.php?t=104548
what command line exactly are you using for x264 quality mode?
how do you calculate the proper q amount (based on input resolution?)?
stax76
27th December 2005, 15:51
what command line exactly are you using for x264 quality mode?
how do you calculate the proper q amount (based on input resolution?)?
Nixo had requested it for XviD, I'm not using AVC. There is a reason why I should educate myself regarding x264 and want to do so pretty soon.
smok3
28th December 2005, 00:11
right, actually my 2nd question 'how do you calculate the proper q amount' does not make any sense (just figured that out few minutes after posting...)
Inventive Software
9th January 2006, 21:05
*Bump*
berrinam
9th January 2006, 22:55
Does this thread really need to be revived? For all those not yet aware, MeGUI now has a home on Sourceforge: http://sourceforge.net/projects/megui
Bugs should be posted on the MeGUI Bug-Report Thread (http://forum.doom9.org/showthread.php?t=105160) and feature requests should be posted on the MeGUI Feature Request Thread (http://forum.doom9.org/showthread.php?t=105162). As a result, there doesn't seem much need for this thread, does there?
Morte66
11th January 2006, 10:54
Does this thread really need to be revived? For all those not yet aware, MeGUI now has a home on Sourceforge: http://sourceforge.net/projects/megui
Bugs should be posted on the MeGUI Bug-Report Thread (http://forum.doom9.org/showthread.php?t=105160) and feature requests should be posted on the MeGUI Feature Request Thread (http://forum.doom9.org/showthread.php?t=105162). As a result, there doesn't seem much need for this thread, does there?
Some sort of "User" thread would be handy for people who use MeGUI without being part of the development team. Maybe a sticky. It should cover where to download it, how to install it, what else you need; and it would point to the bug/dev/request/x264 threads. That should keep things going until MeGUI settles down and gets a Guide and download link on the Doom9 static site.
It took me the best part of a day to find MeGUI and get it working for DVD backup, and I still ended up unknowingly using an old build. :)
TNHitokiRi
14th January 2006, 20:27
i wish i had enough patience to read through the 50 pages, im pretty sure that this problem has been addressed. in the first few pages, Rash had a problem with loading a AVS file.
http://img408.imageshack.us/my.php?image=untitled16px.png
thats the exact error i get. The AVS works fine in virtualdub(and mod), and in all video players. I use ffdshow (libavcodec) to get it to work in virtualdub.
I think the problem could be related to the fact that im on Windows x64 edition. Thanks
lexor
14th January 2006, 21:19
I don't want to start a new thread for this little question, so I'll add to this one.
Where is the menu bar? namely where is bitrate calculator? I can't find it in config dialog either. Where did it move?
this is what I see: http://img429.imageshack.us/img429/2584/meguimain8sv.jpg (latest Shartooth's build)
Mutant_Fruit
14th January 2006, 21:20
use MeGUI full.
lexor
14th January 2006, 21:23
Woah? But it was no problem before. Do I really need full megui for bitrate calc now?
/edit: oops, just noticed ST's explanation in bug report thread :) nvm
berrinam
14th January 2006, 23:26
Guys, why are you reporting bugs here? There is a dedicated Bug-Reporting thread for exactly that. Why come back here? The bug report thread even has a list of all known bugs on the first page, to avoid you having to wade through all the pages.
If you want to get help with your bugs, please report them in the right place.
lexor
15th January 2006, 04:05
If you want to get help with your bugs, please report them in the right place.
sorry, I didn't realise what I was having is a bug, I read in the other thread about options redesign, I thought calc moved somewhere and I couldn't find it.
ggab
15th January 2006, 09:25
(r394A) Updated MeGUI (ver 0.2.3.1030) and AVC2AVI GUI with .NET 2.0 binaries.
(r394) Updated Installer. Added MeGUI Context Sensitive help (patch by mutant_fruit).
what is the last version that can run with .net v1.1 (i don't have the new 2.0 one yet)?
r394?
if yes, is there any URL link to download it?
thanks :)
Doom9
15th January 2006, 11:52
r394?don't confuse x264 with MeGUI.. you can use an old MeGUI version with a new x264 build and vice versa.. obviously if x264 is newer than MeGUI then you may not have all x264 options available.. MeGUI needs to be updated to support new x264 options.
Just download the 2.0 runtime.. you can have both runtimes in parallel and there are no negative sideffects whatsoever (I have both at work, with two development environments, and I wouldn't recommend it if I weren't absolutely sure that it would have any negative effects.. I couldn't risk that with my machine at work).
We don't keep old builds around.. it's up to you to do that, or check out the source code by a specific data and do your own builds.. you are unlikely to find a dev willing to spend time to worry about oudated builds, and the 2.0 move has various advantages for us, nontheless the one that those who do not have the full blown Visual Studio IDE (which is not cheap), can still participate using the free of charge Visual Studio Express.
max-holz
15th January 2006, 16:52
I want understand one thing, why 0.2.3.2024 modifies Sharktooth profiles and reset all the application path?
I think that since this project had became public with cvs there has been a big confusion.
Doom9
15th January 2006, 17:03
why 0.2.3.2024 modifies Sharktooth profilesHuh? There have been no changes in Profile, VideoProfile or VideoCodecSettings and those are the objects that have something to do with profiles. But MeGUI always have and always will write all profiles to your HD when you exit.. so these files are updated each time you exit megui. But as I said, it has always been like that ever since MeGUI got profiles.
and reset all the application path?It doesn't. But the refactoring changes the format of the settings file so it has to be recreated.. since your settings file can no longer be opened (This is no different than you having to redo dgindex projects every now and then), it means you lose your configuration. It takes you about 1 minute to redo that so I don't see the problem.
Somewhere in between my two latest releases (prior to the 2024) jobs became incompatible with old ones.. I heard nobody complaining..
max-holz
15th January 2006, 17:11
It doesn't. But the refactoring changes the format of the settings file so it has to be recreated.. since your settings file can no longer be opened (This is no different than you having to redo dgindex projects every now and then), it means you lose your configuration. It takes you about 1 minute to redo that so I don't see the problem.
Somewhere in between my two latest releases (prior to the 2024) jobs became incompatible with old ones.. I heard nobody complaining..
Why that? Why I must recreate all the general settings every time I reopen the application, what's the meaning of that? In every application I set my general settings and then they are saved till I decided to change them.
Doom9
15th January 2006, 17:18
Why I must recreate all the general settings every time I reopen the applicationYou don't.. but refactoring means making changes to existing code.. for instance the settings object.. so old ones cannot be opened. This has happened once in I don't know how many builds.. it's been months upon months with no change. I think it's rather rude to whine when you get a free software, constant improvements and all that free of charge. In other projects, like DGIndex for instance, compatibility is broken a lot more frequently. There are just two ways to make necessary changes: 1) bending over backwards to keep the whiners happy, or 2) make your improvements properly without regard for compatibility, and that every now and then breaks something. As another example, it is not uncommong for VfW codecs to require a "load defaults" when you install a new build.
The Link
15th January 2006, 17:22
Why that? Why I must recreate all the general settings every time I reopen the application, what's the meaning of that? In every application I set my general settings and then they are saved till I decided to change them.
??? I just had to go thru the settings for one time after the upgrade. The settings were saved and are available every time I restart MeGUI.
max-holz
15th January 2006, 17:22
Ok Doom9
ggab
16th January 2006, 00:21
thks doom9 for the tips :)
Hyper Shinchan
16th January 2006, 23:39
I haven't really understood if .net 2.0 works on XP SP1 (why are you using it? Well, I can't update it, that's all, for various reasons).
It seems to work, but it shows badly the frame speed. It says something like 1000 fps, when it's 10.00 fps. But it seems to be the only problem, I hope (but maybe I'll start using command-line, also if I need to make huge batch).
Doom9
16th January 2006, 23:52
It says something like 1000 fps, when it's 10.00 fps.using an old release? That was fixed in 2024.
I haven't really understood if .net 2.0 works on XP SP1Yes it does.. it works even on old and crappy systems. And using XP without SP2 is like having sex with a prostitute and not using a condom.. very risky. And there's no reason why you couldn't install the 2.0 runtime.. it works side by side with the 1.1 runtime.. unlike java where you have to tell an app which runtime to use, it's all done automatically in .NET.. any .NET program will look for the version it was compiled again.. it will run in newer versions as well, but it'll pick the closest match.. all your .NET 1.1 programs will keep on using the old runtime, so they will work exactly as before.
And I do hate repeating myself.. I've been pointing out all the .NET 2.0 facts before. I have a dual installation at work.. and there's no way I can risk breaking anything there.. a lot depends on me being able to maintain code made for the old runtime.
vBulletin® v3.8.5, Copyright ©2000-2012, Jelsoft Enterprises Ltd.