View Full Version : WMV9 (VCM) info & questions
Crabba
29th May 2003, 00:46
After a pretty thorough comparison between WMV9 VCM, XviD & DivX5 (see http://forums.divx.com/viewtopic.php?topic=49263&forum=13) I came to the conclusion that WMV9 gives the best quality for me. Unfortunately there are a few small and not so small quirks that is making me doubt in the last second...
I've seen some people mention some of these things already, and I'm hoping that someone from Microsoft could shed some light on this, and maybe even fix the problems :)
1. Two pass encoding not possible in joblist in VirtualDub. I've checked the joblist-file when adding a job using WMV9 and noticed that there is a missing ' "); ' at the end of the codec properties info. Unfortunately, even when I tried to manually put this in the file it still didn't work properly...
Without it VirDub won't even start encoding - after editing it does encode but seemingly only does two one-pass encodings or something :confused:
2. I've seen some people complaining that it's not possible to mux two different WM9 streams into one (for example movie + credits). And yes, it doesn't work with VirDub or VirDubMod but try using Avi-Mux instead! Works perfectly, both when using same settings and different encoding modes. If this is a bug in VirDub, WM9 or Avi-Mux I don't know...
3. Bitrate/File size. I've come to the conclusion (like some other people) that when setting the bitrate in WMV9 you should use DivX3 in gknot when calculating! Using the DivX3 numbers I have gotten almost identical sizes with both DivX5, XviD and WM9! When using DivX5 numbers in gknot the filesize was always oversized!
3.1 Bitrate/size bug in WM9. When trying to encode credits to a TV-series using 300000 bitrate I noticed a strange bug. First two episodes where no problems with correct filesizes, but with the following two WM9 completely REFUSED to use my supplied bitrate, and it came out 3-5 times the calculated size :eek:. I even tried lowering bitrate in several steps and I had to go as low as 100000 to get a filesize lower than the calculated one at 300000! The strange thing is: After some more testing I noticed that when changing from my 10 second keyframe interval to 5 seconds, I suddenly got the calculated filesize even at 300000! So, strange bug that one...
4. The most important one really! When doing comparisons I always use frame by frame comparison using VirDub, because it's the best (only) way to correctly compare the quality on different encodings IMHO. Unfortunately it seems that WMV9 has a really crappy directshow filter :confused: because details that show perfectly well in VirDub are REALLY smoothed and washed out when playing the same file in Mediaplayer 6.4!! And it's not even always! Sometimes I get a detailed face and sometimes there are no details at all, in the same scene!! What kind of filter does WM9 use anyway?? Since the only thing that shows up on codec properties is 'Video renderer', and no WM9 decoder at all :(
Could you Microsoft people PLEEASE fix this and at least make a directshow filter that simply shows AS IS, with no smoothing whatsoever? Because it doesn't really matter if the video itself has great quality, when it looks like **** when watching it :mad:
Ok, end of my premiere post now! :D
Atamido
29th May 2003, 01:22
1. The reason for this was posted here. (http://virtualdub.everwicked.com/index.php?act=ST&f=15&t=3043&) To quote Avery Lee:There is a fixed line limit of 8K in the job output routine, but it appears the WM9 codec uses quite a large configuration struct -- 7K binary, about 10K BASE64 encoded. The answer is no, there is no workaround other than a code fix.
2. I think that this is caused by WM9 storing seperate decode settings in the codec private. If AVI-Mux ignores these, then it will combine the streams fine. I also think that VirtualDub will compare them between the two files to ensure that the streams are compatible.
3. Why are there two number threes?
4. Didn't someone post a registry setting that allowed you to set the amount of post processing in the DS filter?
ooops!
29th May 2003, 23:45
> Crabba
Have you been been sucessful creating 2pass encodes with WMV9 yet?
I've tinkered with VirtualDub & VirtualDubMod but find that when I encode the exact same input 'video only' file, I get different output file sizes!
I obtain far more accurate encodes with WMV9 & DivX5 when I use MPEGmediator (v2.5). However, 2pass encodes will have to be done manually.
If you are interested I can let you know how to do this.
I've generated many 720x576 full frame (anamorphic) encodes with this application and obtained excellent accurate results.
Crabba
30th May 2003, 01:51
Pamel: Yes, I checked virtualdub.org and it seems he already fixed the WMV9 joblist problem in the latest VirtualDub release, havn't tested it yet though...
There are two number three's because 3 is about the fact that WM9 generally works perfectly in bitrate/size prediction when using the DivX3 calculator in gknot, while 3.1 is about a strange bug in the encoder in a specific situation...
I'm really curious about the registry setting you mentioned if that is true! I have tried searching for it but found nothing :(. If anyone know about this registry setting to change post-processing please let me know!
ooops!: I havn't had any problems at all doing 2-pass encodes using WMV9 so far, but I've started all of them manually in VirDub 1.5.2.
I have no idea what MPEGmediator is :confused:. I usually do my encodes using Gordian knot as a calculator, and then just open the avs-file in VirDub to do the actual encoding, with specified parameters, start/end frames etc.
Atamido
30th May 2003, 05:07
Originally posted by Crabba
I'm really curious about the registry setting you mentioned if that is true! I have tried searching for it but found nothing :(. If anyone know about this registry setting to change post-processing please let me know! The search button (http://forum.doom9.org/showthread.php?s=&threadid=52520#post307323) is your friend. ;) \HKEY_CURRENT_USER\Software\Microsoft\Scrunch\Force Post Process Mode
This is a DWORD value. The valid value is from 0 to 4, 0 being turning off post filter and 4 being the strongest. If the value is outside this range, the decoder will use the automatic mode to decide the post filter strength.
ooops!
30th May 2003, 19:16
Hi Pamel,
It would seem that a lot of people use Gordian Knot to rip the DVD etc, generate an avs-file and then use VirDub for the encoding process.
A couple of months ago I did an experiment with the following encoder applications. Vidomi, Virtual Dub, Virtual Dub Mod, Mpeg Mediator and Gordian Knot.
I encoded the same 15min 'video only' (Mpeg1 5000kbps 720x576 'anamorphic') source file into a DivX5 file.
I was quite surprised when each application generated a different sized output file in both 1pass and 2pass modes.
I think I'll stick with DVDdecrypter to do the ripping and MPEGmediator to do the encoding, for the time being.
Each to there own eh!
midiguy
30th May 2003, 23:02
That blurry playback issue (in WMP 6.4) that you are talking about has nothing to do with post-processing. Do you have WMP 7/8/9 installed? I would install the latest WMP player, and THEN try using wmp 6.4. For some reason, to get decent directshow playback, you need one of the higher (yet crappier) versions of WMP installed.
To use WMP 6.4 when WMP 9 is installed, simply navigate to:
C:\Program Files\Windows Media Player
and you will find a "mplayer2.exe" or a "maplyer32.exe". This file will launch version 6.4
I know, it's weird.. but it works!
mingcl
30th May 2003, 23:15
Originally posted by Crabba
3.1 Bitrate/size bug in WM9. When trying to encode credits to a TV-series using 300000 bitrate I noticed a strange bug. First two episodes where no problems with correct filesizes, but with the following two WM9 completely REFUSED to use my supplied bitrate, and it came out 3-5 times the calculated size :eek:. I even tried lowering bitrate in several steps and I had to go as low as 100000 to get a filesize lower than the calculated one at 300000! The strange thing is: After some more testing I noticed that when changing from my 10 second keyframe interval to 5 seconds, I suddenly got the calculated filesize even at 300000! So, strange bug that one...
4. The most important one really! When doing comparisons I always use frame by frame comparison using VirDub, because it's the best (only) way to correctly compare the quality on different encodings IMHO. Unfortunately it seems that WMV9 has a really crappy directshow filter :confused: because details that show perfectly well in VirDub are REALLY smoothed and washed out when playing the same file in Mediaplayer 6.4!! And it's not even always! Sometimes I get a detailed face and sometimes there are no details at all, in the same scene!! What kind of filter does WM9 use anyway?? Since the only thing that shows up on codec properties is 'Video renderer', and no WM9 decoder at all :(
Could you Microsoft people PLEEASE fix this and at least make a directshow filter that simply shows AS IS, with no smoothing whatsoever? Because it doesn't really matter if the video itself has great quality, when it looks like **** when watching it :mad:
Ok, end of my premiere post now! :D
Crabba, thanks for the comments and feedbacks.
For 3.1, what encoding mode did you use? 1-pass or 2-pass? VBR or CBR? Sounds like it is 2-pass VBR.
For 4, please do try the registry setting and let us know whether it improves your experience.
To answer midiguy's point, installing WMP 7/8/9 doesn't install the DShow filter for WMV 9 decoder. 6.4 player actually uses the VCM codec to play back the WMV 9 (in avi) contents.
Thanks,
Ming
Microsoft
Sgt_Strider
30th May 2003, 23:25
Originally posted by mingcl
Crabba, thanks for the comments and feedbacks.
For 3.1, what encoding mode did you use? 1-pass or 2-pass? VBR or CBR? Sounds like it is 2-pass VBR.
For 4, please do try the registry setting and let us know whether it improves your experience.
To answer midiguy's point, installing WMP 7/8/9 doesn't install the DShow filter for WMV 9 decoder. 6.4 player actually uses the VCM codec to play back the WMV 9 (in avi) contents.
Thanks,
Ming
Microsoft
Hey Ming, I was wondering do you happen to know the formula in determining the right bitrate to use for a 2-pass VBR encoding?
mingcl
30th May 2003, 23:42
Originally posted by Sgt_Strider
Hey Ming, I was wondering do you happen to know the formula in determining the right bitrate to use for a 2-pass VBR encoding?
The way to calculate the bitrate for 2-pass VBR is pretty much the same as CBR (except the factor of buffer size in CBR).
However, one key factor, which we didn't seem to document in the help of the VCM beta release (and I will make sure that we add this in RTM), is that there is no frame dropping allowed in the VBR mode on the encode side. That is, if the specified bitrate is too low and the ecoder can't meet this target even when using the lowest quality, it will exceed the bitrate. This is documented in WMEncoder 9, but not WMV 9 VCM beta.
But I am not sure whether this is the cause of Crabba's issue since it is strange that the bitrate is decreased when the key frame distance is reduced. It should be the other way. So I do need to get Crabba's settings and possibly source as well to repro the problem here.
Thanks,
Ming
Microsoft
vinetu
31st May 2003, 02:38
Ming,
I'm pretty sure you can see the "bitrate-keyframe interval" bug yourself-
Get some short 640x352 video and encode it in 2-pass VBR at 1 700 000 b/s and
keyframe interval > 20 sec (64sec in my case).Then set the keyframe interval
< 20 sec (me set 8sec) and encode again into new file.
The files size should be in 1.0:1.7 ratio - my files was 10MB(64s) vs 17MB(8s)
Thanks!
Good Work!
vinetu
1st June 2003, 14:17
Update:
My previous example is not true with full movies-
I recently encoded "Armagedon"(217006 frames,25fps,640x352-anamorphic)
settings are:
2-pass VBR
1400000 b/s
keyframe interval-64000 ms
decoder compl.-Complex
Performance- 100
......................................................|b/sec| |sec|........................
Expected size - 1449 MB |_formula-((( 1400000*8680 )/8)/1024)/1024_|
Received size - 1520 MB
...so the bug is true for very short clips only...
(my short test clip was 2007 frames,25fps,640x352)
Crabba
1st June 2003, 15:19
Really great stuff!! The Force Post Process Mode worked like I hoped it would! Now the video looks the way it SHOULD have done from the beginning :) But like Doom9 said in the other thread, it really would be a lot nicer if that option was available in a slider in the directshowfilters properties...
I first tried to change the existing keys 'Post Process Mode' that was also set to '4' but that didn't have any visible effect. What does that one and the 'Current Post Process Mode' do anyway?
Pamel: Like I said, I actually did use the search button and tried searching both for WMV9 and postprocessing etc but for some reason I didn't find anything :devil:
To midiguy: I already have WMP9 installed so that was not the problem for me anyway...
mingcl: Thanks for listening :). Like you guessed, I was using 2pass VBR at decoder Complex and quality 100 for both the main video and credits. First with 10 sec keyframe interval, then with 5 sec interval (which solved the problem).
FYI I also tried 2pass peak with the same problem. Also, I can guarantee it has nothing to do with image complexity since all credits frames are VERY simple black screen with static text credits (no scrolling credits). It's really odd because when checking the encoding process, It starts using an ENORMOUS bitrate in the beginning, something like 450kb/s which gradually lowers during the encoding process, but very slowly so the file is oversized already after a few seconds of credits...
mingcl
1st June 2003, 20:10
Thanks all for the info. This should be sufficient for us to investigate. We will go from here.
Thanks again.
Ming
Microsoft
Crabba
3rd June 2003, 00:39
On another subject, could someone tell me if WMV9 supports YV12 color-mode, as with AviSynth 2.5x?
I've just recently started using AviSynth 2.5 and in the FAQ's only DivX, XviD and RV9 are listed as compliant with YV12.
At least I have been able to encode to WMV9 using AviSynth 2.5 but I don't know if it might do some internal conversion to either YUV or RGB anyway?
I noticed when testing a ColorspaceTest program someone on this forum made that when playing files using WMV9 it says the system is using RGB, while with DivX/XviD it reports YUV (so far none has reported YV12) :(, does anyone know if it's possible to change color output mode?
Oh btw, 2-pass encoding now works perfectly using joblist in VirtualDub v1.5.4! Now it's just the question whether VirDub v1.5.4 works correctly with YV12 as well... It DOES encode using AviSynth 2.5 but according to the guides standard VirDub doesn't support YV12 :confused: ...
Wilbert
3rd June 2003, 11:23
Oh btw, 2-pass encoding now works perfectly using joblist in VirtualDub v1.5.4! Now it's just the question whether VirDub v1.5.4 works correctly with YV12 as well... It DOES encode using AviSynth 2.5 but according to the guides standard VirDub doesn't support YV12.
The latter just means that Vdub (actually a YV12 decoder) makes a YV12->YUY2 conversion, when setting the video to 'fast recompressing'.
while with DivX/XviD it reports YUV (so far none has reported YV12) , does anyone know if it's possible to change color output mode?
Don't know about this program, but YUV is a colorspace. YV12, but also YUY2 are formats of YUV (see: http://www.avisynth.org/index.php?page=Section+3%3A+Filters+and+colorspaces#q3.1 for more info).
Crabba
3rd June 2003, 15:27
Originally posted by Wilbert
The latter just means that Vdub (actually a YV12 decoder) makes a YV12->YUY2 conversion, when setting the video to 'fast recompressing'.
That's what I thought too, so I did a test encoding the same avs-script with identical settings with both VirtualDub v1.5.4 and the latest VirtualDubMod using fast recompress, and there was basically no speeddifference at all between them :confused:.
Don't know about this program, but YUV is a colorspace. YV12, but also YUY2 are formats of YUV (see: http://www.avisynth.org/index.php?page=Section+3%3A+Filters+and+colorspaces#q3.1 for more info).
Yes, I'm aware of this. My question is why I'm not getting YV12 output from either DivX or XviD files, and only RGB output from WMV9, and if it's possible to change it. Since it should be better to avoid any color-conversions in output as well :)
Crabba
10th June 2003, 18:22
I've now done more testing with both DivX5 & WM9 using both AviSynth 2.07 & 2.52 and noticed the following in my tests:
- AviSynth 2.52 is faster than 2.07, but VirtualDubMod is not faster than the latest standard VirtualDub using AviSynth 2.52
- DivX5 gains more from using AviSynth 2.52 than WMV9 VCM does. With DivX5 I gained about 17% from 2.07 -> 2.52, with WMV9 I only gained about 4% speed...
The question is, is it advisable qualitywise to use AviSynth 2.52 with WMV9? What does WMV9 use internally? YV12 or YUV or RGB? Could any of the Microsoft people answer this?
temporance
10th June 2003, 22:11
> DivX5 gains more from using AviSynth 2.52 than WMV9 VCM does.
That's because DivX5 is a faster codec than WMV9. So a faster AviSynth might save you 5 minutes coding time but 5 minutes of 20 minutes (DivX example) is a bigger percentage than 5 minutes of 55 minutes (WMV9 example).
All current codecs use YV12 internally (proper name is 4:2:0).
SeeMoreDigital
10th June 2003, 22:31
Crabba
In my experience encoding to WMV(9) can't be speeded up very much if at all, without some loss in quality.
It really does not matter which WMV9 encoder you use, WME9 or the WMV9 VCM version, the encoder is pityfully slow.
However, I did notice that encoding speeds can be increased if you have one of those new hard drives with a built in 8MB buffer. But all the other codecs worked faster too!
Sirber
10th June 2003, 23:44
8MB buffer increase encoding speed? :D :D :D
trbarry
11th June 2003, 15:40
- DivX5 gains more from using AviSynth 2.52 than WMV9 VCM does. With DivX5 I gained about 17% from 2.07 -> 2.52, with WMV9 I only gained about 4% speed...
It seems I read somewhere that while WM9 does use a 4:2:0 internal format there is still no way to pass it YV12 directly and avoid the extra color conversions.
So the YV12 speed improvements don't completely apply yet for WM9. YV12 may speed up the Avisynth filters some but you still don't get the main CPU savings using WM9 (or maybe just the VCM?). I think this also means you still don't get the extra chroma precision gained from avoiding extra color conversions.
- Tom
Lobuz
24th June 2003, 11:53
At the other hand is there a way to set WMV9 diectshow decoder output to YUY2 instead of YV12? I just used ffdshow to do that convertion but maybe there is a simpler way? If someone curious I have a little shifted luma (2 pixels) with GeForce YV12 output.
Regards
Lobuz
bond
24th June 2003, 12:42
any chance to ever use wmv9 vcm on win98/me (i know i am repeating myself)?
why doesnt m$ support at least its own products?
and no i wont buy winxp/2000 just to use wmv9 vcm and i dont think that anyone will ever do this :mad:
Sirber
24th June 2003, 13:03
you mean to buy windows? :D
trbarry
24th June 2003, 16:24
any chance to ever use wmv9 vcm on win98/me (i know i am repeating myself)?
I second this request.
I put up Win/Xp for awhile to play with WM9 but when it (Xp) finally became unbootable the only Ghost I had was of Win/Me, so I went back.
So while I'm done playing with WM9 for the moment anyway it would be nice to have Win/Me support. Without that I probably won't use WM9 for encoding again until there is hardware playback support.
- Tom
SeeMoreDigital
24th June 2003, 17:29
I find this WinXP O/S boot knocking a bit strange.
Sure it's a shame that WMV9 VCM does'nt work with WinME and below!
Sure you're going to have to shell out some more cash to M$ for an WinXP CD!
But once you've purchased WinXP you can stick it on your PC more that once by creating a multi-boot partition system.
By doing this, you don't fell so bad when WinXP doesn't boot up (for what ever reason) because you just boot from another partition!
And as we all know, PC's die quite often when you fart about with them as much as we do!
Tommy Carrot
25th June 2003, 01:47
Originally posted by bond
any chance to ever use wmv9 vcm on win98/me (i know i am repeating myself)?
That would be great indeed, but it wont happen IMO. :( I don't think the porting would take more than 1-2 days if they would want it to do seriously.
Sirber
25th June 2003, 03:28
or just recompile whitout the "if (WIN_NT)" :D
bond
25th June 2003, 13:20
;) @sirber
thank god that there is xvid, rv9, aac and vorbis...
Sgt_Strider
26th June 2003, 02:20
Originally posted by mingcl
The way to calculate the bitrate for 2-pass VBR is pretty much the same as CBR (except the factor of buffer size in CBR).
However, one key factor, which we didn't seem to document in the help of the VCM beta release (and I will make sure that we add this in RTM), is that there is no frame dropping allowed in the VBR mode on the encode side. That is, if the specified bitrate is too low and the ecoder can't meet this target even when using the lowest quality, it will exceed the bitrate. This is documented in WMEncoder 9, but not WMV 9 VCM beta.
But I am not sure whether this is the cause of Crabba's issue since it is strange that the bitrate is decreased when the key frame distance is reduced. It should be the other way. So I do need to get Crabba's settings and possibly source as well to repro the problem here.
Thanks,
Ming
Microsoft
Can you kinda clearify this for a newbie to video encoding? Can you show me an example on how to calculate it? Or Can anyone here help me on this? Thx
vBulletin® v3.8.5, Copyright ©2000-2012, Jelsoft Enterprises Ltd.