Log in

View Full Version : WMV9 PowerToy


zambelli
29th November 2006, 09:33
So I finally installed Visual C# on my computer and put together an app that I've been needing to write for months. :rolleyes:

WMV9 PowerToy is a tool designed to configure advanced properties of the WMV9 encoder and decoder otherwise only accessible through registry settings. The basic functionality is similar to McoreD's WMV9 Advanced Settings Editor, but then there are additional features such as importing/exporting settings to .reg files, video profile enforcement (disables settings incompliant with a particular VC-1 profile), WMV codec version detection, and advanced decoder settings (i.e. DXVA, post-processing).


http://www.citizeninsomniac.com/WMV/WMV9PowerToy.jpg

System requirements are:

WMV9 encoder v11 (wmvencod.dll) or WVC1 encoder v11 (wvc1dmoe.dll)
Microsoft .NET Framework version 2.0

Homepage: http://www.citizeninsomniac.com/WMV

Direct download: http://www.citizeninsomniac.com/WMV/WMV%20PowerToy.exe


The software is released under a shared source Microsoft Community License (Ms-CL) (http://www.microsoft.com/resources/sharedsource/licensingbasics/communitylicense.mspx). What is Ms-CL and why didn't I use the usual GNU GPL? As some of you may know, I work for Microsoft and since this tool is very closely related to my actual job, I wanted to make sure I could share the code and encourage collaboration while at the same time ensuring the license wasn't at odds with my employer's policies. So there you have it: shared source software that's kosher with Microsoft. :)

On the linked homepage you will also find latest versions of WMCmd.vbs, another way to get the most out of WMV9 encoding.

Inventive Software
29th November 2006, 13:26
Ooh, very nice! :D When I get my new rig after Xmas, this will probably be my configuration app of choice. :)

check
29th November 2006, 14:28
do the decoding options (specifically the pp) also affect previous WMV video formats?

sjchmura
29th November 2006, 16:48
Zambelli,

Thanks for the great effort - very much appreciated.

For XBOX360 media playback of VC-1, will MS release a "profile" or suggestions as to which options NOT to use for 720p or 1080p encoding? For example, you mentioned in one of your earlier posts "no loopback with 1080p".

Thanks again.

zambelli
29th November 2006, 20:31
do the decoding options (specifically the pp) also affect previous WMV video formats?
Such as WMV8 and WMV7, you mean? I'm not sure, to tell you the truth. I think it might because those PP reg keys have been around for a while.

zambelli
29th November 2006, 20:34
For XBOX360 media playback of VC-1, will MS release a "profile" or suggestions as to which options NOT to use for 720p or 1080p encoding? For example, you mentioned in one of your earlier posts "no loopback with 1080p".
No, I don't think there'll be an official encoder profiile released for 360.
Loop filter is probably the only one that affects decoding performance. I think the Xbox thread pretty much outlined the rest of the properties (max bitrate and such) for achieving good WMV playback on the 360.

tchaikovsky
30th November 2006, 00:49
Really cool things.

-t

Randi
30th November 2006, 02:17
Thanks a lot for this tool! Unfortunatly I get an error when starting the tool, though both software requirements are fulfilled. You got any idea hot to fix this?

Thanks in advance :-)
Randi

zambelli
30th November 2006, 02:42
Thanks a lot for this tool! Unfortunatly I get an error when starting the tool, though both software requirements are fulfilled. You got any idea hot to fix this?
Thanks in advance :-)
The image hasn't come through yet so I'm jumping the gun a bit: but make sure you actually download the executable before running it. If you click on the link and choose Run, it will fail because .NET apps can't run from the cache with full permissions.

Randi
30th November 2006, 10:56
uploaded it to imageshack http://img98.imageshack.us/img98/69/wmverrorxz3.jpg without the image its kind of hard to guess, I guess :-)
I dl it completly so that shouldnt be a problem

crypto
30th November 2006, 18:09
Excellent! Thanks!

I like the detailed descriptions of the various settings. One additional information would make it perfect: the effect of the particular setting on the encoding speed vs the picture improvement potential.

zambelli
30th November 2006, 22:15
uploaded it to imageshack http://img98.imageshack.us/img98/69/wmverrorxz3.jpg without the image its kind of hard to guess, I guess :-)
I dl it completly so that shouldnt be a problem
Hmm, it looks like it's failing when trying to retrieve the installed codec names and versions. Are you running this as non-admin by any chance?

zambelli
30th November 2006, 22:16
I like the detailed descriptions of the various settings. One additional information would make it perfect: the effect of the particular setting on the encoding speed vs the picture improvement potential.
I wanted to do that too, but it would've required me to run perf and quality tests on every option - which would've taken a long long time.

It's still a good idea - it just might take me a while to get the data necessary to implement it.

obieobieobie
8th December 2006, 19:51
Thanks for this awesome little tool, zambelli. :)

zambelli
9th December 2006, 03:17
A few words about the VC-1 profile enforcement. The primary reason why I added this feature is because the MSDN documentation for these settings, as registry keys or IPropertyBag properties, does not mention anything about profile compliance. Furthermore, the encoder DMO doesn't do a thorough job of enforcing profile compliance in all cases. For example, Compression Optimization Type = 1 preset sets both DQuant and Motion Search Range internally, but it doesn't check whether these conform with the selected video profile (which it otherwise does when these settings are set individually). So as a result, using CompOptType=1 with Simple Profile will actually create bitstreams that don't follow the VC-1 specification. It's an unfortunate oversight, but it's one that can be rectified with good documentation and encoding guidelines.

In order to make sure this doesn't happen, I added the "Enforce profile" feature to WMV9 PowerToy so that you can easily make sure you're always generating VC-1 compliant videos. The enforcement follows these rules:

http://www.citizeninsomniac.com/WMV/AdvancedSettings_WMV9.png

Inventive Software
9th December 2006, 04:25
Wahey. THAT's what I'm after with VC-1! :D Means I can generate perfect Simple and Main Profile encodes every time, and compare with AVC better. :D

DarkNite
9th December 2006, 09:15
Thanks for the tool. I'm sure I'll use this often.

Randi
11th December 2006, 17:35
to get back on my issue: Your guess was (kind of) correct. Even though I still use my old Domain admin account (due to lazyness moving everything to an new account), which should grant me admin rights, doing the runas thingie with the normal local admin account solved the problem. Thanks for helping!
(I really gotta move the account, there are some folders I cannot access anymore, and not take over as well. Anybody got an idea/tool how to do this the easy way?)

:-)
Randi

Stebet
18th December 2006, 15:45
Awesome tool zambelli. Great to get easy access to more parameters. I do have some questions though.

Being a bit on the noobish side of what everything means (the explanations really really help though), are there any specific settings that impact quality more than others?

I did notice that your "Best Visual Quality" preset enabled some settings but they also slowed the encoding down drastically. Are there any settings there that are more important than others or is that perhaps more dependant on the source material?

I'm going through my DVD collection a.t.m, transcoding them to WMV for easy viewing on my 360 and of course i'd like the best quality i can get without it taking days to encode a single movie so are there any features that i should look more at than others. I'm mostly talking film material here, and almost no anime or cartoons.

Again thanks for this tool :D

zambelli
19th December 2006, 02:59
I did notice that your "Best Visual Quality" preset enabled some settings but they also slowed the encoding down drastically. Are there any settings there that are more important than others or is that perhaps more dependant on the source material?
The Motion Search Level and Motion Match Method options slow down encoding the most.

I'm going through my DVD collection a.t.m, transcoding them to WMV for easy viewing on my 360 and of course i'd like the best quality i can get without it taking days to encode a single movie so are there any features that i should look more at than others. I'm mostly talking film material here, and almost no anime or cartoons.
Quality comes at a performance price, unfortunately. My favorite quality-at-whatever-cost setting is:

Motion Search Level = True Chroma
Motion Match Method = Hadamard
Motion Search Range = Auto
In-Loop Filter = On
B-Frame Number = 1
B-Frame Delta QP = 1

If doing 1-pass CBR, enable Lookahead = 16 too and increase your video buffer size to 15-30 seconds to allow more variance in bitrate.

If you'd like to speed up these settings a little bit, try Motion Search Level = Auto True Chroma, and Motion Match Method = Auto... But it's unlikely you'll get the encoder to go any faster than this without sacrificing more quality.

McoreD
23rd December 2006, 06:26
Very nice zambelli. It's great to see tools for Windows Media are evolving and gaining wider public interest.

Cheers,
McoreD.

zambelli
24th December 2006, 06:15
Very nice zambelli. It's great to see tools for Windows Media are evolving and gaining wider public interest.
And thank you for leading the way. :)

buzzqw
10th April 2007, 14:02
i have a simple question:

what options must be set by registry tweak because wmcmd.vbs is unable set/valorize ?

BHH

Jay Bee
10th April 2007, 14:46
I think if you use wmcmd (as opposed to wme) the registry settings for the encoder are ignored.

EDIT: not quite true, see zambelli's post below

buzzqw
10th April 2007, 14:59
i will explain better

i use only wmcmd.vbs and want know what settings are ignored or not set at difference from using wmv9 powertoy

Again: if i will use only wmcmd.vbs what parameters i can't set ? (i will add a simple regedit fuction to automkv)

BHH

ACrowley
10th April 2007, 15:59
i will explain better

i use only wmcmd.vbs and want know what settings are ignored or not set at difference from using wmv9 powertoy

Again: if i will use only wmcmd.vbs what parameters i can't set ? (i will add a simple regedit fuction to automkv)

BHH

you can set the Parameters directly in wmcmd . It has all Settings that WMV9 Powertoy has.

All Settings you re using again in wmcmd will overwrite the wmv9 PowerToy/Registry Settings

I pers only use wmcmd to set the encoding Options
The preset better with -v_buffer 60000 -v_quality 100

buzzqw
10th April 2007, 16:12
... it's strange... iirc wmcmd can't set all parameters offered by windows media encoder ( for wvc1)

BHH

zambelli
10th April 2007, 19:08
... it's strange... iirc wmcmd can't set all parameters offered by windows media encoder ( for wvc1)
ACrowley is right. Any encoder options you can set in WMV9 PowerToy can also be set in Wmcmd.vbs. Both tools are simply modifying registry keys - the only difference being that PowerToy persists the registry keys (since it's not tied to a particular encoder), while Wmcmd.vbs cleans them up after every encoding session.

buzzqw
10th April 2007, 21:18
ACrowley is right. Any encoder options you can set in WMV9 PowerToy can also be set in Wmcmd.vbs

well... better! no need for an advanced editor for wvc1 regestry values

thanks!

BHH

zambelli
23rd April 2007, 05:30
An updated version 1.2.0.0 is available now.

It includes a fix for the Motion Search Level setting (was set incorrectly previously), ability to detect x86 WMV codecs on an x64 system, and updated documentation (tooltips) for many options, particularly Dquant Option, Dquant Strength and Perceptual Option.

http://www.citizeninsomniac.com/WMV

sportcenter
23rd April 2007, 23:57
An updated version 1.2.0.0 is available now.

It includes a fix for the Motion Search Level setting (was set incorrectly previously), ability to detect x86 WMV codecs on an x64 system, and updated documentation (tooltips) for many options, particularly Dquant Option, Dquant Strength and Perceptual Option.

http://www.citizeninsomniac.com/WMV

installed the latest version, opened up ProCoder2, input my video source and then it said an error has occured and needs to close - same thing happened when i tried w/ TMPGenc

i then tried 1.1.0.0 and everything worked fine

just a heads up...what could be the problem?

zambelli
24th April 2007, 01:27
installed the latest version, opened up ProCoder2, input my video source and then it said an error has occured and needs to close - same thing happened when i tried w/ TMPGenc

i then tried 1.1.0.0 and everything worked fine

just a heads up...what could be the problem?
The error was in the encoders? Or the PowerToy?

Which WMV settings did you have set?

zambelli
17th July 2007, 09:22
An updated version 1.2.1.0 is available on the website now. It includes only minor changes such as restricting Dquant Method and Perceptual Option values to functional modes only.

zambelli
10th September 2007, 03:29
An updated version 1.2.5.0 is now available on the website. Let me elaborate about the UI changes in PowerToy 1.2.5.0:

Motion Search Level options have been reduced to just "Luma", "Fixed Integer Chroma" and "Fixed True Chroma" due to a bug found in the v11 encoder DMO that doesn't correctly activate the adaptive chroma search modes when the registry key is set to values 3 and 4. This is very unfortunate, but I'd rather have people be aware of it instead of continuing to use a feature that doesn't actually work.

Perceptual Option now has just a dropdown list of "Adaptive Dead-Zone xx" values where xx ranges from 1 to 15. The default "Adaptive Dead Zone" (unnumbered) option has been removed because it's functionally equivalent to "Adaptive Dead-Zone 1" and therefore redundant. If you import any .reg files that were defined using the old "Perceptual Option = 2 or 3" mapping, those settings will now map to "Perceptual Option = 4" (Adaptive Dead-Zone 1) and everything should still continue to work the same.

Furthermore, because there've been several commercial releases of the v11 encoder DMO to companies like Tarari, Inlet and Anystream, the PowerToy will now detect those versions of the DMO and dynamically expose options such as adaptive chroma search that were fixed in those releases.

diogen
11th September 2007, 19:49
...because there've been several commercial releases of the v11 encoder DMO to companies like Tarari, Inlet and Anystream...Does this mean that the new DMO's are just plug-n-play: replace the existing (old) files with ones from those commercial packages and you can use old apps (WME9) with all the new features?
Will the new Expression Encoder pick up the new DMO?

Diogen.

zambelli
11th September 2007, 23:32
Does this mean that the new DMO's are just plug-n-play: replace the existing (old) files with ones from those commercial packages and you can use old apps (WME9) with all the new features?
WM Format based apps such as WME9 will look for all encoder DMOs associated with a particular FourCC (i.e. WVC1) and then choose the one with the highest WMSDK Merit value (if there are more than one).

Will the new Expression Encoder pick up the new DMO?
Expression Encoder might be a bit pickier than WME9 because it uses DirectShow and therefore probably looks for specific filter CLSIDs to build an encoder graph.

diogen
12th September 2007, 17:12
Thanks, zambelli.

Diogen.

johnslion
17th September 2007, 03:22
Anyway, Thanks Great!

Does that including atom feature setting to wmv encoder, such as overlap looping switch on/off, intensity compensation on/off, etc.?

zambelli
19th September 2007, 03:49
Does that including atom feature setting to wmv encoder, such as overlap looping switch on/off, intensity compensation on/off, etc.?
I'm not sure I fully understand your question. Intensity compensation is always enabled in the WMV9 encoder. Overlap smoothing is controlled via the registry or API.

obieobieobie
19th September 2007, 08:14
Is DXVA WMV support dependent on the renderer?

When I enable DXVA WMV logging in the PowerToy and play the nvidia PureVideo HD demo in ZoomPlayer using the Haali renderer, all I get in the dxva.log is "control class freed"

When I play it in WMP11, I get a 300 KB file with loads of info.

zambelli
21st September 2007, 09:21
Yes - DXVA 1.0 needs VMR. If you switch ZoomPlayer to VMR9 or VMR7 you ought to see DXVA kick in for VC-1 decoding.

zambelli
17th October 2007, 00:51
This is somewhat related to PowerToy:

Microsoft gets official open-source blessing from OSI for two of its licenses (http://arstechnica.com/news.ars/post/20071016-microsoft-gets-official-open-source-blessing-from-osi-for-two-of-its-licenses.html)

I mention it because PowerToy uses a Ms-CL license. :)

removals
17th October 2007, 09:53
Firstly hear abut that...