View Full Version : VC-1 Encoder SDK - Professional released
lazyn00b
28th December 2007, 06:39
http://www.microsoft.com/downloads/details.aspx?familyid=5031c859-e8da-41bc-98e3-c13add5378b0&displaylang=en&tm
"The Microsoft VC-1 Encoder SDK - Professional is designed to provide file-based and/or real-time encoding capability to general content creation toolsets or dedicated encoding software applications.
Optimizations and features include:
• Can output VC-1 Elementary Streams for delivery in HD Optical Disc applications
• Performance improvements over the Windows Media FSDK11 for the latest generation of processors from Intel and AMD
• Perceptual quality improvements over the Windows Media FSDK11
• Ability to control all advanced settings programmatically through the API (no registry key settings required)
• Native Hardware Acceleration API support"
Does this mean someone can finally design a free GUI to encode HD DVD/Blu-Ray compatible VC-1 streams?
mahsah
28th December 2007, 06:54
Woo, finally an ES encoder!
Sagittaire
28th December 2007, 08:36
Well ... someone can compile RAW2ES and AVI2ASF (Visual Studio) for make test ... ???
crypto
28th December 2007, 09:15
Well, I tried, but the samples do not link:
fatal error C1900: Il mismatch between 'P1' version '20060201' and 'P2' version '20050411'
1>LINK : fatal error LNK1257: code generation failed
Edit: Seems to require SP1, I am currently downloading
Edit 2: That did the trick. SP1 update for Vista was also needed:
Here are the compiled VC-1 sample encoders: VC1ProSDK-samples.zip (http://dvbportal.dyn1.de/download.php?file=VC1ProSDK-samples.zip)
Nic
28th December 2007, 14:15
http://nic.dnsalias.com/AVS2ASF.zip
I've modified the AVI2ASF sample to include:
Avisynth (.avs) YV12 file support
Encoding to both .vc1 ES streams and .asf files
There's more information in the Readme.txt. Source included.
Cheers,
-Nic
crypto
28th December 2007, 14:23
Nic, damn you're fast. I was just adding compressed AVI support, but your mod is better.
Kurtnoise
28th December 2007, 15:00
which splitter/decoder is required to play those files ?
Nic
28th December 2007, 15:05
Very little seems to be able to play .vc1 files. VideoLan can't nor can anything I've currently got installed. However, Nero 8's Showtime with the HDDVD plugin would be able to play it.
crypto
28th December 2007, 15:08
Splitters for VC-1 ES files:
- Sonic HD Demuxer
- V9E Parser (included in the SDK)
Decoders:
- WMVideo Decoder DMO (WMP 11 or WMF 11)
- Sonic Cinemaster Video Decoder >= 4.1
- FFDShow
- Cyberlink VC-1 Decoder (PowerDVD)
Sagittaire
28th December 2007, 16:07
Well this VC1 encoder is not able to produce HDDVD compliant stream (no telecine for pulldown flags).
Nic
28th December 2007, 16:19
It should be able to produce HDDVD compliant streams - what do you mean exactly by "no telecine for pulldown flags"? Maybe I can add whatever you need to the sample.
How are you checking compliance?
-Nic
buzzqw
28th December 2007, 16:20
would be possible to include support for audio ? (wma std/pro)
so will have a command line application able to encode video AND/OR audio and outputting asf (only video), asf (audio and video), wma (only audio).. and what about WMV output ?
and remove the "press input" final... ;)
thanks!
BHH
EDIT: -threads is broken
feeding audiodubbed avs will produce biiiig files (must ctrl+c...)
EDIT2: even feeding audidubbed and specifing -pr audio profile will not close the encoding
lance79
28th December 2007, 16:21
• Can output VC-1 Elementary Streams for delivery in HD Optical Disc applications
How do i get a HD compatible vc1 output from this?
I tried with a 1 minute sample.evo avs
DirectShowSource ("sample.evo",audio=false)
ConvertFPS(24000, 1001)
spline36resize(1280,720)
ConvertToYV12()
I used this command...
AVS2ASF -i sample.avs -o output.vc1 -framerate 23.976 -rate 8000 -ratecontrol 3 -profiletype 2 -bframes 2 -maxkeydist 6 -vbv 300000 -peakrate 28000
Encode took more then 10 minutes
Cinevision(Mui Generator) does not accept this stream, getting error...
No Sequence-Layer just before Entry-Point ??
Sagittaire
28th December 2007, 16:37
It should be able to produce HDDVD compliant streams - what do you mean exactly by "no telecine for pulldown flags"? Maybe I can add whatever you need to the sample.
How are you checking compliance?
-Nic
Well I have a special VC1 encoder (command line from pep) and you must add telecine flag for produce HDDVD NTSC compliant stream. These flags simulate 1080i30 interlaced stream with internal 1080p24 progressive stream.
Here command line for "HDDVD stream" without pulldown 3:2 flag
AVS2ASF.exe -i HDDVD.avs -o ElementryStream.vc1 -framerate 23.976 -ratecontrol 3 -rate 6000 -peakrate 20000 -vbv 1843200 -complexity 5 -profiletype 2 -bframes 1 -maxkeydist 14 -inloop 1 -motionsearchlevel 3 -mesearchmethod 2 -mbcost 1 -mvcost 1 -mvrange 4 -adaptiveGOP -videotype 0
Nic
28th December 2007, 16:56
http://nic.dnsalias.com/AVS2ASF.zip <-- new v0.2
@lance79: Please try the new version. Should solve that issue. (I was creating ES rather than ES_SH streams (ES_SH is needed for HDDVD compatability).
@buzzqw: Did you provide a .prx (Windows Media Profile) file for audio encoding? That should solve it. I'll try to make some and provide them in the .zip file for future versions. For -threads you also need to provide an -affinity switch to state the processor layout. Try -threads 2 -affinity 3 (or 1). Can't test here as I don't have a 2 processor machine handy.
@Sagittaire: Hmm quite specific. I can specify specifc TFF and RFF flags for every frame. Could that help?
-Nic
buzzqw
28th December 2007, 17:04
when setting -threads 2 -affinity 3 (or 1)
got this error
Encoding in ASF mode
Failure in CVC1EncASF::set_advancedProps
error = -20
Failure in CVC1EncASF::Init
hr = 0
VC1 SDK Error = -20
Final error code: -20
Total elapsed time in seconds = 0.031000
and even if providing a prx audio file (namely d6_qvbr_75_audio.prx , taken from program files\windows media components\encoder\settings) the encoding will not conclude. fyi i am using nicac3source feeding 2 channel ac3
BHH
lance79
28th December 2007, 17:16
Thx Nic, gonna give it another try...
Nic
28th December 2007, 17:28
http://nic.dnsalias.com/AVS2ASF.zip <-- v0.3
AviSynth (2.56 at least) doesn't seem to report no more audio frames even if requesting a sample beyond the total number. Hence the audio would encode forever. Hopefully this quick fix to avs2asf should workaround the problem.
The threads issue I cannot debug now - but it should be using the maximum number of CPUs it can by default anyway.
-Nic
buzzqw
28th December 2007, 17:35
Audio is FIXED!!! :thanks:
... about cpu.. not a big problem.. but just 1 core is used
thanks again!
dumb question: from asf to wmv.. it's just a matter of renaming file ?
EDIT: no 5.1 audio support... :(
Original Sample AVI2ASF code Copyright (C) Microsoft Corporation.
All rights reserved.
Avisynth, YV12 & Raw support added by Nic.
*************************************
Encoding in ASF mode
------------Start Analysis-----------
------------End Analysis------------
Average bit rate: 221.00, total bytes processed: 349068.00.
Total frames: 315.00, Coded frames: 315.00.
------------Start Encode-----------
Failure in CASFFileWriter::AddVideoStream
hr = c00d0806
Failure in CASFFileWriter::Init
hr = c00d0806
Failure in VC1Enc::InitFileWriter
hr = c00d0806
VC1 SDK Error = 0
Failure in CASFFileWriter::Destroy
hr = c00d002b
Failure in CVC1EncASF::DestroyFileReader
hr = c00d002b
Failure in Encode
hr = c00d0806
VC1 SDK Error = 0
Total elapsed time in seconds = 6.250000
BHH
Nic
28th December 2007, 17:43
"but just 1 core is used" <--- Not much I can probably do to fix that even when I get on a dual core machine :(
from asf to wmv.. it's just a matter of renaming file ?Yup, and you can use .wmv (instead of .asf) as the file extension too with avs2asf to save time renaming later :)
buzzqw
28th December 2007, 20:01
any hint about 5.1 audio ?:o
BHH
Wilbert
29th December 2007, 00:09
AviSynth (2.56 at least) doesn't seem to report no more audio frames even if requesting a sample beyond the total number. Hence the audio would encode forever. Hopefully this quick fix to avs2asf should workaround the problem.
Could you try this with v2.57? Thanks!
buzzqw
29th December 2007, 08:15
Could you try this with v2.57? Thanks!
i use avisynth version 2.58, 19/sept 2007 (22:10:51)
BHH
lance79
29th December 2007, 23:56
Do i need to set level to 3 with Advanced profile manualy or is this being done automaticly?
I'm getting this error in cinevision...
Error Content :A Combination of HorizontalSize, VerticalSizeis and Level is not supported in the BD standard
Nic
30th December 2007, 12:30
@Lance79:
From the help file that comes with the SDK it states:
You specify the profile type by specifying a value for the dwProfile member of the CONFIG_PROPERTIES structure. You specify the level, indirectly, when you specify the width, height, and peak bit rate using the same structure.
Advanced - Level 0 - 2 Mbps - 352 x 288 @ 30 Hz (CIF)
Advanced - Level 1 - 10 Mbps 720 x 480 @ 30 Hz (NTSC-SD) or 720 x 576 @ 25 Hz (PAL-SD)
Advanced - Level 2 - 20 Mbps 720 x 480 @ 60 Hz (480p) or 1280 x 720 @ 30 Hz (720p)
Advanced - Level 3 - 45 Mbps 1920 x 1080 @ 24 Hz (1080p) or 1920 x 1080 @ 30 Hz (1080i) or 1280 x 720 @ 60 Hz (720p)
Advanced - Level 4 - 135 Mbps 1920 x 1080 @ 60 Hz (1080p) or 2048 x 1536 @ 24 Hz
Setting -profiletype 2 will set it to Advanced. What source and encoding parameters are you using that is causing the non-compliant streams?
Cheers,
Nic
lance79
30th December 2007, 15:04
Thanks
i was using
AVS2ASF.exe -i test.avs -o ElementryStream.vc1 -framerate 23.976 -ratecontrol 3 -rate 6000 -profiletype 2 -peakrate 20000 -vbv 1843200 -complexity 5 -bframes 3 -maxkeydist 14 -inloop 1 -motionsearchlevel 3 -mesearchmethod 2 -mbcost 1 -mvcost 1 -mvrange 4 -adaptiveGOP -videotype 0
Source is a resize 1080p to 720p
Only thing i needed to do was change -peakrate above 20000
b.t.w When u think your ready with the Nic's VC-1 encoder GUI ? :)
@Lance79:
From the help file that comes with the SDK it states:
Setting -profiletype 2 will set it to Advanced. What source and encoding parameters are you using that is causing the non-compliant streams?
Cheers,
Nic
buzzqw
31st December 2007, 15:58
sorry to bother, the 5.1 audio problem is due to vc-1 encoder or something other ?
thanks and sorry
BHH
ACrowley
31st December 2007, 20:02
Splitters for VC-1 ES files:
- Sonic HD Demuxer
- V9E Parser (included in the SDK)
Decoders:
- WMVideo Decoder DMO (WMP 11 or WMF 11)
- Sonic Cinemaster Video Decoder >= 4.1
- FFDShow
- Cyberlink VC-1 Decoder (PowerDVD)
You cant use Cyberlinks VC1 Decoder out of PowerDVD Player..sadly ( because its DXVA capable )
I think your talking about to load the VC1 ES into PowerDVD..right ?
Works nice with VC1 ES the Output from AVS2ASF
@ Nic
Is it possible to add Status Informations into the Encoding Process ? I mean fps ,Remaing/Elapsed Time etc :)
crypto
1st January 2008, 10:41
You cant use Cyberlinks VC1 Decoder out of PowerDVD Player..sadly ( because its DXVA capable )
I think your talking about to load the VC1 ES into PowerDVD..right ?
Yes, that's what I meant. BTW. The WMVideo Decoder DMO also can use DXVA/DXVA2.
ACrowley
1st January 2008, 13:51
Yes, that's what I meant. BTW. The WMVideo Decoder DMO also can use DXVA/DXVA2.
Yeah.. true...
Golgot13
3rd January 2008, 02:04
Hi all,
Happy new year (sorry I'm late...)
"The Microsoft VC-1 Encoder SDK - Professional is designed to provide file-based and/or real-time encoding capability to general content creation toolsets or dedicated encoding software applications.
It's really strange that MS give the SDK...
Because 7 months before they sold it at some companies
to have many VC1 encoder solution for HD DVD (and BD).
And this companies developp nice VC1 encoder which sell
more than 15k$ but this encoder are not better PeP (1.06 or 1.07 core)
which is really not better than H264 encoder.... (MS can not proove it)
It's easy to make VC1 elementary stream for BD with this SDK
(there is not lot of information about flag for HDDVD....).
And it 's strange that Warner start to make specific encoding
for BD disc (before all encoding were for HDDVD and BD,
they only change flag for stream compliant)....
ToS_Maverick
3rd January 2008, 21:43
@Nic:
thank you very much for this tool! a gui would be nice.. anyone?
i got a problem with the following settings:
AVS2ASF -i "F:\Video\BlackPearl\Black.Pearl.Sample.avs" -o "F:\Video\BlackPearl\Black.Pearl.Sample.asf" -framerate 25 -rate 2000 -ratecontrol 3 -complexity 5 -profiletype 2 -bframes 2 -maxkeydist 6 -vbv 300000 -peakrate 10000 -denoise 0 -inloop 1 -median 0 -overlap 0 -motionsearchlevel 3 -mesearchmethod 2 -mbcost 1 -mvcost 1 -mvrange 4 -adaptivequant 10
works but with this added:
-dquantoption 2 -dquantpstrength 1 -dquantbstrength 1
i get an error, code -30
am i applying the wrong settings? something i should consider?
Meilo
4th January 2008, 00:58
What setting do you need to encode anamorphic (16:9)? I found a pixelaspectratioindex but have no idea what index to use...
Thanks
anrque
4th January 2008, 01:29
Wow, thank you Nic. I just saw this on the MS site and downloaded it. I really had no idea how I was going to use it but needed to try something. Another Google search led me here and of course you guys were on top of things. Many thanks!
anrque
4th January 2008, 03:20
I am getting the following errors just running the included test.avs through Nic's V0.3. It seems that the first failure is due to the option - peakrate 2000 and the second error I get with every .avs I've tried so far. I'm running this in XP BTW, WMP11 is installed.
Encoding in ES (Elementry Stream) mode
Failure in CVC1EncASF::set_advancedProps
error = -20
Failure in CVC1EncASF::Init
hr = 0
VC1 SDK Error = -20
Final error code: -20
Total elapsed time in seconds = 0.000000
Beastie Boy
4th January 2008, 17:22
First of all ,thanks to nic for providing AVS2ASF. Am I correct in thinking that this tool is kind of like an upgrade from wmvcmd.vbs provided by Zambelli? If so, I would like to use it for encoding video for XBox 360 playback, but most of the commands I see posted in this thread leave me a little bewildered.
I currently use a very simple command under wmvcmd.vbs with the following options:
-v_videoonly -v_bitrate 17000000 -v_peakbitrate 30000000 -v_buffer 15000 -v_preset better
Can anyone give me a comparable command for AVS2ASF? I must confess that I don't know what -v_preset better does, but I would be looking for high quality without going insane on the encoding time :)
Cheers, Beastie.
buzzqw
4th January 2008, 17:49
v_preset better does
you can open the wmvcmd.vbs with notepad .. and search for it ;)
case "fast" '
Complexity = 2, Lookahead = 16, Loopfilter = On, Overlap = On, B frames = 1
Performance = 40
Lookahead = 16
Loopfilter = 1
VideoOverlap = 1
BFrameDist = 1
case "good" '
Complexity = 3, Lookahead = 16, Loopfilter = On, B frames = 1
Performance = 60
Lookahead = 16
Loopfilter = 1
BFrameDist = 1
case "better" '
Complexity = 3, Lookahead = 16, Loopfilter = On, B frames = 1, MS Level = Integer Chroma, MS Range = Auto
Performance = 60
Lookahead = 16
Loopfilter = 1
BFrameDist = 1
MSLevel = 1
MSRange = -1
case "best" '
Complexity = 5, Lookahead = 16, Loopfilter = On, B frames = 1, MS Range = Auto
Performance = 100
Lookahead = 16
Loopfilter = 1
BFrameDist = 1
MSRange = -1
case "insane" '
Complexity = 4, Lookahead = 16, Loopfilter = On, B frames = 1, MS Level = True Chroma, MS Range = Auto, Motion Match = Auto
Performance = 80
Lookahead = 16
Loopfilter = 1
BFrameDist = 1
MSLevel = 2
MSRange = -1
MMatch = -1
BHH
Beastie Boy
4th January 2008, 18:04
you can open the wmvcmd.vbs with notepad .. and search for it ;)
BHH
Thanks, I didn't know that.
ToS_Maverick
4th January 2008, 23:40
i could narrow my problem down a bit
-dquantoption 1
works, but 2 and 3 doesn't! it's a very important parameter, since it improves gradients a lot!
jmnk
5th January 2008, 00:56
obviously I'm missing something obvious:
##########
G:\WMSDK\VC1ProSDK\Bin>AVS2ASF.exe
The system cannot execute the specified program.
##########
any pointers?
buzzqw
5th January 2008, 08:34
@jmnk
have you installed avisynth? wmp11 or wmfdist11.exe, have you the varius msvcrXX.dll and the WMEncoder9.exe ?
BHH
Meilo
5th January 2008, 15:32
@jmnk: I ran into the same, updting to the last version of .net solved the problem for me.
Opuz Klass
5th January 2008, 20:23
Nic,
Do you have any idea why AVS2ASF's -ratecontrol is only working with "3 = 2-pass peak constrained VBR" option?
Kurtnoise
5th January 2008, 21:14
you should post your whole command line...
Icemaan
5th January 2008, 22:35
Hallo and first happy new Year to all
I have tested and all works fine.But one Problem for me.
After the analysis Pass i get averange Bitrate of 4280 but i want have a averange Bitrate of 8000.
Source is an 1080p resized to 720p
Commandline is
-framerate 23.976 -ratecontrol 3 -rate 100000 -profiletype 2 -peakrate 20000 -vbv 1843200 -complexity 5 -bframes 3 -maxkeydist 14 -inloop 1 -motionsearchlevel 3 -mesearchmethod 2 -mbcost 1 -mvcost 1 -mvrange 4 -adaptiveGOP -videotype 0
Any Idea and thanks for help
Icemaan
Opuz Klass
6th January 2008, 03:54
you should post your whole command line...
If you don't specify any -ratecontrol the assumed/default -ratecontrol will be "3", so just add any -ratecontrol but "3" in the "Example.bat" included with the AVS2ASF.rar package.
For example:
AVS2ASF -i Test.avs -o ElementryStream.asf -framerate 25 -rate 1200 -profiletype 2 -bframes 2 -maxkeydist 6 -vbv 300000 -peakrate 2000 -ratecontrol 0
lance79
6th January 2008, 21:38
Is there any other way for getting a 720p encoded wmv video compatible with sonic BDA.
I found a VC1 es Writer but thatone doesnt seems to work.
For now i use VC-1 Encoder SDK and create avchd disc's with scenarist,but would be better for quality if reencode was not
necessary.
greetz,
lance
jmnk
7th January 2008, 03:20
@jmnk: I ran into the same, updting to the last version of .net solved the problem for me.
thanks, that indeed was the problem.
R3Z
7th January 2008, 06:40
Going by the help text, i thought this should work;
AVS2ASF.exe -i am_test.avs -o encoded.vc1 -framerate 25 -profiletype 2 -bframes 2 -maxkeydist 6 -qp 95 -ratecontrol 1
However it gives me an -20 error. Any ideas ?
Opuz Klass
7th January 2008, 13:04
Going by the help text, i thought this should work;
AVS2ASF.exe -i am_test.avs -o encoded.vc1 -framerate 25 -profiletype 2 -bframes 2 -maxkeydist 6 -qp 95 -ratecontrol 1
However it gives me an -20 error. Any ideas ?
That's the problem I reported. Glad to see I'm not alone (unfortunately). :)
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.