View Full Version : VC-1 Encoder SDK - Professional released
R3Z
8th January 2008, 04:18
So does this build not support the constant quality (qp) option or is the command line wrong ? :confused:
Nic
8th January 2008, 22:34
Sorry I haven't been posting. I will look into this when I get some time. Moving to the other side of London and juggling a production release at work - So a little busy at present :)
-Nic
R3Z
9th January 2008, 03:58
Sorry I haven't been posting. I will look into this when I get some time. Moving to the other side of London and juggling a production release at work - So a little busy at present :)
-Nic
I can appreciate that :) I just had a horrible feeling i couldnt even get the command line correct.
benwaggoner
12th January 2008, 02:18
My blog post going into more details about the Professional and Enterprise versions of the VC-1 Encoder SDK is now up:
http://on10.net/blogs/benwagg/20613/Default.aspx
guada2
12th January 2008, 02:56
Hello benwaggoner, :)
MC Ref v1.0 would use it, the VC-1 Encoder SDK?
if it is true, Would it support 2 pass VBR encoding?
Thank you..
benwaggoner
12th January 2008, 04:55
Hello benwaggoner, :)
MC Ref v1.0 would use it, the VC-1 Encoder SDK?
if it is true, Would it support 2 pass VBR encoding?
Thank you..
I'm not surehat "MC Ref" is, but yes, the Pro SDK supports 2-pass VBR among the other usual modes.
crypto
12th January 2008, 10:35
Hi benwaggoner,
a big thank you for helping to make the ProSDK available and thanks for the clarification on the several editions in your blog post. I feel, it was not an easy decision to open the ProSDK, but it is the right one and will help VC-1 to get even more momentum.
guada2
12th January 2008, 23:18
MC Ref = Mainconcept reference
"surehat" ? I don't understand..
yes, the Pro SDK supports 2-pass VBR among the other usual modes.
Surely, but it possible that MC Ref have limits.
Of course, It is possible that I missed something or i am mistaken.
Bye. ;)
benwaggoner
13th January 2008, 03:12
MC Ref = Mainconcept reference
"surehat" ? I don't understand..
Surely, but it possible that MC Ref have limits.
Of course, It is possible that I missed something or i am mistaken.
Bye. ;)
Ah. Main Concept doesn't use the VC-1 Encoder SDK. Their low-cost verison is 1-pass only for all codecs AFAIK. Very limited for practical purposes.
guada2
13th January 2008, 16:00
@benwaggoner
Thank you for this clarification.
And, cheer for your work. :)
benwaggoner
14th January 2008, 22:57
@benwaggoner
Thank you for this clarification.
And, cheer for your work. :)
Thanks. And I'm really pleased that we were able to come up with a 0-cost solution for this community. I look forward to seeing what everyone here can do with it!
CruNcher
15th January 2008, 04:34
Nice now it gets interesting in compareing it with the recent X264 builds in terms of Speed/Quality and Grain Behaveiour :)
Btw wasn't there something about a Source you were going to provide for testing purposes ;)
And as crypto said good decission in terms of momentum now to catch the Web with Silverlight and VC-1, as on Media it seems the fight is lost and if Blu-Ray now wins VC-1 is gonna fade away in that area too (didn't saw 1 Blu-Ray useing VC-1). The same as when WMV-HD faded away (and ohh is it supriseing that Paramount was supporting that too) ;).
benwaggoner
15th January 2008, 07:34
Nice now it gets interesting in compareing it with the recent X264 builds in terms of Speed/Quality and Grain Behaveiour :)
Looking forward to hearing your results.
Btw wasn't there something about a Source you were going to provide for testing purposes ;)
Ugh, yeah. I finished something enough to use it for some DLNA conformance streams, but I'm still to embarrassed by it to release it publicly, yet am too busy to actually finish it :). Hopefully now that the holidays are over...
And as crypto said good decission in terms of momentum now to catch the Web with Silverlight and VC-1, as on Media it seems the fight is lost and if Blu-Ray now wins VC-1 is gonna fade away in that area too (didn't saw 1 Blu-Ray useing VC-1). The same as when WMV-HD faded away (and ohh is it supriseing that Paramount was supporting that too) ;).
Tons of Blu-ray discs use VC-1. If anything, having HD DVD go away (which isn't going to happen, but that's another discussion) would reduce the political pressures on some of the companies that are Blu-ray only to not use a Microsoft technology. Codecs are pretty orthogonal to the format war.
WMV-HD didn't fade away. We just decided to throw our weight behind HD DVD instead of pushing a third standard which also brought big optical improvements.
Stebet
15th January 2008, 09:51
And as crypto said good decission in terms of momentum now to catch the Web with Silverlight and VC-1, as on Media it seems the fight is lost and if Blu-Ray now wins VC-1 is gonna fade away in that area too (didn't saw 1 Blu-Ray useing VC-1). The same as when WMV-HD faded away (and ohh is it supriseing that Paramount was supporting that too)
Blu-ray codec statistics (courtesy of http://www.blu-raystats.com/index.php):
Codecs
MPEG2 157 35.44%
AVC 163 36.79%
VC-1 123 27.77%
I find it rather scary that MPEG2 is used that much :eek:
clockworkman
22nd January 2008, 06:34
I managed to encode some HDV footage with AVI2ASF and the SDK encoder with the following:
AVS (HDVMOVIE.AVS):
DirectShowSource("C:\test\HDVMOVIE.m2t",fps=29.97,audio=false)
LanczosResize(1440,1080)
converttoyv12()
Graphedit:
HDVMOVIE -----> Sonic HD Demuxer------>Elecard MPEG2 Video Decoder
I use the following to encode:
AVS2ASF.exe -i c:\vc1\HDVMOVIE.avs -o Sampleencode.vc1 -framerate 29.97 -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
The resulting vc1 is strange. It is like a slideshow.....the picture looks fine but there is one still frame every 5 seconds or so. Any ideas?
Sagittaire
22nd January 2008, 09:41
Well this sdk encoder is not able to produce HDDVD NTSC compliant stream (if you want progressive stream with pulldown flag).
If your source is native 29.97 fps interlaced source, you must use interlaced profil with max GOP at 18.
buzzqw
31st January 2008, 08:55
any news about error on 5.1 audio ?
BHH
cboese
31st January 2008, 15:50
Hello!
First of all a great, not mandatory and absolutely apropriate
Thanks! to Nic, Koepi (whose builts are already kind of legendary), the admins and all posters (who read the FAQ ;-) for helping me for such a long time out of situations for which my brain was simply too small for to get :thanks:
Now for my question.
I use the following avs-script (here called try.avs):
black = Blackness(pixel_type="YV12", length=100)
black
and the command line for the avs2asf looks as the follwing (right now, I played around with all the options a little but no luck (and as I dont fully understand what I am doing, I obviously had to rely on luck ;-) ))
AVS2ASF -i try.avs -o try.asf -rate 9000 -framerate 25 -complexity 0 -profiletype 2 -bframes 2 -maxkeydist 6 -vbv 300000 -peakrate 2000
When I hit Enter, it gives me:
Failure in CVC1EncASF::Init
hr = 0
VC1 SDK Error = -30
Final error code: -30
benwaggoner
10th February 2008, 08:38
[QUOTE=cboese;1094768]Hello!
First of all a great, not mandatory and absolutely apropriate
Thanks! to Nic, Koepi (whose builts are already kind of legendary), the admins and all posters (who read the FAQ ;-) for helping me for such a long time out of situations for which my brain was simply too small for to get :thanks:
Now for my question.
I use the following avs-script (here called try.avs):
black = Blackness(pixel_type="YV12", length=100)
black
What does the Blackness filter do?
Inventive Software
10th February 2008, 09:28
The BlankClip filter produces a solid color, silent video clip of the specified length (in frames).
There's yer answer guv. ;)
benwaggoner
10th February 2008, 16:47
There's yer answer guv. ;)
Y'=16? R'G'B'=0?
Inventive Software
10th February 2008, 19:04
BlankClip (clip "clip", int "length", int "width", int "height", string "pixel_type", float "fps", int "fps_denominator",
int "audio_rate", bool "stereo", bool "sixteen_bit", int "color", int "color_yuv")
Blackness ()
The BlankClip filter produces a solid color, silent video clip of the specified length (in frames). The clip passed as an argument is used as a template for frame rate, image size, and so on, but you can specify all clip properties without having to provide a template. color should be given as hexadecimal RGB values. Without any argument, BlankClip will produce a pitch-black 10 seconds clip (RGB32), 640x480, 24 fps, 16 bit 44100 Hz mono.
clip: if present, the resulting clip will have the clip-properties of the template, except for the properties you define explicitly.
length: length of the resulting clip (in frames).
width, height: width and height of the resulting clip.
pixel_type: pixel type of the resulting clip, it can be "RGB24", "RGB32", "YUY2" or "YV12".
fps: the framerate of the resulting clip.
fps_denominator: you can use this option if "fps" is not accurate enough. For example: fps = 30000, fps_denominator = 1001 (ratio = 29.97) or fps = 24000, fps_denominator = 1001 (ratio = 23.976). It is 1 by default.
audio_rate: samplerate of the silent audio of the clip.
stereo: (boolean) when set to true the silent audio is in stereo, when set to false a silent mono track is added
sixteen_bit: (boolean) true and false give both 16 bit, except when a template is used where a different bit is set.
color: specifies the color of the clip, black (= $000000) by default. See ColorPresets for preset colors. See here for more information on specifying colors.
color_yuv: is added in v2.55, and it lets you specify the color of the clip using YUV values. It requires setting pixel_type to "YUY2" or "YV12", otherwise it doesn't do anything.
Blackness is an alias for BlankClip, provided for backward compatibility.
That's the AviSynth entry for BlankClip, so I can't answer more than that, other than possibly suggesting using color_yuv.
cboese
11th February 2008, 09:45
Thanks for the answers.
I wanted to try the int "color_yuv" parameter but I couldnt find Information about what integer value to use (tried 0 and 16, but nothing chaged). What would be the right place to ask for this?
Is there any way to tell if this has to do with avs2avi or if its a more general problem?
I couldn't find documentation about error "-30".
I also switched to BlankClip because Blackness was only for backward compatibility
I also tried ColorBars and others, but always the same error, so I dont think it has something to do with the Filter itself.
Maybe something with the avs2avi command line is wrong?
Inventive Software
11th February 2008, 10:11
Ask in the AviSynth Usage forum. ;)
anrque
11th February 2008, 18:33
I am seeing the same type of errors everytime I try to do an encode using the SDK and Nic's additions. Even running the demo clip and .avs through the SDK with AVS2ASF is resulting in a -20 error on my end. However, I am trying to produce content and am not a SW developer so I do not have Visual Studio or any other programming environment installed, so maybe I am missing some dynamic libraries or something??
Here are the various error codes listed in the SDK documentation.
Error code Value Description
ERR_OK 0L The method succeeded.
ERR_ENCODER -10L Unspecified VC-1 encoder error.
ERR_INVALIDARG -20L An argument is out of range.
ERR_INVALIDSETTING -30L A setting is not valid for the current encoder state. This usually means the setting conflicts with an existing one.
ERR_MEMORY -40L There is not enough memory to perform the operation.
ERR_POINTER -50L The argument is NULL.
ERR_ENCODE_STARTED -60L The VC-1 encoder is running.
ERR_IO -70L Unspecified input or output error.
ERR_NOANALYZE_FRAME -80L You must specify at least one frame for analysis between calls to StartAnalyze and EndAnalyze. Call CVC1Encoder::AnalyzeFrame.
ERR_NOTCONFIGURED -90L The VC-1 encoder is not configured. Call CVC1Encoder::Configure first.
ERR_NOENCODE_FRAME -100L You must specify at least one frame for encoding between calls to StartEncode and EndEncode. Call CVC1Encoder::EncodeFrame.
ERR_NOMORE_FRAMES -110L The encoding queue is empty.
ERR_NO_OP_FRAME -120L The output buffer does not contain valid frame data.
ERR_NOSTART_ANALYZE -130L You first must call CVC1Encoder::StartAnalyze.
ERR_NOSTART_ENCODE -140L You first must call CVC1Encoder::StartEncode.
buzzqw
3rd March 2008, 09:02
any news on this application ?
it's seem more stable then wmcmd.vbs (and with a better handling of avisynth input) BUT lack of 5.1 audio support.
if better/easier (without prx profiles) audio support isn't wanted from Microsoft, and no developing are on the way, what command line application is suggested by Microsoft for encoding entusiast ?
.. basically.. how to encode by command line with a freeware, comprensive, well documented, with wmv7/8/9/vc-1 AND wma std/pro 5.1 support ?
BHH
benwaggoner
8th March 2008, 06:37
The beta of Expression Encoder 2 is out now, incorporating the VC-1 Encoder SDK.
http://www.microsoft.com/expression/products/download.aspx?key=encoder2beta
It has a command-line interface, and supports .avs. However, it doesn't support 5.1 audio as it targets Silverlight, which is mono/stereo in 1.0 and 2.
buzzqw
8th March 2008, 13:46
and it's valid to july... and "weight" 300mb..
not very consumer friendly
BHH
Kurtnoise
8th March 2008, 14:10
http://www.microsoft.com/downloads/details.aspx?familyid=5031c859-e8da-41bc-98e3-c13add5378b0&displaylang=en&tm
Version: 1.1
Date Published: 3/6/2008
buzzqw
8th March 2008, 14:13
hoping for a new avs2vc1!
BHH
Kurtnoise
8th March 2008, 17:28
I believe it's the same package as the previous one in fact...
http://kurtnoise.free.fr/index.php?dir=misc/&file=AVS2ASF-0.3_20080308.zip
buzzqw
12th March 2008, 09:36
thanks Kurtnoise13!
but can you remove the prompt at end encoding (avi2avs.cpp, line 73)
thanks!
BHH
Kurtnoise
12th March 2008, 09:54
sure...I'll upload a new build tonight.
http://kurtnoise.free.fr/index.php?dir=misc/&file=AVS2ASF-0.3_20080312.zip
buzzqw
13th March 2008, 12:48
thanks!
BHH
buzzqw
18th March 2008, 09:19
another bug
if encode to vc1 the framerate is respected, if i encode to wmv (wmv video+wma audio) the framerate is fixed to 15
BHH
Nic
22nd March 2008, 17:13
@buzzqw:
You're persistent :) been a while since I looked at this thread.
Just tried encoding some 5.1 audio, worked fine for me. You do, of course, need an appropriate 5.1 audio profile/prx file. Did you create one? (use GenProfile.exe from the WMV SDK or similar)
The encoder sdk 1.1 file that kurtnoise pointed out is exactly the same version of the SDK from December. So no need for a new build with it.
"if i encode to wmv (wmv video+wma audio) the framerate is fixed to 15" <--- Not sure what you mean by that, always seems to work fine here...Please post your commandline.
Still can't figure out how to do telecine. I can of course set the TFF/RFF flags, but what do I set the framerate to be in ConfigProps? What do I set the timestamps to of the video samples when I call EncodeFrame? Maybe the MS guys can point me in the right direction...
-Nic
buzzqw
22nd March 2008, 19:12
if you create a wmv (audio+video) even if your use -framerate 25, the resulting wmv , analyzed with avinaptic or mediainfo will report 15fps
if you do a raw vc1 file, specifing -framerate 25, the framerate reported by avinaptic or mediainfo is 25
about profile.. i use WMProEdt.exe .. but will try with genprofile
also.. seems i am unable to build a pure vbr profile.. but il will study genprofile profiles
thanks Nic
BHH
Nic
22nd March 2008, 21:13
@buzzqw: But the file doesn't play back at 15fps, it's just those apps reporting that framerate. Strange that they do, must be reading it from somewhere. Will try to see how to set that.
-Nic
EDIT:
Easy Fix. Framerate wasn't being set in the mediatype.
buzzqw
23rd March 2008, 09:02
thanks Nic!
i will try to do 5.1ch wmv, and will report any errors :D
(thanks again!)
BHH
M10
23rd March 2008, 17:11
I appreciate everyone's work with this application!
I have a fairly specific question. Has anyone been able to use the "-aspectratio" line successfully with AVS2ASF?
Per the documentation, they want: [-aspectratio] <aspectratioindex> <aspectratiowidth> <aspectratioheight>. If aspectratioindex=15, then you can specify aspectratiowidth & aspectratioheight. Specifying an "aspectratioindex" alone doesn't seem to be recognized when wmv's played by wmv or xbox. However, when I enter:
"-aspectratio 15 40 33" I get an error stating that "40" is an unrecognized command...as if it is not parsing the input correctly. Any thoughts?
Nic
23rd March 2008, 23:06
Well spotted M10. You should get a job doing QA in MS ;)
m_dwPixIndex = 0;
.....
else if (!wcscmp (L"-aspectratio", m_ppArgv[i]))
{
// Pixel aspect ratio.
i++;
// Convert the argument to a number.
DWORD dwPixIndex = wcstoul(m_ppArgv[i], NULL, 10);
// 15 means "Aspect width and height transmitted"
// Update the w and h based on command line args.
if (m_dwPixIndex == 15)
{
i += 2;
}
}
Spot the bug? :) I'll release a fix sometime.
-Nic
anrque
24th March 2008, 19:32
I have tried this numerous times and feel like I'm missing something. I have the VC1 SDK installed, I installed the WM11 SDK and finally i Installed the platform SDK that has all of the DShow extras. I installed VS 2008 as well and "think" I have all the run-time components I need. I have AVISynth 2.5.7 installed but I continue to get this error after running the example.bat:
Also, I am trying to run this in XP Pro 32 SP2.
C:\AVS2ASF>AVS2ASF -i Test.avs -o ElementryStream.vc1 -framerate 25 -rate 1200 -profiletype 2 -bframes 2 -maxkeydist 6 -vbv 300000 -peakrate 2000
*************************************
VC-1 AVS2ASF v0.3 Encoding Sample
Original Sample AVI2ASF code Copyright (C) Microsoft Corporation.
All rights reserved.
Avisynth, YV12 & Raw support added by Nic.
*************************************
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
Can anyone tell me what I am doing wrong?
Mike
Kurtnoise
4th April 2008, 20:39
@benwaggoner: Is there somewhere a tool to check the BD/HD-DVD compliancy for VC-1 Elementary Streams ?
benwaggoner
4th April 2008, 23:59
@benwaggoner: Is there somewhere a tool to check the BD/HD-DVD compliancy for VC-1 Elementary Streams ?
Nothing freely available that I know of.
ACrowley
12th April 2008, 08:08
I have tried this numerous times and feel like I'm missing something. I have the VC1 SDK installed, I installed the WM11 SDK and finally i Installed the platform SDK that has all of the DShow extras. I installed VS 2008 as well and "think" I have all the run-time components I need. I have AVISynth 2.5.7 installed but I continue to get this error after running the example.bat:
Also, I am trying to run this in XP Pro 32 SP2.
C:\AVS2ASF>AVS2ASF -i Test.avs -o ElementryStream.vc1 -framerate 25 -rate 1200 -profiletype 2 -bframes 2 -maxkeydist 6 -vbv 300000 -peakrate 2000
*************************************
VC-1 AVS2ASF v0.3 Encoding Sample
Original Sample AVI2ASF code Copyright (C) Microsoft Corporation.
All rights reserved.
Avisynth, YV12 & Raw support added by Nic.
*************************************
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
Can anyone tell me what I am doing wrong?
Mike
Same Error here.
So far i can remeber it was caused by -profiletype 2
M10
13th April 2008, 00:32
Well spotted M10. You should get a job doing QA in MS ;)
m_dwPixIndex = 0;
.....
else if (!wcscmp (L"-aspectratio", m_ppArgv[i]))
{
// Pixel aspect ratio.
i++;
// Convert the argument to a number.
DWORD dwPixIndex = wcstoul(m_ppArgv[i], NULL, 10);
// 15 means "Aspect width and height transmitted"
// Update the w and h based on command line args.
if (m_dwPixIndex == 15)
{
i += 2;
}
}
Spot the bug? :) I'll release a fix sometime.
-Nic
Thanks, Nic. I look forward to the fix! I need to get the aspect ratio settings working before I can move my encodes to the new codec.
HookedOnTV
10th June 2008, 17:34
I get:
Bad AVS/AVI format - Has to be YV12!
my avs file has a line:
ConvertToYV12()
benwaggoner
10th June 2008, 18:06
I get:
Bad AVS/AVI format - Has to be YV12!
my avs file has a line:
ConvertToYV12()
I think it actually has to be IYUV.
HookedOnTV
2nd July 2008, 23:22
I'm not getting anywhere. Trying to encode the included sample script (as suggested by executable) and get nothing but errors. I have WMP11, WMEncoder 9, VC1ProSDK, WMFSDK11, AVISynth 2.57. I get:
Bad AVS/AVI format - Has to be YV12!
Failure in CAVIFileReader::Init
hr = 80044066
Failure in CVC1EncASF::InitFileReader
hr = 80044066
Encoding in ASF mode
Failure in CVC1EncASF::Init
hr = 80044066
VC1 SDK Error = -90
Final error code: -90
Total elapsed time in seconds = 0.000000
HookedOnTV
3rd July 2008, 17:02
Problem fixed. I couldn't successfully compile the sample from the SDK and once I got the service pack for Visual Studio installed it fixed both.
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.