Prompted by Scott Hanselman’s recent post I thought I ought to shine a light on a little known fact about Expression Encoder 3 that is a) the installer includes the SDK and b) the SDK includes a sample PowerShell module. It is pretty easy to get going with it.. you simply:
- Open *admin* cmd prompt or powershell
- cd "C:\Program Files (x86)\Microsoft Expression\Encoder 3\SDK\samples\EncoderPowerShellModule"
- msbuild
- close and open a new powershell.
Now, to encode a folder full of videos to H.264 for the new Zune HD you would do something like
Import-Module ExpressionEncoder
gci 'C:\users\Public\Videos\Sample Videos' | Convert-Media -H264ZuneHDAVDockPlayback -Output $home\desktop
Because the module is pipeline aware, you can just pipe files rather than some more elaborate foreach-object action.
More sample scripts listed in here:
C:\Program Files (x86)\Microsoft Expression\Encoder 3\SDK\Doc\Microsoft.Expression.Encoder.chm
BTW as a reminding, Expression Encoder Standard is available free from here:
The installer is currently misslabeled as trial which should be fixed at some point.. In fact, all the functionality in there is freely usable (limitations being no codecs and screen capture limited to 10 minutes).

I am getting a build error: ConvertMedia.cs(1040,49): error CS0104: 'Job' is an ambiguous reference between 'System.Management.Automation.Job' and ' Microsoft.Expression.Encoder.Job' 1 Warning(s)
To fix the error add the following text at line 11 to the file ConvertMedia.cs using Job = Microsoft.Expression.Encoder.Job;