Log in

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 13 14 15 16 17 18 [19] 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63

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?