View Full Version : WMNicEnc Update (VC-1 Support)
http://nic.dnsalias.com
Updated WMNicEnc (last update was 3 years ago!) to support modifiying the options of the new VC-1 codec.
Should make testing the settings easier than fiddling with the registry. Please let me know of any problems as I haven't had time to test yet.
Cheers,
-Nic
GodofaGap
20th May 2006, 11:26
Many thanks Nic. Gonna try right away. :)
Jerry_Sm@rt
20th May 2006, 14:25
any mirrors?can not link to the address here
Yama4050242
20th May 2006, 14:43
Jerry_Sm@rt
try this
http://www.hidemyass.com/
i got it from ST
it works for me
zambelli
21st May 2006, 04:43
Nice work, Nic, and thanks for updating the tool!
Some comments:
For settings that are just 0/1 switches (i.e. Force LoopFilter), it might be more intuitive if the "0" and "1" were replaced with "Off" and "On".
In general, having descriptive values (i.e. Weak/Medium/Strong instead of 1/2/3) might make the encoder easier to use. Otherwise, people will need to look up the descriptions online - so perhaps providing a hyperlink would also be a good idea. :)
When "Compression Optimization Type" is set to 1, I would expect all associated settings to automatically change. Even though that might make things more complicated on the back end, it would make the UI more intuitive, IMHO. Or consider separating "COT" from the other options and making it a radio button or something. Unlike other settings, this one's a preset so it would make sense if it were somehow "special".
The WVC1 complexity setting actually has a range 0 through 5. Default is 3 for offline encoding and 2 for streaming. Check out this (http://msdn.microsoft.com/library/en-us/wmform95/htm/g_wszwmvccomplexitymode.asp)reference.
If you wanted to support interlaced encoding, here's what you would need: a checkbox for interlaced (http://msdn.microsoft.com/library/en-us/wmform95/htm/g_wszwmvcinterlacedcodingenabled.asp) encoding, another option to select field dominance (http://msdn.microsoft.com/library/en-us/wmform95/htm/interlacedvideoencoding.asp)(top/bottom/auto) and another to force the encoder to use a specific encoding method ("Video Type (http://www.microsoft.com/windows/windowsmedia/howto/articles/codecadvancedsettings.aspx#VideoType)" AP registry setting).
You should add an option for Video Buffer size. Setting the buffer size to large values (i.e. 60 secs) on long offline encodes should improve the quality. It should be set to lower values on either short sources or when streaming.
@Zambelli:
For settings that are just 0/1 switches (i.e. Force LoopFilter), it might be more intuitive if the "0" and "1" were replaced with "Off" and "On"
Maybe your right. I may just do that.
In general, having descriptive values (i.e. Weak/Medium/Strong instead of 1/2/3) might make the encoder easier to use. Otherwise, people will need to look up the descriptions online - so perhaps providing a hyperlink would also be a good idea.
That's what the tooltips are for, they only have to leave their mouse over the combobox to get a description of what the numbers mean. Also, the weak/medium/strong will work in some cases, not in others though where -2, -1, etc are options.
When "Compression Optimization Type" is set to 1, I would expect all associated settings to automatically change. Even though that might make things more complicated on the back end, it would make the UI more intuitive, IMHO. Or consider separating "COT" from the other options and making it a radio button or something. Unlike other settings, this one's a preset so it would make sense if it were somehow "special".
Maybe, I'll have to consider how intuitive the right logic would be. i.e. if you turn it off, should the settings revert (& should it only change settings that are "Not Set" (Think I'm going to change that wording to "Default"))
The WVC1 complexity setting actually has a range 0 through 5. Default is 3 for offline
True. But other codecs are effected by this setting too, and they don't have that range (sometimes just 0 and 1). Also, people either want it done quick or want it done well IMHO. But I think I will change the wording to "Min" & "Max".
If you wanted to support interlaced encoding...Yup. I need to add that. Thanks for the links :)
You should add an option for Video Buffer size...Again, your dead right. Will add that ASAP :)
Thanks for the feedback :) I'll try and find a nice compromise. I hope it's working well for people.
Now some questions:
1) Couldn't believe it was released 3 years ago....Any word on when Windows Media Format 11 SDK will be released? (if at all)
2) Are there any other Registry settings that might be of some use? A look through the WM DLLs suggests there are others, but maybe they aren't useful/working. Are there similar ones for Audio?
3) One of my colleagues was at a Hi-Def conference this past week and heard mention a couple of times of something called VC-2. Any relation to a future MS product in the works or is he confusing it with something with a similar name?
Thanks again,
-Nic
berrinam
21st May 2006, 10:12
Since your tool modifies registry entries in place, what happens with multiple instances of it running at once with different settings?
What are the prospects of a command line version, for integration into tools like MeGUI?
Inventive Software
22nd May 2006, 10:26
Seeing as suggestions are being thrown about the place, I have one. Maybe below the progress bar, there could be a status section detailing what frame is currently being encoded, how long it's taken etc.
The moon on a stick that's what you guys want..... ;)
@Inventive: I'll try and add that in.
@berrinam: Sharing registry settings means that multiple versions will have to have the same settings if things are going to run smoothly. I may add some commandline parameters for encoding in the future.
-Nic
trbarry
22nd May 2006, 16:40
Thanks Nic. I was hoping you were going to release a new one of these.
- Tom
zambelli
22nd May 2006, 22:58
That's what the tooltips are for, they only have to leave their mouse over the combobox to get a description of what the numbers mean. Also, the weak/medium/strong will work in some cases, not in others though where -2, -1, etc are options.
The tooltips are useful, but they only describe the setting - not the possible values. For example, the tooltip for "Motion Search Level" describes the function of the setting, but it doesn't explain the meaning of -2, -1, 0, 1 and 2.
Maybe, I'll have to consider how intuitive the right logic would be. i.e. if you turn it off, should the settings revert (& should it only change settings that are "Not Set" (Think I'm going to change that wording to "Default"))
Perhaps something like this: if you enable COT, the associated settings get auto-set regardless of their current values. If you disable COT, the associated settings revert to default values. That way you wouldn't have to keep track of "last state" in a separate array. I think users would quickly figure out that if they want to override any setting associated with COT, they need to set COT first, then set the overrides second.
True. But other codecs are effected by this setting too, and they don't have that range (sometimes just 0 and 1). Also, people either want it done quick or want it done well IMHO. But I think I will change the wording to "Min" & "Max".
No need for that. You can get the maximum complexity level for the current codec by querying g_wszWMVCComplexityExMax (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmform95/htm/g_wszwmvccomplexityexmax.asp). Min and max would be insufficient for WMV9 needs. WMV9 MP encoder has 5 complexity levels; WMV9 AP has 6. The difference between 0 and 6 can be the difference between realtime encoding and 0.05x encoding. :)
1) Couldn't believe it was released 3 years ago....Any word on when Windows Media Format 11 SDK will be released? (if at all)
At the same time as WMP11... But I can't disclose any schedule details publicly. Considering that WMP11 will also ship with Vista... and there is more information publicly available about the Vista schedule... that ought to give you some hints about a possible timeframe.
2) Are there any other Registry settings that might be of some use? A look through the WM DLLs suggests there are others, but maybe they aren't useful/working.
For the encoder... I'm not aware of any others. There are some registry settings that control the post-processing levels in the decoder and enable/disable DXVA, but that's about it.
3) One of my colleagues was at a Hi-Def conference this past week and heard mention a couple of times of something called VC-2. Any relation to a future MS product in the works or is he confusing it with something with a similar name?
This is my first time hearing of it. Keep in mind, however, that "VC-1" is SMPTE's informal name for 421M. "VC-2" might indeed stand for "Video Codec 2", but it might not have anything to do with Microsoft.
zambelli
23rd May 2006, 00:32
Another cool set of options that you might want to consider supporting are the "Force Encoding Height" and "Force Encoding Width" registry settings. This allows the encoder to encode the video at a smaller resolution than the source, yet decode it at the original source resolution. What's the point of that? For example, if you're a fan of the "field discard" deinterlacing method, you could encode your 640x480 interlaced video as 640x240 progressive (where every other field is discarded), but have the decoder always decode it as 640x480.
zambelli
23rd May 2006, 02:37
Sharing registry settings means that multiple versions will have to have the same settings if things are going to run smoothly.
Actually, I believe registry settings only get queried once by the codec - at the beginning of the encoding session. So theoretically simultaneous encoding sessions should be possible - as long as they're not started at the same millisecond. :)
Valeron
23rd May 2006, 04:19
No need for that. You can get the maximum complexity level for the current codec by querying g_wszWMVCComplexityExMax (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmform95/htm/g_wszwmvccomplexityexmax.asp). Min and max would be insufficient for WMV9 needs. WMV9 MP encoder has 5 complexity levels; WMV9 AP has 6. The difference between 0 and 6 can be the difference between realtime encoding and 0.05x encoding. :)
Microsoft documentation team should update the MSDN codec part now, there's no VC-1 AP mention while the codec is already beta.
Morbo
23rd May 2006, 05:21
Am I doing something wrong....
I was testing a clip,and found that multiple passes + VBR = program disappearing...lol
I did set most of the advanced stuff,is there a conflict there somewhere?
*EDIT
Actually,any setting with VBR involved kills the gui(with all settings default in advanced).
killerhex
23rd May 2006, 06:54
i havent tried because i dont know how to use the advance features for it to get good quality can someone make a small guide
Backwoods
23rd May 2006, 07:12
Just what I have been looking for, thanks.
Morbo
23rd May 2006, 08:23
i havent tried because i dont know how to use the advance features for it to get good quality can someone make a small guide
Most settings are fine as is,IMHO......just the b-frames,and various preprocessing stuff needs to be disabled for a good "test".
BTW,if there is a guide to this tool somewhere.....I'd like to know too...just for more info on the settings(and effects there upon).
check
23rd May 2006, 08:39
Hi, many thanks for providing the tool! On suggestion would be to make the compressoin settings box resizeable / much more hueger. When browsing through all the settings for something like WMA10, it's nearly impossible to make sense of the hundreds of items in the list as it is :)
Great tool otherwise, count me in for a CLI version :)
bkman
23rd May 2006, 09:10
Useful prog!
Can you please explain the VBR setting, though? Does that enable CQ mode, or just VBR with the specified bitrate targed. And in the latter case, what does the VBR quality setting mean?
leiming2006
23rd May 2006, 11:07
True. But other codecs are effected by this setting too, and they don't have that range (sometimes just 0 and 1). Also, people either want it done quick or want it done well IMHO. But I think I will change the wording to "Min" & "Max".
I still hope you can make it not only "min"(0) and alternative "max"(1). I don't know if it's a hard work so I may be wrong. Sometimes the balance between the speed and quality is needed. ;)
Hopefully this will make encoding to WM9/VC-1 easier...
Yeah. It's the truth. Thanks a lot! AVS input is quite important!
Edit:
[suggestion] commandline options that offer a way to encode file
It's useful because someone can make a bat file to encode many files. (at the end of the bat file is "shutdown -s -f -t 0" ;) )
foxyshadis
23rd May 2006, 13:20
Why not use the existing wmcmd.vbs from zambelli to do the command-line encoding? I don't think he's posted the update yet, but it works just like a command-line exe.
leiming2006
23rd May 2006, 13:32
Why not use the existing wmcmd.vbs from zambelli to do the command-line encoding? I don't think he's posted the update yet, but it works just like a command-line exe.
It's hard to use.
I think Nic's WMEncoder will be much easier.
zambelli
23rd May 2006, 23:10
It's hard to use.
Not really. It's no harder to use than, say, x264.exe is. It might even have less parameters. :)
I think Nic's WMEncoder will be much easier.
The only real downside to wmcmd.vbs is that it requires the WM Encoder (or SDK).
berrinam
23rd May 2006, 23:15
Does it support avs input? If so, then I'll put it into MeGUI.
zambelli
23rd May 2006, 23:32
Does it support avs input? If so, then I'll put it into MeGUI.
wmcmd.vbs? It will when I realase the update (very soon!). However, if you're looking to include it in MeGUI, it might not be the best solution since it does have WME9 as a requirement.
leiming2006
24th May 2006, 05:58
wmcmd.vbs? It will when I realase the update (very soon!). However, if you're looking to include it in MeGUI, it might not be the best solution since it does have WME9 as a requirement.
And the other reason is that I can't find any information about WVC-1 in the help. (Windows Media Encoder 9) It's the only difficulty I meet. If you know, please tell me, thank you!
zambelli
24th May 2006, 08:35
And the other reason is that I can't find any information about WVC-1 in the help. (Windows Media Encoder 9) It's the only difficulty I meet. If you know, please tell me, thank you!
There's no mention of WVC1 in WME9 because WME9 precedes it by about 3 years. :)
You can find out more info about WVC1 in this thread: http://forum.doom9.org/showthread.php?t=111275
leiming2006
24th May 2006, 09:30
There's no mention of WVC1 in WME9 because WME9 precedes it by about 3 years. :)
You can find out more info about WVC1 in this thread: http://forum.doom9.org/showthread.php?t=111275
Sorry for my poor English, then I can't find any useful information out.
Could you please give me a example of command line?
I'll try whether prx file can offer the function that encoding files in a bat file.
Valeron
25th May 2006, 01:03
Sorry for my poor English, then I can't find any useful information out.
Could you please give me a example of command line?
I'll try whether prx file can offer the function that encoding files in a bat file.
The commandline/script encoder help docs comes with WME9 3 years ago, it's the very thing u r looking for.
to enable the avs support with wmcmd.vbs, you should mod the script in this way
So, what do you need to do to make WME9 work with Avisynth? It's quite simple, really. First make a copy of the wmcmd.vbs file that shipped with WME9. Call it something like WME9AVS.vbs, perhaps. Now open the file in Notepad or any text/code editor and find the text "Compute file duration". Beginning with that line, delete every line of code up until (but not including) "intSleepDuration = 2000". The deleted section should count about 20 lines of code. Now replace the deleted code with the line:
intDuration = 0
Save the file and you're done. You should now be able to use wmcmd.vbs with any valid .avs file as source. As I said, the only downside is that you won't be able to get the progress report about your encoding pass, including info about the start of Pass2. Oh well. Don't forget that the .vbs version of WME9 is just about as powerful as the full version of the encoder. If you run into a setting that's not supported in the script-based encoder, just go and create a profile in the full encoder and then use the script-based encoder with the "-wme" switch. This is essentially how you get 6-channel mono WAV input and other nifty tricks done.
zambelli
25th May 2006, 01:06
to enable the avs support with wmcmd.vbs, you should mod the script in this way
Posted by mcored, eh? :) Methinks I've been plagiarized (http://forum.doom9.org/archive/index.php/t-65638.html). :sly:
Valeron
25th May 2006, 01:18
Posted by mcored, eh? :) Methinks I've been plagiarized (http://forum.doom9.org/archive/index.php/t-65638.html). :sly:
:eek:doh.....
forgive me not being google-analytic to collect all info on the Internet....
anyway, i'm not familiar with VB, thx for your mod:D
killerhex
26th May 2006, 09:24
can you add avi as input instead of making an avs file
Valeron
26th May 2006, 09:59
can you add avi as input instead of making an avs file
WME can be feed avi well
killerhex
26th May 2006, 10:52
wme is a resource hog too i like using this program more than wme
McoreD
26th May 2006, 13:01
:eek:doh.....
forgive me not being google-analytic to collect all info on the Internet...
Valeron, can you tell me where did you paste that Zambelli's article from? It seems that you have manually typed my name, as it is mcored as I have been *always* used my name as McoreD.
From memory, here is where I have included Zambelli's WMCMD article in MSUN Knowledgebase:
http://microsoftuse.temp.powweb.com/mcored/knowledgebase/kb-avswme.htm
Cheers,
McoreD
Atlantis
6th July 2006, 10:37
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.
fight2win
15th July 2006, 19:17
thanks!
fight2win
15th July 2006, 19:27
where to get latest version of vc-1 codec from? sorry if this already answered!
benwaggoner
15th July 2006, 22:36
where to get latest version of vc-1 codec from? sorry if this already answered!
You can get it right here:
http://www.microsoft.com/windows/windowsmedia/forpros/encoder/default.mspx
sisman2000
31st July 2006, 19:59
I want to start Using VC1 for what i heard is good Interlaced encoding support, but your tool is missing that option right now, and my HD footage from Sony HC3 is all interlaced... and so far it doesn't look that great encoded.... will your program have interlaced option soon? or is there a way for me to deinterlace the Mpeg2 before i encode?
bond
31st July 2006, 20:09
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...
zambelli
2nd August 2006, 02:54
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...
Ummm, interlaced encoding has been supported in WMV for months now, ever since Advanced Profile codec was released with WMP11 and as standalone codec.
I can send you an interlaced WVC1 sample, if you'd like.
bond
2nd August 2006, 20:55
I can send you an interlaced WVC1 sample, if you'd like. yep sure, a small one if possible please
zambelli
3rd August 2006, 02:59
yep sure, a small one if possible please
Here you go:
http://www.citizeninsomniac.com/video/480i30__codec_WVC1__mode_2__framerate_29.970__type_2__preproc_17.wmv
Encoded with wmcmd.vbs (WME9) with this command line:
cscript wmcmd.vbs -videoonly -input 720x480_29.97i_900f.avi -v_codec WVC1 -v_mode 2 -v_quality 88 -v_framerate 29.970 -v_type 2 -v_preproc 17 -output 480i30__codec_WVC1__mode_2__framerate_29.970__type_1__preproc_17.wmv
If you play it back via VMR, the renderer will probably deinterlace the image on playback. If you want to see the interlaced lines, try opening it in Avisynth with DirectShowSource().
bond
3rd August 2006, 18:39
:thanks:
Nic
5th August 2006, 14:04
I did actually start to update WMNicEnc, but never got round to finishing it. So I up'd the unfinished version just now as it is very slightly better and has a couple of things people asked for. Maybe i'll get the motivation to update it more one day ;)
http://nic.dnsalias.com
-Nic
sisman2000
6th August 2006, 17:56
Thanks nic i see ur program is now beta not alpha... thanx... but can u still answer the question about interlacing... do you have to have an option for Progressive vs Interlaced if i want to use ur program to encode interlaced HDV to interlaced VC1?
Nic
6th August 2006, 18:00
@sisman: In my WMEnc, go to the Advanced Options, now hold your mouse over the combo/select box next to the words "Video Type" to see what the 5 options (0-4) mean. Alternatively read about it at: http://www.microsoft.com/windows/windowsmedia/howto/articles/codecadvancedsettings.aspx#VideoType
-Nic
zambelli
8th August 2006, 01:32
@sisman: In my WMEnc, go to the Advanced Options, now hold your mouse over the combo/select box next to the words "Video Type" to see what the 5 options (0-4) mean. Alternatively read about it at: http://www.microsoft.com/windows/windowsmedia/howto/articles/codecadvancedsettings.aspx#VideoType
Though, as I think I might've mentioned earlier in this thread, setting VideoType is not enough. That merely tells the codec to encode interlaced bitstreams. A flag still needs to be set on the ASF writer to make sure the resulting WMV file is marked as interlaced. It's a two-step process.
For anyone curious about encoding interlaced video with wmcmd.vbs, note that you need to set both -v_type to a non-zero value, and -v_preproc to 16, 17 or 18.
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.