Log in

View Full Version : WMNicEnc Update (VC-1 Support)


Pages : 1 [2]

Nic
8th August 2006, 09:16
@zambelli: Thanks, must have missed your previous post. So is setting g_wszInterlacedCoding to TRUE on the IWMWriterAdvanced2 interface of the writer when VideoType!=0 enough to support it?
(or do I also have to SetProperty WM_SampleExtensionGUID_ContentType on the INSSBuffer3 to WM_CT_INTERLACED, WM_CT_BOTTOM_FIELD_FIRST, WM_CT_TOP_FIELD_FIRST, etc ? )

-Nic

sisman2000
9th August 2006, 04:55
I think zambelli is right, i think i was not able to get interlaced encode using ur program even with setting 1-4 on video type...

zambelli
9th August 2006, 06:52
@zambelli: Thanks, must have missed your previous post. So is setting g_wszInterlacedCoding to TRUE on the IWMWriterAdvanced2 interface of the writer when VideoType!=0 enough to support it?
(or do I also have to SetProperty WM_SampleExtensionGUID_ContentType on the INSSBuffer3 to WM_CT_INTERLACED, WM_CT_BOTTOM_FIELD_FIRST, WM_CT_TOP_FIELD_FIRST, etc ? )
According to http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmform95/htm/interlacedvideoencoding.asp, you need to set
g_wszWMVCInterlacedCodingEnabled = TRUE and also set the mentioned data extension unit value to WM_CT_INTERLACED + WM_CT_BOTTOM_FIELD_FIRST or WM_CT_TOP_FIELD_FIRST.

The article also says "Setting the g_wszWMVCInterlacedCodingEnabled property to TRUE, and then not sending any samples with the content-type data-unit extension attached can cause the encoder to crash. Only set the encoder for interlaced encoding if you have interlaced samples to deliver." So sounds like you always need to set both or otherwise the whole thing might blow up.

Setting these values should take care of correct metadata and data extension units being set. Setting VideoType will ensure the codec is actually encoding the images correctly.

yevlar
15th August 2006, 09:02
Nic - One question I have - in the new version of your encoder, is the buffer size adjustment only for VC1, or does it work with WM9? That's the one big caveat I've had with the Nic encoder is that there's no way to adjust buffer size to reduce dropped frames in regular WM9 encodes.

Nic
15th August 2006, 09:16
@yevlar: AFAIK, it will work in both WM9 & VC1, infact it should work on any supported codec that supports that tweak.

yevlar
15th August 2006, 10:42
Fantastic!

Your Nic encoder is a beautiful tool, BTW. Far more intuitive than WM's regular GUI.

Keep up the good work!

yevlar
16th August 2006, 07:49
One more question - two of the VC1 tweaks I commonly use (Force Chroma Search and Force Adaptive MV cost) don't appear in the Nic options. Are these under a different name, or are they not supported in the Nic encoder?

Sagittaire
17th September 2006, 21:13
Possible to change key frame interval unit to ms ... ???

benwaggoner
21st September 2006, 05:59
vc-1 should be good for interlacing? actually i have never seen an interlaced vc-1 stream out in the wild and afaik it has been only recently added to vc-1 advanced profile. even m$ (offering the only vc-1 codec around) only released vc-1 advanced profile encoding some weeks ago (no idea if it already supports interlacing)

so all in all i heavily doubt vc-1 has been much tested with interlacing at all. you shouldnt believe the marketing...
FYI, Amazon Unbox is using VC-1 AP interlaced for their 60i clips.

Romeo_by
25th September 2006, 07:59
Hi guys, does anybody can explain it or comment: "Windows Media Encoder Studio Edition Beta 1 supports only the WMV9 Advanced Profile codec. Note that this is a different codec than the WMV9 Advanced Profile codec that shipped with the Windows Media Format SDK 9.5. Specifically, the Studio Edition version uses the WVC1 FourCC code instead of WMVA, and requires a newer version of the decoder." It is written here : http://www.microsoft.com/windows/windowsmedia/howto/articles/usingsehd.aspx

zambelli
25th September 2006, 18:00
Hi guys, does anybody can explain it or comment: "Windows Media Encoder Studio Edition Beta 1 supports only the WMV9 Advanced Profile codec. Note that this is a different codec than the WMV9 Advanced Profile codec that shipped with the Windows Media Format SDK 9.5. Specifically, the Studio Edition version uses the WVC1 FourCC code instead of WMVA, and requires a newer version of the decoder." It is written here : http://www.microsoft.com/windows/windowsmedia/howto/articles/usingsehd.aspx
It's more or less explained here:
http://forum.doom9.org/showthread.php?t=112634
and here:
http://www.microsoft.com/windows/windowsmedia/howto/articles/codecadvancedsettings.aspx#CodecVersions

Romeo_by
26th September 2006, 08:59
As far as I understood that from MS link the newest version of the codec and it's features is only avaliable under 2k3 and WMF 11 SDK or WME SE Beta. Am I right?

HookedOnTV
26th September 2006, 16:58
What effect should changing the "Quality" setting in the "Video Options" area have? I'm trying to increase encoding speed. I've tried encodes at 100, 90 and 50 and they all took the same amount of time.

zambelli
26th September 2006, 21:46
As far as I understood that from MS link the newest version of the codec and it's features is only avaliable under 2k3 and WMF 11 SDK or WME SE Beta. Am I right?
Correct. The newest version of the codec is currently only available for XP, Vista and W2K3.

zambelli
26th September 2006, 21:52
What effect should changing the "Quality" setting in the "Video Options" area have? I'm trying to increase encoding speed. I've tried encodes at 100, 90 and 50 and they all took the same amount of time.
Quality setting is valid only in CBR modes and 1-pass VBR mode. It's irrelevant in 2-pass VBR mode.
In 1-pass VBR mode it sets the constant quality of the video, which affects the overall compression ratio. In more technical terms, it sets the QP (picture quantizer) for the video.
In CBR modes, Quality is also known as "Video Smoothness", and it controls whether the encoder will drop frames in order to meet the quality bar for each frame at a given bitrate (more important for streaming than for offline encoding). The default setting typically works for all content, but if you get dropped frames, you can try lowering the value.

A complexity level setting exists for WMV codecs which controls the speed/quality ratio, but I don't think Nic has it implemented.

Nic
26th September 2006, 22:02
A complexity level setting exists for WMV codecs which controls the speed/quality ratio, but I don't think Nic has it implemented.
It is implemented under the Advanced Options dialog. It's the last option marked "Minimum/Maximum complexity".

-Nic

zambelli
26th September 2006, 23:12
It is implemented under the Advanced Options dialog. It's the last option marked "Minimum/Maximum complexity".
Oh, sorry, I forgot you did add it. :)

@HookedOnTV: The default value is 3. Increasing to 4 should give you a decent quality boost, but will be about 80% slower. Complexity 5 will be even slower - and I personally don't think it's worth the extra time.

HookedOnTV
27th September 2006, 03:32
So to increase speed I should lower to maybe 2? I'm comparing between using this and x264 w/MeGUI. So far this takes about 3 times as long. I'm having a hard time believing VC-1 should take this long. I must be doing something wrong.

Nic
4th October 2006, 12:17
sh0dan sent me a patch to make WMNicEnc's options easier to use (the comboboxes don't just list obscure numbers that you have to look up now).

I applied and uploaded to: http://nic.dnsalias.com

No other changes (unless I broke something)

-Nic

Pookie
5th October 2006, 06:39
Nic - No message, just posting appreciation for your great apps. Respect. ;)

zambelli
5th October 2006, 10:34
sh0dan sent me a patch to make WMNicEnc's options easier to use (the comboboxes don't just list obscure numbers that you have to look up now).

I applied and uploaded to: http://nic.dnsalias.com
Nice work, Sh0dan!

Some comments.

"Video Type" should actually be "VideoType". The online documentation is wrong and will hopefully be corrected soon.

The values for "VideoType" should be as follows:

Default
Progressive
Frame Interlaced
Field Interlaced
Auto Frame/Field Interlaced
Auto Frame Interlaced/Field Interlaced/Progressive


The setting is only valid if interlaced encoding has been enabled on the codec via IPropertyBag. Nic hasn't actually enabled this in the encoder yet, so until that's done - VideoType will not really work properly in WMNicEnc.

Let's say interlaced encoding support was implemented... Here's how it would work. "Default" would default to Progressive for progressive, and to Field Interlaced for interlaced video encoding. When "VideoType" is set, it affects how images are encoded in the video. In all cases source is assumed to be frame-based video. Frame Interlaced will encode each input frame as one interlaced frame. Field Interlaced option will encode each input frame as a pair of fields. This doesn't imply bobbed playback. It merely means that each frame is stored as two fields, rather than a single frame. The two auto modes try to pick the most efficient method for compressing each input frame. VideoType=4 is best suited for mixed mode content.

One more comment...

Encoder complexity range is not hard-coded. It's based on a max value retrieved from the codec property bag. So defining a descriptive value for 0-5 is probably the wrong way to go about it. A better way might be to describe 0 as "fastest" and MAX as "slowest" - and everything inbetween the user can figure out.

affter333
12th October 2006, 18:47
HI:

Really need better and detailed explanations on those
profile parameters.

for example: force overlap, what does it do? Some kind
of temporal smoothing?

And what are those default values of the default settings? are they on or off ? 1 or 0 ?

thanks ..

leiming2006
22nd October 2006, 05:26
WMV9
Tick "VBR" and then select "constrained" or "unconstrained". "VBR Quality" affect nothing?

And in mutipass, tick VBR and select "constrained" or "unconstrained". It output "part, part and part" video.

Is there anything I have set wrong? Who can tell me how can I use the VBR "constrained" and "unconstrained"?
Thanks

tominator
28th October 2006, 01:21
I just started learning about WMNicEnc and havn't had time to try it as much as I want yet. I do have some quick questions though:

From what Ive understood it does not have support for creating files with support for multiple video streams. Might that be a function we can expect any time soon?

Is there a way to queue jobs? If not, may that be a function to expect?

Are there any plans for making it able to load seperate audio and video sources?

Thanks.

dohcmark8
6th November 2006, 00:42
Thanks for the great update. I tried it out for VC-1 encoding and its nice.

Although, any plans to include a status bar with remaining time and current fps?

affter333
12th November 2006, 00:59
Can it open AVIs ? not just avs.

sjchmura
21st November 2006, 14:20
SO the default AP settings = according to the MS documents linked above - activate most if not all of the highest quality setting settings - correct? So is there any other option to choose other than "Compression Optimization type" is set to optimal. So only of we disable this do the other settings actually matter - correct?

Isochroma
5th December 2006, 23:02
First, I'd like to thank Nic for this wonderful tool! I'm using it to make WMV2 encodes of HD videos.

I've some suggestions for new features in the next version, here they are:

1. Settings - no profiles needed, but it would be nice to store the last used encode settings in an .ini or regkey.

2. Priority - Low/Med/High, etc.
3. FPS indicator for encode rate
4. ETA calculation
5. Pause/Resume button

zambelli
6th December 2006, 07:25
SO the default AP settings = according to the MS documents linked above - activate most if not all of the highest quality setting settings - correct? So is there any other option to choose other than "Compression Optimization type" is set to optimal. So only of we disable this do the other settings actually matter - correct?
Sorry I missed this earlier.
All settings included in the "Compression Optimization Type = 1" preset can be overridden by explicitly defining them. So you can have CompOpt=1 AND have Motion Match = 1, even though in CompOpt=1 it gets set to -1.

Anyway, "highest quality" is a subjective term. Compression Optimization Type = 1 does offer quality improvements, but it also smooths out some areas of the image due to dquant perceptual optimizations being enabled. If you're looking for more of an archival quality setting, I recommend:

Motion Match = Hadamard
Motion Search Range = Auto
Motion Search Level = True Chroma or Auto True Chroma
LoopFilter = On

zambelli
6th December 2006, 07:26
First, I'd like to thank Nic for this wonderful tool! I'm using it to make WMV2 encodes of HD videos.
WMV2? As in "WMV v8"?

Isochroma
6th December 2006, 19:28
Yes, WMV2 offers the highest encoding speed (many times that for WMV3) and probably the best speed per unit quality of any codec ever made. Not only that but it has the fastest decoding (faster than ASP/WMV3, and would be faster than AVC except for the CoreAVC decoder).

Isochroma
7th December 2006, 00:00
Not only does WMV2 offer the best Speed/Quality ratio, but after careful comparison this morning, I've found that it offers equal or superior quality in high- and mid-motion scenes to x264 rev.602 (latest) at constant quantizer 18 with all other quality options cranked to max except CABAC. Here's the specs, sorry I already deleted the screenshots but the source was HDTV .TS 1920x1080 scaled down to 1368x768 using Lanczos4resize().

The WMV file was about 31MB, the x264 about 32MB, and of course WMV2 using Nic's ran at about 5fps, while x264 managed .5-.6fps. Needless to say, scaling back the quality options in x264 to obtain more speed quickly degraded the quality to significantly below WMV2 level.

WMV:

Format: WMV2 in WMV
Mode: Quality VBR, 100
FPS: 23.976
Advanced Options: all default, except:
1. Lookahead: 16 frames
2. Macroblock Mode Cost Method: RD Cost
3. Motion Search Range: +1023.75/-1024.0 H, +255.75/-256.0 V
4. Motion Vector Coding Method: Horizontal
5. NumBFrames: 1
6. Minimum/Maximum Complexity: Fastest
7. Buffer Windows Size: 60000

(Note: I have a feeling most of these options don't affect WMV2, but I've verified that Complexity does work on both WMV1/2 and significantly decreases CPU usage on playback, while minimally affecting quality)


x264: (Tabs are in MeGUI, only changed items are shown)

<Main Tab>
Format: AVC1 in MP4
Mode: Const. Quantizer
Quantizer: 18
Profile: High Profile
Deblocking: Enabled

<RC and ME Tab>
Chroma M.E.: on
M.E. Range: 16
M.E. Algorithm: Exhaustive
Subpixel Refinement: 7

<Advanced Tab>
CABAC: off
No Dct Decimation: on
No Fast P-Skip: on
Macroblock Options: Custom (all checked)
B-Frames: 1
RDO for B-frames: on
Weighted B-Prediction: on
Bidirectional M.E.: on
B-frame mode: Temporal

zambelli
7th December 2006, 00:53
Not only does WMV2 offer the best Speed/Quality ratio, but after careful comparison this morning, I've found that it offers equal or superior quality in high- and mid-motion scenes to x264 rev.602 (latest) at constant quantizer 18 with all other quality options cranked to max except CABAC.
Seriously? OK, even I can't believe that. :confused: Sounds like time for sharing screenshots and video samples! :)

(Note: I have a feeling most of these options don't affect WMV2, but I've verified that Complexity does work on both WMV2/3 and significantly decreases CPU usage on playback, while minimally affecting quality)
You are correct. The registry tweaks only affect WMV9, and only the newest (v11) builds at that.

Isochroma
7th December 2006, 04:08
So in addition to thanking Nic for the excellent tool, I'd like to thank Microsoft for some fine engineering on WMV2, and of course also some minus feedback on WMV3, due to its very low speed/unit quality ratio.

Thanks to Nic's WMVEnc + WMV2, I'm now transcoding one .ts per day, and so can finally make progress on the backlog of 100+ encodes waiting to go!

After encoding, the .WMV is loaded into Graphedit and the video stream sent to Gabest's latest MatroskaMuxer, instead of the WMVDecoder. Then the AC3 is muxing in a secondary step with MKVToolnix. This is because Gabest's MM doesn't fill in all the details (display size) and hasn't been updated in a while.

Also, I tried Haali's latest muxer but it screws up and doesn't set the framerate atom, so the mkv's can't be demuxed and play at the wrong framerate.

killerhex
7th December 2006, 04:59
wmv3 is wmv v9

Taxidermista
22nd December 2006, 16:09
Is this wonderful easy tool still being developed? If yes, it would be great if you could add the support of pixel aspect ratio. To me it seems essential to be able to set the aspect ratio of the encoded video.

Ditto. I would like to encode some 16:9 hd video at 1440x1080. Is this supported yet?

Eastermeyer
1st April 2007, 16:13
I would like to Encode 2pass ABR at 8112kbps (just like an ordinary XviD 2pass).

So i check "Use Multipass Encoding". Do i have to check VBR , too ?

And for the Bitrate , do i have to enter 8112 or 8112000 ?

snrsuave
9th June 2007, 12:57
Does WMNicEnc work on Vista? I can't get it to work. It crashes each time I hit the encode button. I've tried running it as administrator and in XP compatibility mode, but I've had no luck.

adrianmak
20th June 2007, 04:11
To encode in VC-1 format, should I select the WMV9 Advanced profile in WMEnc ?

foxyshadis
20th June 2007, 10:37
You can, but main and simple are also VC-1. You don't need advanced unless you need some of its features, like interlaced encoding.

musicman2311
24th October 2007, 07:59
this is a nice tool - would it be possible to include essential information in the bitstream such as aspect ratio ?

wallstreetcrash
2nd November 2007, 23:03
This is a great tool! Thanks to the maker :)

I just wanted to ask a few questions on settings.
If I just want 2-ch audio @ 192kbs, should I use WMA 9.2 or WMA10 Pro? Is one quicker than the other, if so which one? Or if they are the same, I should use WMA10 I suppose?

And there are tons of Video codecs, I'm stuck on which one to use.

WMV 9
WMV V8
WMV 9 Image
WMV 9.1 Image
WMV 9 Advanced Profile

Which one uses VC-1?
And which one is the best quality-time ratio? I'm not too fussed about quality as I will be encoding TV shows, and then they will be disposed off and not for a collection, wondering which codec to use. WMV V8 will be quickest right?

Also, I am not bothered about size, so what bitrate do I use and what quality, and do I use VBR?

Basically, I convert weekly a few MKV TV shows of mine, and would like about 20fps encoding on my P4 3.4GHz 1GB RAM machine.

Thanks, hope I can get some help

zambelli
3rd November 2007, 00:02
Reading the VC-1 sticky will shed light on your questions, but the short answer is: WMV9 is VC-1 Simple/Main, and WMV9 AP is VC-1 Advanced profile.

wallstreetcrash
3rd November 2007, 12:26
Thanks, so I'll use WMV V8 i.e. WMV2
And WMA 9.2 for audio.

But last question is the quality settings.
Next to bitrate, it has a quality setting, what does this do?
And if I don't care about size, should I use VBR?

I want to convert a 1GB mkv TV show.

Thanks.

zambelli
9th November 2007, 09:41
No to take away any thunder from Nic, but WMNicEnc is a little out of date by now - it might be easier and more intuitive to use WMCmd.vbs or WME9+PowerToy for your encoding. The options and context help are more accurate in those tools.