AVS2ASF – Open Source VC-1 Encoder SDK application

Sign in to queue

Description

As you may recall, we released the VC-1 Encoder SDK Professional as as free download. That included a very basic command-line encoder along the lines of Alex Zambelli’s WMCmd.vbs, but with much more limited input support and no preprocessing.

A fellow called Kurtnoise13 jumped on it on the Doom9 Forums discussion about the SDK. He quickly created a new version that supports AVISynth files as source as well. The syntax for a simple PAL 1.2 Mbps encode (from the ReadMe) looks like:

AVS2ASF -i VideoWithAudio.avs -o file.asf -framerate 25 -rate 1200 -profiletype 2 -bframes 2 -maxkeydist 6 -vbv 300000 -peakrate 2000 -pr AudioEncode.prx

Be warned that while the syntax looks a lot like WMCmd.vbs the details can be deceptively different. In particular, units can be different (Kbps instead of bps makes a big difference!). Also, since the VC-1 Encoder SDK is video only, a PRX file defining the audio setting also has to be used; the Format SDK is called to encode audio and mux to WMV.

AS2ASF also supports elementary stream output, so it’s able to generate a .vc1 file for Blu-ray authoring.

For those not familiar with it, AVISynth is an open source frameserver that dynamically processes video and lets it look like any DirectShow source to other tools. This means that intermediate files aren’t needed – an AVISynth “.avs” script can define the source and all the processing to apply to it. And there’s a huge community of AVS plugins to handle new format times and processing modes; almost any kind of file out there can be handled by AVISynth, and almost any kind of processing you’d like to apply is available. For a simple example, the below script

  • Opens a PNG sequence at 24 fps
  • Associates a WAV file with it
  • Crops it from 640x360 to 640x352
  • Outputs it in YV12 (8-bit 4:2:0)
a=imageSource("D:\Elephant's Dream\PNG 360\%05d.png",1,15691,24)
b=wavsource("D:\Elephant's Dream\ED-CM-St-16bit.wav")
audiodub(a,b)
crop (0,4,0,-4) # crop height 352
ConvertToYV12()

Anyway, I wanted to highlight this technology. The source code is available as a Visual Studio project, and I’d love to see other members of the community continue to enhance it.

A few things that’d be cool:

  • A simple batch automation GUI
  • A simple automatic AVS generator, so a .avi or .mov file could be specified as source and the right AVS to wrap it could be build on the fly.

The Discussion

Add Your 2 Cents