Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion.

Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules.

 

Go Back   Doom9's Forum > Video Encoding > MPEG-4 Encoder GUIs

Reply
 
Thread Tools Search this Thread Display Modes
Old 26th May 2015, 19:30   #7921  |  Link
ryszardzonk
Registered User
 
Join Date: Jan 2013
Posts: 37
IMHO incomplete does not equal obsolete. If fact it works well for quite a few AVC DVB-S interlaced streams and as far as I am concerned it should not be removed unless it is some burden to support it in new versions. Is it?
ryszardzonk is offline   Reply With Quote
Old 26th May 2015, 20:36   #7922  |  Link
Zathor
Registered User
 
Join Date: Nov 2009
Posts: 2,405
I understand why you want to have it back. Neverthless based on the current information which I have I will not reintroduce it. So I will never say never but it is very unlikely.

If you still want to use DGAVCDec with MeGUI you have at least two options:
- revert to an older version with support (e.g. last stable build) and disable updating of MeGUI itself (not all tools, only MeGUI/core)
- create the AVS file outside of the recent MeGUI (e.g. with DGAVCDec if it has the template support or with this older MeGUI version) and load the AVS file
(- revert the change and compile a version of your own)
Zathor is offline   Reply With Quote
Old 4th July 2015, 08:12   #7923  |  Link
hello_hello
Registered User
 
Join Date: Mar 2011
Posts: 4,823
Could someone tell me if the behaviour of Xvid's rate control in MeGUI's Xvid encoder configuration is correct, or makes sense?

Best as I've been able to find out, the I-Frame boost setting is normally described as "I-frame boost (%)" and the default is 10. I assume this gives I-frames a 10% boost and the default would be -kboost 10.
http://www.gromkov.com/faq/conversion/xvid_options.html

MeGUI describes the setting as "I-Frame Boost 10x(%)" and the default is 100. This also gets MeGUI to add -kboost 100 to the command line.

My confusion comes from the fact that changing the I-Frame boost setting in the encoder configuration to 10 rather than 100 removes the -kboost option from the command line, which usually happens when the encoder configuration is using a default setting, so I'm not sure which is the default. -kboost 100 when you click the "load defaults" button and select Automated 2 Pass, or -kboost 10?
Does MeGUI's description of "I-Frame Boost 10x(%)" make sense?

The other parts of the rate control that seem off to me are the overflow percentages. The default values appear to be 5% for each. MeGUI changes those values to 10% when one of the profiles is selected (ie Home Theatre) which is understandable if the default for each profile is 10%, but why does it also do the same for the Custom profile? If you select automated 2 pass and the unrestricted profile the overflow settings are 5%, but switching to the Custom profile changes them to 10% while not permitting them to be lowered to the defaults again in the GUI. As far as I can see the only difference between the Unrestricted and Custom profiles should be the Custom profile allowing you to set vbv restrictions.

One last question. Is the HSV Masking "variance" setting the current method of enabling the Dark Shikari VAQ patch?
http://forum.doom9.org/showthread.php?t=135093

Edit: Two more questions.
MeGUI lets you select RAWASP as the output type for Xvid encoding. Should that actually work? At the moment the output is M4V.
When does the "packed bitstream" option come into effect? When the video stream is first muxed as an AVI? If so is that why it's having no effect now because the output is M4V and ffmpeg doesn't support packed bitstreams? (I remember reading something about the ffmpeg developers considering packed bitstreams to be evil) I'm not sure how vital having a packed bitstream is. Most of my Xvid encodes were created using AutoGK and I never had problems playing AVIs with a packed bitstream using AVI capable DVD players or Bluray players etc.

Thanks.

Last edited by hello_hello; 5th July 2015 at 09:46.
hello_hello is offline   Reply With Quote
Old 5th July 2015, 17:03   #7924  |  Link
Zathor
Registered User
 
Join Date: Nov 2009
Posts: 2,405
I never use Xvid myself so I cannot help here. But I will have a look at the "load defaults". I thought I have adjusted them properly but it seems I missed kboost.
Zathor is offline   Reply With Quote
Old 6th July 2015, 05:07   #7925  |  Link
hello_hello
Registered User
 
Join Date: Mar 2011
Posts: 4,823
Cheers. I think if the kboost default is wrong, it's been wrong for a long time, but as I hardly use Xvid myself I'd not gotten around to asking about it.
The way the setting is labelled in the GUI as "I-Frame Boost 10x(%)" is probably wrong. At least it doesn't make sense to me. According to the -help info the default for -kboost is 10.

The overflow defaults are 5% but I don't know whether they change when using one of the profiles. I did a bit of Googling though and couldn't find any evidence to suggest they'd need to. The way I understand it the overflow percentages tell the encoder how aggressively and how much it can pad the bitrate, or reduce the bitrate, if it thinks it's not going to hit the specified bitrate/file size. I'm not sure why it'd need to do it more aggressively by default when one of the profiles is selected. Anyone with the VFW version of Xvid installed able to check if selecting a profile changes any of the other settings automatically, and if so, which ones?

A bit of research seems to indicate m4v is used for rawasp streams. I didn't know that. I thought it was just another name for the MP4 container.

More research seems to indicate the packed bitstream option (while still available according to -help) would only apply to AVI output. It seems to have no effect when the output is m4v, so I guess as now MeGUI won't let Xvid write directly to AVI, it makes the option obsolete in the encoder configuration. From what I've been able to ascertain, ffmpeg won't mux packed bitstreams anyway. It'll always unpack them first. It also appears MP4 doesn't support packed bitstreams at all. (Although for the record, it seems MKV does. MKVCleaver will remux an AVI with either a packed or unpacked bitstream and remux it as it is). It looks like the packed bitstream option should be removed from the GUI.
hello_hello is offline   Reply With Quote
Old 6th July 2015, 07:55   #7926  |  Link
Kurtnoise
Swallowed in the Sea
 
Kurtnoise's Avatar
 
Join Date: Oct 2002
Location: Aix-en-Provence, France
Posts: 5,191
AVI and Xvid support should be dropped imo...come on, it's 2015 guys !!!
Kurtnoise is offline   Reply With Quote
Old 6th July 2015, 08:35   #7927  |  Link
hello_hello
Registered User
 
Join Date: Mar 2011
Posts: 4,823
I have a calendar and I rarely use Xvid for encoding myself these days, but it's still nice to have a choice. Would Xvid support involve much work for the developer(s) given the recent updates to Xvid have been the first ones in quite a long time?
hello_hello is offline   Reply With Quote
Old 6th July 2015, 08:49   #7928  |  Link
Barough
Registered User
 
Barough's Avatar
 
Join Date: Feb 2007
Location: Sweden
Posts: 480
It's always good 2 have options available to ya. Just because Xvid isn't a top format any longer doesn't mean that it's not being used any longer.

Regarding AVI-Mux GUI..... im pretty sure it have the option to write Open-DML files so i dont understand why FFmpeg is being used to do the muxing or have i missed something regarding the use of FFmpeg
Barough is offline   Reply With Quote
Old 7th July 2015, 01:26   #7929  |  Link
hello_hello
Registered User
 
Join Date: Mar 2011
Posts: 4,823
Quote:
Originally Posted by Barough View Post
Regarding AVI-Mux GUI..... im pretty sure it have the option to write Open-DML files so i dont understand why FFmpeg is being used to do the muxing or have i missed something regarding the use of FFmpeg
It appears the new Xvid won't write AVI files larger than 2GB, so to get around that the output is m4v which is then muxed as AVI by ffmpeg (AVI-Mux GUI won't open m4v) and then again by AVI-Mux GUI to add the audio as required.
hello_hello is offline   Reply With Quote
Old 7th July 2015, 06:57   #7930  |  Link
Barough
Registered User
 
Barough's Avatar
 
Join Date: Feb 2007
Location: Sweden
Posts: 480
Quote:
Originally Posted by hello_hello View Post
It appears the new Xvid won't write AVI files larger than 2GB, so to get around that the output is m4v which is then muxed as AVI by ffmpeg (AVI-Mux GUI won't open m4v) and then again by AVI-Mux GUI to add the audio as required.
Ok, then i know. Haven't tested encoding any big Xvid's here in a 'while'.
Barough is offline   Reply With Quote
Old 7th July 2015, 06:57   #7931  |  Link
LigH
German doom9/Gleitz SuMo
 
LigH's Avatar
 
Join Date: Oct 2001
Location: Germany, rural Altmark
Posts: 6,753
That means, in fact xvid_encraw should support OpenDML AVI output for optimal results. Or MeGUI may prefer to use ffmpeg with libxvid instead to encode, this way an AVI may already contain the correct FourCCs.
__________________

New German Gleitz board
MediaFire: x264 | x265 | VPx | AOM | Xvid

Last edited by LigH; 7th July 2015 at 07:02.
LigH is offline   Reply With Quote
Old 8th July 2015, 21:03   #7932  |  Link
Zathor
Registered User
 
Join Date: Nov 2009
Posts: 2,405
Quote:
Originally Posted by LigH View Post
Or MeGUI may prefer to use ffmpeg with libxvid instead to encode[...]
I have thought about that during the switch to Xvid 1.3.x. But it seems there is no mapping table available for xvid_encraw --> ffmpeg settings. I also fear that some settings wont be available at all.

Last edited by Zathor; 9th July 2015 at 13:00.
Zathor is offline   Reply With Quote
Old 9th July 2015, 08:12   #7933  |  Link
kalehrl
Registered User
 
Join Date: Feb 2011
Posts: 331
I believe for a short time libxvid was available in StaxRip and I tried it but could not figure out what settings to use to get similar quality/size ratio as with xvid_encraw in MeGUI.
In my opinion, xvid_encraw is far superior to libxvid.
kalehrl is offline   Reply With Quote
Old 9th July 2015, 08:30   #7934  |  Link
LigH
German doom9/Gleitz SuMo
 
LigH's Avatar
 
Join Date: Oct 2001
Location: Germany, rural Altmark
Posts: 6,753
But in fact, xvid_encraw as such is just a rather simple demo encoder, mainly a CLI frontend. Analyzing its sources may enlighten you about the available parameters for applications using libxvid.
__

I was just looking for MKV support and found that, when a symbol is enabled, a file "matroska.cpp" would have to be included. But it seems that it does not exist, not even on SVN. So it was probably never programmed yet?
__________________

New German Gleitz board
MediaFire: x264 | x265 | VPx | AOM | Xvid

Last edited by LigH; 9th July 2015 at 08:40.
LigH is offline   Reply With Quote
Old 18th July 2015, 10:01   #7935  |  Link
LouieChuckyMerry
Registered User
 
LouieChuckyMerry's Avatar
 
Join Date: Feb 2014
Posts: 355
Hello, and Happy Saturday! I don't know if this problem is specific to MeGUI, but as that's what I'm using I thought I'd ask here. When I'm using the following basic script:

Code:
LoadPlugin("F:\[0]StandAloneApps\MeGUI-2500(core)2443(data)0.3.5(libs)[Portable]\tools\DGIndexNV\DGDecodeNV.dll")
DGSource("SourcePath")
Trim(0,FirstHalfNumberOfFramesFromPreviewWindow)
SMDegrain(TR=3,ThSAD=500,RefineMotion=True,Plane=0,Chroma=False,Lsb=True,Lsb_Out=True)
F=DitherPost(Mode=-1)
S=F.FastLineDarkenMod()
D=MT_MakeDiff(S,F).Dither_Convert_8_To_16()
Dither_Add16(Last,D,Dif=True,U=2,V=2)
GradFun3(Radius=16,Lsb_In=True,Lsb=True)
# DitherPost()
Dither_Out()
MeGUI's preview window opens and, using the frame numbers at the top of the window, I can create two scripts (eg. ThisEncode-Part1.avs and ThisEncode-Part2.avs) with Trim(0,FirstHalfNumberOfFramesFromPreviewWindow) and Trim(FirstHalfNumberOfFramesFromPreviewWindow+1,0) so as to have two equal halves. When I open either of these with MeGUI's preview window the number of frames for each half is correct. However, with the following script:

Code:
LoadPlugin("F:\[0]StandAloneApps\MeGUI-2500(core)2443(data)0.3.5(libs)[Portable]\tools\DGIndexNV\DGDecodeNV.dll")
DGSource("SourcePath")
Trim(0,FirstHalfNumberOfFramesFromPreviewWindow)
### Deinterlace-Match Fields-Decimate ###
LoadPlugin("F:\[0]StandAloneApps\MeGUI-2500(core)2443(data)0.3.5(libs)[Portable]\tools\avisynth_plugin\TIVTC.dll")
Function FieldMatch(Clip C) {
  Global PP = C.DuplicateFrame(0)
  Global CC = C
  Global NN = C.DeleteFrame(0)
  P2 = PP.SeparateFields()
  C2 = CC.SeparateFields()
  N2 = NN.SeparateFields()
  Global PC = Interleave(P2.SelectEven(),C2.SelectOdd()).Weave()
  Global CP = Interleave(C2.SelectEven(),P2.SelectOdd()).Weave()
  Global CN = Interleave(C2.SelectEven(),N2.SelectOdd()).Weave()
  Global NC = Interleave(N2.SelectEven(),C2.SelectOdd()).Weave()
  Global Deint = QTGMC(CC).SelectEven()
  Return ScriptClip(CC, \
    "!CC.IsCombedTIVTC(CThresh=12,Chroma=True,BlockX=16,BlockY=32) ? CC : " + \
    "!NN.IsCombedTIVTC(CThresh=12,Chroma=True,BlockX=16,BlockY=32) ? NN : " + \
    "!CN.IsCombedTIVTC(CThresh=12,Chroma=True,BlockX=16,BlockY=32) ? CN : " + \
    "!NC.IsCombedTIVTC(CThresh=12,Chroma=True,BlockX=16,BlockY=32) ? NC : " + \
    "!PP.IsCombedTIVTC(CThresh=12,Chroma=True,BlockX=16,BlockY=32) ? PP : " + \
    "!CP.IsCombedTIVTC(CThresh=12,Chroma=True,BlockX=16,BlockY=32) ? CP : " + \
    "!PC.IsCombedTIVTC(CThresh=12,Chroma=True,BlockX=16,BlockY=32) ? PC : Deint")
}
TFM(Order=-1,Mode=5,PP=2,Clip2=FieldMatch(),Slow=2,MChroma=False,Ubsco=False,CThresh=12,Chroma=True)
TDecimate(Mode=1)
### Fix Line-Doubled Fields ###
NNEDI3(Field=-2)
Merge(SelectEven(),SelectOdd())
### Reduce Shimmering ###
QTGMC(InputType=1)
### Stabilize ###
Stab(Mirror=15)
### Crop ###
Crop(8,0,-8,0)
### Gibbs Noise Block ###
Edge=MT_Edge("prewitt",ThY1=20,ThY2=40).RemoveGrain(17)
Mask=MT_Logic(Edge.MT_Expand().MT_Expand().MT_Expand().MT_Expand(),Edge.MT_Inflate().MT_Inpand(),"xor")
MT_Merge(DFTTest(),Mask,Luma=True)
### Overall Temporal Denoise ###
SMDegrain(TR=2,ThSAD=400,ContraSharp=True,RefineMotion=True,Plane=0,Lsb=True,Lsb_Out=True,PreFilter=2,Chroma=False)
### Resize ###
LinearResize(640,480,Lsb_In=True,Lsb_Out=True)
### Darken-Thin Lines ###
F=DitherPost(Mode=-1)
S=F.FastLineDarkenMod(Strength=20,Prot=6).aWarpSharp2(Blur=4,Type=1,Depth=3,Chroma=2)
D=MT_MakeDiff(S,F).Dither_Convert_8_To_16()
Dither_Add16(Last,D,Dif=True,U=2,V=2)
### Deband ###
GradFun3(thR=0.55,SMode=2,Lsb_In=True,Lsb=True,StaticNoise=True)
### Preview Source OR Send 16-bit Output To x264 10-bit ###
# DitherPost()
Dither_Out()
opened in MeGUI's preview window, if I use the frame numbers at the top of the preview window to make two scripts as above, then open each of these in MeGUI's preview window, the number of frames is never correct. That is, each script doesn't have half the frames (as I'd expect), but instead one "half" might have a third of the frames while the other "half" has two-thirds of the frames.

Please, would someone explain to me why this happens? Also, is there any way to correct this, to make the preview for that script frame-accurate? Thanks for your time .

Last edited by LouieChuckyMerry; 20th July 2015 at 03:28. Reason: AddedTrim()
LouieChuckyMerry is offline   Reply With Quote
Old 18th July 2015, 14:06   #7936  |  Link
hello_hello
Registered User
 
Join Date: Mar 2011
Posts: 4,823
Where are you putting Trim()?
If there's a frame rate change due to decimation etc and you add Trim, you'd want to add it before the frame rate change otherwise there'll be a different number of frames and your Trim starting in the middle won't be in the middle any more. Or change the frames you're using with Trim() if the frame count changes due to decimation, but it's probably easier just to put it earlier in the script.

Question.... Does QTGMC and SMDegrain in the same script do a better job removing noise than just letting QTGMC do the denoising?

Something like QTGMC(InputType=1, Ezdenoise=1.5) and whatever other settings you want to play with. I ask, because QTGMC stabilises everything, including any noise it doesn't remove, and it seems to me that'd make SMDegrain less effective. I've never used them both in the same script myself, it's just a thought....

Last edited by hello_hello; 18th July 2015 at 14:13.
hello_hello is offline   Reply With Quote
Old 19th July 2015, 09:06   #7937  |  Link
LouieChuckyMerry
Registered User
 
LouieChuckyMerry's Avatar
 
Join Date: Feb 2014
Posts: 355
Quote:
Originally Posted by hello_hello View Post
Where are you putting Trim()?
Oops, that would certainly help you answer my question (I've edited the scripts accordingly) . As you can see Trim is before the decimation, which is why I'm more confused than usual.


Quote:
Originally Posted by hello_hello View Post
Question.... Does QTGMC and SMDegrain in the same script do a better job removing noise than just letting QTGMC do the denoising?

Something like QTGMC(InputType=1, Ezdenoise=1.5) and whatever other settings you want to play with. I ask, because QTGMC stabilises everything, including any noise it doesn't remove, and it seems to me that'd make SMDegrain less effective. I've never used them both in the same script myself, it's just a thought....
That's a good question. I actually ran some tests with the above script but turning off SMDegrain's denoising (TR=0, ThSAD=0) and noticed no difference in the output video on my 14" 1600x900 laptop screen. I'm using SMDegrain here more for its other features, the high bit depth pipeline, motion vectors, and prefilter, and kept the mild denoising settings (TR=2, ThSAD=400) out of paranoia, er, because they were suggested by the author when (s)he was kind enough to look at a test clip for me (to be fair, this was recommended before the QTGMC line was added for the shimmering).

I know the script seems out of hand--some might say I'm suffering from filteritis --but I've tested it everywhichway and removing even a single filter has a very noticeable adverse effect on the output video. This S5.E21-TestClip is a great example. Run this clip with the above script and check out the results, I think they're amazing given the source's poor quality.
LouieChuckyMerry is offline   Reply With Quote
Old 19th July 2015, 10:47   #7938  |  Link
hello_hello
Registered User
 
Join Date: Mar 2011
Posts: 4,823
Are you sure you're using half the frames according to the preview before adding any decimation to the script and previewing that, which will change the total number of frames displayed by the preview? I can't think of a reason why it shouldn't work.

I've got to spend some time in the real world. I'll check out the sample later.
hello_hello is offline   Reply With Quote
Old 20th July 2015, 03:26   #7939  |  Link
LouieChuckyMerry
Registered User
 
LouieChuckyMerry's Avatar
 
Join Date: Feb 2014
Posts: 355
Quote:
Originally Posted by hello_hello View Post
Are you sure you're using half the frames according to the preview before adding any decimation to the script and previewing that, which will change the total number of frames displayed by the preview? I can't think of a reason why it shouldn't work.
I've triple-checked with mulitiple 29.970 FPS sources. I:

1) Create .dgi and .avs (with the above script) files with DGIndexNV.

2) Drag the .avs file onto the MeGUI GUI.

3) Find the next scene change and note the frame number at the top of the preview window.

4) Make two copies of the .avs file, appending the names with "Part1" and "Part2", then add "Trim(0,LastFrameOfFirstScene)" to Part1 and "Trim(FirstFrameOfSecondScene,0)" to Part2, both immediately after the "Source" line.

5) Open each in MeGUI and note that they're not of equal size .

Perhaps I'm missing something (wouldn't be the first time). Do you think this is a bug or just a vagary of the script?
LouieChuckyMerry is offline   Reply With Quote
Old 20th July 2015, 08:11   #7940  |  Link
hello_hello
Registered User
 
Join Date: Mar 2011
Posts: 4,823
It still sounds like you're going about it the wrong way. If you open a 29.970 video with (as an example) 100,000 frames, after normal TDecimate() you'd be left with 80,000 frames.
So if you put Trim() first (directly after the source), you'd need to use Trim(0,50000) for the first script and Trim(50001,0) for the second script.
If you put Trim() at the end, it'd be Trim(0,40000) for the first script and Trim(40001,0) for the second.

From the way you describe it you're finding the "after decimation Trim", but then putting it before the decimation. If you want to use Trim directly after the source line, preview the script without any filtering, work out where the halfway point is, make two copies of the script and add Trim to each, then follow Trim with your filtering/decimation.

You may find the total frame count differs by a frame, depending on whether you split the script before decimation or split it after (if the split point isn't on an even multiple of five frames before decimation), so I assume splitting the script after decimation would be more likely to give you exactly the same total frame count as you'd get from just encoding the whole thing as a single script. If that makes sense.....

PS. I kind of tried your script on the sample, but I don't have all the required plugins and I was getting a few errors which would have taken some time to sort out (things like a missing function in a script which probably require an additional plugin to fix), so I deleted Stab() and fiddled with a few things to make it work, but I think I saw the gist of it. It definitely looks better than the original video which is fairly horrible. I forgot you were probably working with animation. No nasty artefacts from using QTGMC on it yet?

Last edited by hello_hello; 20th July 2015 at 09:37.
hello_hello is offline   Reply With Quote
Reply

Tags
megui

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 14:26.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.