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 > New and alternative video codecs

Reply
 
Thread Tools Search this Thread Display Modes
Old 17th May 2006, 01:08   #1  |  Link
zambelli
Doom9ing since 2001
 
zambelli's Avatar
 
Join Date: Oct 2001
Location: Seattle, WA, USA
Posts: 2,002
VC-1 and Windows Media Video 9 FAQ

Q: Where can I get the latest and greatest WMV9 (Microsoft VC-1) codec?
A:
There are several existing ways to get the WVC1 (Advanced Profile) and WMV3 (Simple/Main) codecs.Q: What is VC-1? What is WMV9? What's the difference?
A:
VC-1 is a codec specification as standardized by SMPTE in 421M. WMV9 is an implementation of that specification. Think of it this way: WMV9 is to VC-1 what x264 is to MPEG-4 AVC. In the context of Microsoft video codecs, WMV9 and VC-1 can be considered one and the same. Note, however, that in the future other companies may choose to implement VC-1 codecs, too.

Q: So what's the big deal with Advanced Profile? Is it a new codec?
A:
In some ways it is a new codec... in others, it's just an extension of the classic WMV9 codec. The SMPTE 421M standard for video compression (nicknamed "VC-1") was originally based on Microsoft's Windows Media Video 9 codec. However, a number of changes and improvements were made to the specification as a part of the SMPTE standardization. Three profiles were defined for VC-1: Simple, Main and Advanced Profile. The existing implementation of WMV9 (FourCC: WMV3) already covered Simple and Main profiles so Microsoft only had to add the remaining third profile. Advanced Profile includes new features such as true interlaced encoding support, transport independent bitstreams, resolutions up to 2048x1536 and bitrates up to 135Mbps.

Q: But wait! Didn't WMP10 ship with a WMV Advanced Profile codec years ago?
A:
Indeed it did. Microsoft began working on its implementation of WMV AP before VC-1 spec was finalized. That codec (FourCC: WMVA) shipped with WMP10 (Format SDK 9.5), but as final changes to the VC-1 spec were made, WMVA got out of sync with the official spec. Today WMVA is no longer VC-1 compliant and is generally considered deprecated.

Q: Does the new Advanced Profile codec have a different FourCC?
A:
Yes, it does. In order to differentiate it from SP/MP codec (FourCC: WMV3) and the non-VC1-compliant AP codec (FourCC: WMVA) and avoid issues with legacy decoders, the VC-1 compliant WMV9 Advanced Profile codec uses a new FourCC code: WVC1.

Q: Will switching to WMV9 AP improve the quality of my encodings? Should I stop encoding to Main Profile?
A:
Just switching from Main Profile to Advanced Profile is not enough to increase quality. Quality is subject to encoder efficiency, not profile level. The differences between profiles - in any codec - are in the feature set and decoder complexity. It is implied that AP content is more difficult to decode than MP content - that's the whole point of having profiles and levels.

Q: So what's the advantage of Advanced over Main Profile?
A:
Take a look the feature tables at http://en.wikipedia.org/wiki/VC-1 and the one below. AP's most important features are:
  • Interlaced encoding support (both frame and field modes)
  • Chroma and luma range reduction
  • Encoding at resolutions different than decode resolutions
  • Bitstream encapsulated metadata that allows VC-1 to be placed in almost any file container or transported over any protocol
For most part, none of that really affects quality if you're encoding progressive content. Microsoft's latest version of the WMV9 (WMV3/WVC1) encoder is v11, now available for download with the v11 Player and WMF SDK. If you use this encoder to encode to either Main Profile or Advanced Profile, you ought to be able to get the same quality for both because most of the quality-related optimizations (i.e. B-frames, inloop filtering, perceptual optimization, etc.) apply to both MP and AP.

When deciding whether to encode to Main or Advanced profile, you should consider your target playback platform (PC? Xbox? Zune? PocketPC?) and your source (progressive? interlaced? mixed?).

Q: OK, I installed the codec. How do I encode with it? It doesn't show up in VirtualDub.
A:
All Windows Media codecs are implemented as DirectX Media Objects (DMO) and/or Media Foundation Transforms (MFT). VirtualDub uses ancient Video for Windows interfaces and requires VCM type codecs. Here's a short list of VC-1 encoder apps:
  • Many video editing applications such as Adobe Premiere Pro and Avid Xpress support exporting to WMV9. They typically leverage Microsoft WMV9 DMOs distributed with Windows/WMP/WMFormatSDK. If your video editing software supports exporting to WMV9 but you're not sure how updating to the latest WM Format runtime will affect it - check their website for support details first.
  • Microsoft Expression Encoder - The newest Microsoft encoder application is targeted at Silverlight content creators but can of course be used for general WMV9 encoding just as well.
  • Windows Media Encoder 9 Series - This Microsoft encoder supports nearly every scenario imaginable: offline encoding, live capture & encode, streaming over networks, washing your dishes... It's all there. To encode to WVC1, simply create a Custom Session, go to Properties, Compression tab, hit Edit - and select "WMV9 Advanced Profile" from the video codec list. WME9 also supports command-line encoding via the WMCmd.vbs script. One caveat though: WME9 is no longer supported by Microsoft.
  • WMNicEnc - Nic's WMV encoder takes Avisynth input only and supports all the advanced encoding settings of VC-1. Small, easy and effective.
  • WMV Muxer/Encoder by DVBPortal - A simple WMV muxer and encoder useful for muxing VC-1 streams into ASF without recompressing. Encoder feature requires .prx profiles which can be customized using the WM Profile Editor from the WME9 package.
Q: How do I configure the advanced settings of WMV9 AP? I don't see any UI in WME9 to do this!
A:
The advanced settings of the WMV9 Advanced Profile codec are available through the standard Windows Media Codec APIs, but are also enabled through registry settings. The registry settings are made available in order to allow legacy encoder applications (such as Windows Media Encoder 9) which are unaware of the new API properties to take advantage of the new settings. Windows Media Encoder has not been updated since Windows Media 9 Series and therefore does not have any user interface elements for the new codec. Yeah, it's not the greatest and user friendliest interface, but it's actually how most codecs store their long term settings. Fortunately, there are alternatives:
  • WMV9 PowerToy - a tool for configuring all the advanced settings of WMV9 encoder and decoder
  • McoreD's WMV9 Advanced Settings Editor - a UI for configuring the advanced settings of the WMV9 encoder
  • Nic's WMV Encoder - Nic's updated encoder now features an Advanced Options pane for configuring all the, well, advanced options
  • WMCmd.vbs - All you command-line fans can rejoice because the updated wmcmd.vbs supports all the advanced settings via command-line now
Q: I am trying to use WME9 on Vista and I'm experiencing crashes in cscript.exe and wmenc.exe. What can I do?
A:
These are known issues. Microsoft has released a hotfix that addresses the problems.

Q: Cscript.exe fails to initialize the WMEncoder object when I try to use WMCmd.vbs with 32-bit WME9 on XP/Vista x64. Is WMCmd.vbs encoding broken in this scenario?
A:
Not at all. The default script interpreter on Windows x64 is 64-bit cscript.exe. WME9 x86 installs 32-bit COM objects (used by WMCmd.vbs). In order to run WMCmd.vbs, you need to use the 32-bit cscript.exe located in \Windows\SysWOW64 or simply run the 32-bit cmd.exe command-prompt which will ensure the 32-bit version of cscript.exe gets invoked.

Q: Should I use the 32-bit or 64-bit version of Windows Media Encoder 9?
A:
64-bit WMV codecs don't really offer much of a performance improvement (if any at all) over 32-bit WMV codecs. The important thing to keep in mind is that if you want to use WME9 x64 for transcoding, your source decoders will need to be 64-bit too. So unless you've got 64-bit versions of XviD, MPEG-2, H.264 and whatever other decoders you want to use - it's probably not worth the hassle.

Q: WME9 gives me an error when I try to use Avisynth script as source. Does WME9 not support .avs input?
A:
It does - sort of. WME9 was developed years ago when Avisynth wasn't very widely used so the WME9 team never considered explicitly adding Avisynth support. However, due to Avisynth's similarity to the AVI interface, it's possible to force WME9 to read Avisynth scripts anyway:
  • GUI: Use a custom session and in Properties' Sources tab select "Both device and file" for source, then choose "Browse for file" for video and/or audio and point to your .avs script.
  • WMCmd.vbs: The original command-line encoder script that shipped with WME9 didn't support .avs inputs, but independent efforts have been made since then to update the script and work around the limitation.

Q: Do these registry settings apply only to Advanced Profile (WVC1)?
A:
Depends on which codec version you are using. If you're using the standalone WVC1 codec download package on top of WMP10/WMFSDK9.5, then the registry settings will affect only Advanced Profile (WVC1) encoding. If, on the other hand, you are using WMP11/WMFSDK11 (or Windows Vista or later), the registry settings will affect all 3 profiles - Simple, Main (WMV3) and Advanced (WVC1). However, not all registry settings are valid in every profile. Here is how they map out:

Q: Where can I find out more about VC-1 and WMV9 Advanced Profile?
A:
Check out these links:
I'll post more info as it becomes available.

Last edited by zambelli; 6th December 2012 at 07:55.
zambelli is offline   Reply With Quote
Old 20th June 2006, 17:49   #2  |  Link
bond
Registered User
 
Join Date: Nov 2001
Posts: 9,770
thanks a lot for this information thread
plz note the following:
- WMAudio discussions belong in the Audio Encoding forum
- WMPlayer discussions belong in the Software Players forum

If you have any suggestions, ideas which points should be added or found any broken links, feel free to post below!

Please don't use this sticky to discuss any WMV9 issues, this thread is meant for info only!
If you have any questions plz search the forum, perhaps they have been answered already and only then start a new thread

thanks,
bond
__________________
Between the weak and the strong one it is the freedom which oppresses and the law that liberates (Jean Jacques Rousseau)
I know, that I know nothing (Socrates)

MPEG-4 ASP FAQ | AVC/H.264 FAQ | AAC FAQ | MP4 FAQ | MP4Menu stores DVD Menus in MP4 (guide)
Ogg Theora | Ogg Vorbis
use WM9 today and get Micro$oft controlling the A/V market tomorrow for free

Last edited by bond; 20th June 2006 at 17:52.
bond is offline   Reply With Quote
Old 23rd May 2007, 22:16   #3  |  Link
Revgen
Registered User
 
Join Date: Sep 2004
Location: Near LA, California, USA
Posts: 1,545
Whats the difference between WMVideo Advanced Decoder DMO and WMVideo Decoder DMO?

I thought it had to do with one decoder being able to decode advanced profile VC1 vids and the other couldn't, but the WMVideo Decoder DMO seems to work fine with Advanced Profile HD-DVDs.
__________________
Pirate: Now how would you like to die? Would you like to have your head chopped off or be burned at the stake?

Curly: Burned at the stake!

Moe: Why?

Curly: A hot steak is always better than a cold chop.
Revgen is offline   Reply With Quote
Old 29th May 2007, 10:58   #4  |  Link
zambelli
Doom9ing since 2001
 
zambelli's Avatar
 
Join Date: Oct 2001
Location: Seattle, WA, USA
Posts: 2,002
Quote:
Originally Posted by Revgen View Post
Whats the difference between WMVideo Advanced Decoder DMO and WMVideo Decoder DMO?
WMVideo Advanced Decoder DMO is wvc1dmod.dll. It's the decoder that gets downloaded from the Microsoft codec server by WMP if you try to play a piece of WVC1-encoded content in WMP10 or WMP9. The same decoder was also included in the WMV9 AP codec beta package.

The v11 decoder (wmvdecod.dll) is the best WMV9 decoder for all 3 profiles.
zambelli is offline   Reply With Quote
Old 10th June 2007, 04:31   #5  |  Link
Revgen
Registered User
 
Join Date: Sep 2004
Location: Near LA, California, USA
Posts: 1,545
If anybody has issues with libavcodec's VC1 decoder, Kostya is the main developer of the decoder as of now. You can reach him\her at this website. http://codecs.multimedia.cx/
__________________
Pirate: Now how would you like to die? Would you like to have your head chopped off or be burned at the stake?

Curly: Burned at the stake!

Moe: Why?

Curly: A hot steak is always better than a cold chop.
Revgen is offline   Reply With Quote
Old 21st November 2007, 02:27   #6  |  Link
Thunderbolt8
Registered User
 
Join Date: Sep 2006
Posts: 2,197
hm its seems that wmvideo decoder dmo has the same problem as ffdshow with libavcodec, both dont work properly with interlaced vc-1 video as it seems.
in case of wmvideo decoder dmo its uneven distribution of the use of both cores. while its ~50 : 50 for every other progressive VC-1 video (hd dvd or blu-ray streams for example), its something like 66 - 33 or 75 - 25 in case with interlaced vc-1 video (example: galapagos HD DVD 1080i; sample: http://www.sendspace.com/file/lvlvtv )

Last edited by Thunderbolt8; 21st November 2007 at 04:20.
Thunderbolt8 is offline   Reply With Quote
Old 6th May 2008, 03:07   #7  |  Link
benwaggoner
Moderator
 
Join Date: Jan 2006
Location: Portland, OR
Posts: 4,750
Quote:
Originally Posted by clint999 View Post
Whats the difference between WMVideo Advanced Decoder DMO and WMVideo Decoder DMO?

I thought it had to do with one decoder being able to decode advanced profile VC1 vids and the other couldn't, but the WMVideo Decoder DMO seems to work fine with Advanced Profile HD-DVDs.
The current DMO does everything. The Advanced DMO predates that, and was a way to incrementally add "WVC1" support. No reason to use it anymore.
__________________
Ben Waggoner
Principal Video Specialist, Amazon Prime Video

My Compression Book
benwaggoner is offline   Reply With Quote
Old 23rd April 2009, 09:28   #8  |  Link
satish.vc
Registered User
 
Join Date: Feb 2009
Posts: 1
Hi,

I have a question regarding VC-1 decoder FW/RW implementation for clips with B-frames. Let us say the sequence of frames in the clip is I, P, B, B, I, B, B, P. If I do a Forward at the beginning, I would need to seek to the next "I frame". So I would skip I, P, B, B in the above sequence and jump to I, B, B, P. Now I decode the "I frame" but decoding the next frame, which is a B frame, requires 2 references. But I have only 1 frame (I frame) before it because the history is flushed. How to handle this case? Is it that we need to skip all the B frames in this example and jump to P frame - i.e in the sequence I, B, B, P decode I, P skipping B, B?

I am asking this question because I did not see any description in the spec about bitstream seek and how to manage reference frames during a Fast Forward or Rewind operations. I hope this question is relevant to this thread.
satish.vc is offline   Reply With Quote
Old 21st April 2010, 08:38   #9  |  Link
MichaelChou
Registered User
 
MichaelChou's Avatar
 
Join Date: Mar 2010
Posts: 1
Microsoft Expression Encoder 3 is free!
http://www.microsoft.com/downloads/d...d-1be12eef89a8
http://www.microsoft.com/downloads/d...1-ad6ea7b62fbb
MichaelChou is offline   Reply With Quote
Old 15th April 2011, 14:32   #10  |  Link
space1999
Banned
 
Join Date: Mar 2011
Posts: 37
Quote:
Originally Posted by zambelli View Post
<SNIP>

AP's most important features are:
  • Interlaced encoding support (both frame and field modes)
Apologies for my ignorance, but,
what is/are the exact difference(s) between the field-based and the frame-based encodings?

EDIT:

Nevermind, I should have paid more attention to the damn documentation :–/

Quote:
FrameType

I

The buffer contains an I frame.

P

The buffer contains a P frame.

B

The buffer contains a B frame.

BI

The buffer contains a B frame. All macroblocks are encoded as intra-blocks. This is similar to an I frame, but cannot be used as a reference frame.

II

The buffer contains top field I, bottom field I.

IP

The buffer contains top field I, bottom field P.

PI

The buffer contains top field P, bottom field I.

PP

The buffer contains top field P, bottom field P.

BB

The buffer contains top field B, bottom field B.

IB

The buffer contains top field I, bottom field B.

BIB

The buffer contains top field BI, bottom field B.

BBI

The buffer contains top field B, bottom field BI.

BIBI

The buffer contains top field BI, bottom field BI.

Skipped

The buffer contains a skip frame.

Remarks

Frame types I, P, B, and BI are used for progressive and interlaced frame encoding.


The remaining frame types are used for interlaced field encoding to describe how each field is encoded. For interlaced field frame types, the field type indicator BI means that the field is type B but all macroblocks are encoded as intra-blocks.

Last edited by space1999; 16th April 2011 at 14:24.
space1999 is offline   Reply With Quote
Old 3rd August 2019, 22:06   #11  |  Link
Knocks
Registered User
 
Join Date: Oct 2003
Posts: 48
So is this thing dead/deprecated?
Knocks is offline   Reply With Quote
Old 4th August 2019, 01:50   #12  |  Link
Blue_MiSfit
Derek Prestegard IRL
 
Blue_MiSfit's Avatar
 
Join Date: Nov 2003
Location: Los Angeles
Posts: 5,988
Yes, very much so. I can't think of any applications where new VC-1 encoding makes sense. Legacy stuff is still MPEG-2, current stuff is AVC, HEVC, VP9, AV1, etc.

Please don't bump 8 year old threads
Blue_MiSfit is offline   Reply With Quote
Old 4th August 2019, 12:59   #13  |  Link
Knocks
Registered User
 
Join Date: Oct 2003
Posts: 48
You can't bump something that's already pinned to the top of the page
Knocks is offline   Reply With Quote
Old 4th August 2019, 15:29   #14  |  Link
filler56789
SuperVirus
 
filler56789's Avatar
 
Join Date: Jun 2012
Location: Antarctic Japan
Posts: 1,351
VC-1 still is a valid choice, as long as you store it in any container that is not ASF
filler56789 is offline   Reply With Quote
Reply

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 21:29.


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