Welcome to MSDN Blogs Sign in | Join | Help

Summary:

· Microsoft Silverlight Streaming by Windows Live Beta is being discontinued and will eventually be taken down.

· A new Windows® Azure™-based hosting and delivery service will be launched by the end of 2009, though this is not a direct replacement for Silverlight Streaming and will have costs associated with its use.

· You can access, retrieve and if desired remove your content that is hosted on Silverlight Streaming by following the instructions below.

· Key dates and information about the availability of the new Windows Azure functionality, and when the existing Silverlight Streaming beta service will be taken down, will be communicated in the coming weeks.

Background:

Since May 2007, we have been offering a free beta service to host Silverlight applications and videos. This service is being discontinued to make way for a new Windows Azure-based service. Once this new service is launched, the current Silverlight Streaming beta service will eventually be taken down.

Don’t panic! All your current content is safe and you will receive sufficient notice for you to make an informed decision on where to host your Silverlight content and applications. However, in the interim, we would like you to be aware of the following:

· Effective immediately, no new sign-ups are permitted for the Silverlight Streaming service. In addition, the Silverlight Streaming publishing plug-in for Expression Encoder will no longer be available for download.

· The new Windows Azure functionality will not be a direct replacement for the Silverlight Streaming service and will be a paid subscription service.

Steps you can take today:

· You can access all of your content that is hosted on Silverlight Streaming and also view the file system to retrieve your content locally. For complete instructions on how to do this, please refer to the Step by step instructions for retrieving Silverlight Streaming content section below.

· Stay tuned for more information. Key dates about the new Windows Azure-based functionality, and when the existing service will be taken down will be communicated in the coming weeks.

· You can learn more about the Windows Azure Platform here.

If you have additional questions, please contact us at slsfbk@microsoft.com.

Step by step instructions for retrieving Silverlight Streaming content:

You can directly access the filesystem of the Silverlight Streaming hosting service. This will be the easiest way to retrieve content directly to your computer. In order to do this, you need to know the Account ID and Account Key used to access the filesystem. To get this information, do the following:

· Open a web browser and connect to http://silverlight.live.com

· Login with your Live ID.

· Click on Manage Account.

· You will see your Account ID and Key under the Account Information section at the bottom of the page.

You can connect to the SLS filesystem in a number of ways:

1. Map a network drive

Map to the following network drive, replacing <Account ID> with the numeric Account ID you found by following the steps above.

https://silverlight.services.live.com/<AccountID>/

2. Open as a web folder

· Windows XP, Windows Vista, Windows Server 200 and Windows Server 2003 users must install the latest Software Update for Web Folders.

· Internet Explorer users: open the web folder by connecting to the following URL, replacing <Account ID> with the numeric Account ID you found by following the steps above:

https://silverlight.services.live.com/<AccountID>/

· Other web browsers: copy and paste the following path into the “Run…” box on the Start menu:

\\silverlight.services.live.com@SSL\DavWWWRoot\<AccountID>\

· When prompted for credentials, supply your Silverlight Streaming account information that you found by following the steps in the previous section.

Note for Vista users:

For improved performance, disable thumbnails as follows:

1. Click on the Start button, then choose All Programs followed by Accessories.

2. Run Windows Explorer.

3. In Windows Explorer, click on the Organize button on the menu bar.

4. In the pull-down menu, click on Folder and Search Options.

5. In the Folder Options dialog window, click on the View tab.

6. Under the Files and Folders tree heading, ensure that Always show icons, never thumbnails is checked.

3. Mac OS X users

In the Finder, choose Go à Connect To Server. In the Server Address field, paste the following address, replacing <Account ID> with the numeric Account ID you found by following the steps above.

https://silverlight.services.live.com/<AccountID>/

General

 

Q. What is Microsoft Expression Encoder 3?

A: Expression Encoder is a professional encoding tool that offers enhancement, encoding, and publishing of rich video experiences with Microsoft Silverlight. Convert and compress multiple video formats to SMPTE standard VC-1 video or H.264 for mobile, web, and HD video scenarios. For streamlined workflow, create branded templates with Expression Blend™, and encode on the desktop or server to guarantee a consistent viewing experience on Windows, Mac, and devices. See the Expression Encoder Overview page for more information.

 

Q. Where can I get Encoder?
A.
There are two versions: a free version and an IIS Smooth Streaming version that you can purchase. You can obtain the free version here. You can purchase the premium version here.

 

Q. What's the difference between the free version and the IIS Smooth Streaming version of Expression Encoder?
A.
The free version is a feature-filled VC-1 encoding application that supports the following:

 

·         high performance multi-core encoding

·         crop/scale/de-interlace operation

·         multi-clip editing

·         A/B compare

·         live encoding

·         up to 10 minutes of screen capture

·         smart encoding

·         Silverlight templates

·         multi-channel

·         audio import and export

·         rich metadata support

·         presets and custom plug-ins as well as

·         full access to the .NET SDK for all above features


The IIS Smooth Streaming version adds:

 

·         H.264 encoding

·         Smooth Streaming encoding

·         native support of MP4/H.264, TS, M2TS, AVCHD, MPEG-2, AAC and AC-3 files

·         Unlimited screen capture durations

 

Q. In what languages is Expression Encoder available?

A: Expression Encoder is available in those languages: English, French, German, Spanish, Italian, Japanese, Chinese Simplified, Chinese Traditional, and Korean.

 

Q. What's new in Expression Encoder?

A. This blog post describes the new features.


Q. Can I distribute Expression Encoder?
A. You can freely distribute the free version of Expression Encoder as long as you keep it packaged as is. Please contact us if you're interested in distributing Expression Encoder. Check the End User License Agreement for more information.

 

Q. Where is the command-line application?
A. The command-line application is no longer supported. Instead, we suggest using our rich .NET SDK to quickly whip up custom applications for all your automated encoding needs. Note that we've also included a few simple applications, including a Power Shell encoding tool, to kick start your efforts.

 

Q. Where is the SLS plug-in?
A. Unfortunately, the SLS services are getting phased out and are not supported in Expression Encoder.

 

Q. Is Expression Encoder supported on Windows Server 2003?
A. Expression Encoder isn't officially supported on Server 2003 because the Windows Media SDK isn’t supported on that platform anymore. This means that some encoding options won't work. For example, the WMA Professional codec is not supported on that Server 2003. However, this lack of support is probably the source of most issues with Server 2003 and you can resolve it by selecting a valid “WMA” audio profile on that platform.

 

Q. How about Windows Server 2008?

A. Server 2008 is fully supported as long as you install the "Desktop Experience" feature prior to using Expression Encoder.

 

Q. Can Expression Encoder be run on a server / to batch run jobs?

A. Yes, Expression Encoder includes an SDK to enable those scenarios. Please check the SDK section below for more information.

 

Q. Where can I find more information about Expression Encoder?

A. You can find more information about Expression Encoder either on the Community Site or the Expression Encoder blog.

 

IIS Smooth Streaming

 

Q. What is IIS Smooth Streaming?
A. IIS Smooth Streaming enables adaptive streaming of media to Silverlight clients over HTTP and provides a high-quality viewing experience that scales massively on content distribution networks. See the Smooth Streaming article on this website for more information. IIS Smooth Streaming is available only on the Expression Encoder IIS Smooth Streaming version.

 

Q. Does Expression Encoder support Live Smooth Streaming?
A. We don't currently support Live Smooth Streaming.


Expression Encoder SDK

 

Q. Where can I download the .NET Expression Encoder SDK? How about the SDK docs?
A. The Expression Encoder 3 SDK and the documents are now installed with the application. You can access the SDK from the Start menu by clicking All Programs and then clicking Microsoft Expression.

 

Q. What's new in the Expression Encoder SDK?

A. See this blog entry for information on the new features of the Expression Encoder SDK.

 

Q. Which programming languages are supported?
A. We actively test with Managed C++, C# and VB.NET. But all .NET languages should work.


Q. Where are the APIs for the screen capture functionality?
A. Unfortunately, Screen Capture isn't currently available through the Expression Encoder SDK. We are working on fixing this in a future version.

 

Codecs/Import

 

Q. What formats are supported by Expression Encoder?

A. The free version supports the following: WMA, MP3, WAV, WMV, MOV (if QuickTime is installed), DVR-MS/WTV (depending on OS), MJPEG, most AVI and many other formats with the use of a suitable DirectShow decoder.

 

The IIS Smooth Streaming version adds: MPEG-2, TS, MP4/H.264, AVCHD, M2TS, AAC and AC3 files.

 

Q. Why can't I use QuickTime files in Expression Encoder with the latest version of QT?
A. See this blog entry for a solution.

 

Q. My file X of type Y isn't importing. What gives?
A. Using media files on the Windows platform can be tricky, mainly because of the multitude of formats and codecs available. If not supported natively, you will have to find the right codecs for the files that you are trying to use. Expression Encoder comes with some built-in codecs such as: WMV/VC1, MPEG2, H.264 and AAC. Some other codecs are available from the OS, such as: AVI, MJPEG, DV, MP3, etc. But most other file formats will require the right codec to be installed. In general, if you can playback the file in Windows Media Player, you should be able to import it into Expression Encoder.

 

Q. Can I encode my WTV files?

A. Expression Encoder supports encoding unencrypted WTV files on platforms that have the proper codecs to support them. Currently, only Windows Vista with Media Center TV Pack and Windows 7 have that capability.

 

Q. Why can't I import Windows 7 WTV files with AC3 audio in Expression Encoder?
A. There is a known bug with WTV that we are in the process of providing a fix shortly. In the meantime, you can either use a 3rd party AC3 filter or convert your file to a DVR-MS (by right-clicking on it in Windows Explorer).

 

Q. One of my imported AVCHD file is several hours longer than it should be. How do I fix this?
A. We are in the process of providing a fix shortly. In the meantime, you can use 3rd party codecs (M2TS splitter, H.264 decoder and AC3 decoder respectively) to correctly import your AVCHD.

 

Q. My WTV file has multiple audio streams, but I can't find a way to switch the audio stream in Expression Encoder.
A. For WTV files, the played stream is controlled via the default selected language in the Media Center Edition (MCE). Temporarily changing the stream in MCE prior to importing the file will effectively enable you to choose which stream will be used to playback and encode in Expression Encoder.

 

Q. Expression Encoder is unstable and/or I get bad preview or encoded output with certain files. How do I fix this?
A. We're sorry you're encountering problems with our application. This can be due a multitude of reasons, but one of these steps may help resolve this:

·         Make sure latest video drivers are installed, as well as the latest version of any other video application or codec.

·         Try disabling hardware accelerated decoding. To disable this feature, go to the Tools menu and click Options. In the Options dialog box, click Compatibility, and then click Allow hardware accelerated decode to deselect it.

·         Try turning off some or all 3rd party codecs. To do this, go to the Tools menu and click Options. In the Options dialog box, click Compatibility. Below the codec list, click Disable All or, in the codec list, click any codec in the list to deselect it.

 

 

Encoding

 

 

Q. Why does my 1080p content encoded with the XBOX360 preset look bad?

A. This blog entry has the solution.

 

Q. Some of the metadata tags aren't getting imported and/or propagated to my encoded file. How can I fix this?

A. The current Expression Encoder behavior is to transfer only standard metadata tags; all other metadata tags, such as custom tags, are ignored. The easiest way to circumvent this limitation is to use our .NET SDK to infuse the lost metadata by creating your own custom metadata tags. We are investigating better ways to deal with metadata in future releases.


Q. Encoding HD or Smooth Streaming is slow. What can I do to speed things up?

A. The best way to speed encode with Expression Encoder without compromising quality is to have more cores/processors available to the encoding process. Quad-core PC’s extremely efficient at encoding video, especially last generation PC’s (example: Intel i7), are. To an extent, more memory, a faster HDD and a more powerful GPU may help too, but the main bottleneck at this point is the CPU load in most cases. If you want to optimize speed over quality, select the Fastest preset, which significantly improves encoding speed at the expense of picture quality. To select this preset, click the Presets tab in Expression Encoder, expand the Encoding Quality category, and double-click Fastest.

 

Q. What is "smart” or "intelligent” encoding?

A. This is the process in which an encoder or editor would be able to directly copy the data from a source file to a destination file without decoding or recompressing the unedited frames. This operation can greatly speed up overall encoding time, but can only be done if specific conditions are met.

 

Q. Does Expression Encoder support smart encoding?

A. Expression Encoder currently supports smart encoding if you use WMV sources and set them to the “Windows Media” output format. Also, any Video and/or Audio profiles must be set to “Source,” which means that you should not perform any frame operations to the file, such as resize, crop, overlay, frame rate conversion, aspect ratio, etc. Note that some types of WMV sources do not support smart encoding, such as sources that were encoded in QVBR. If smart encoding is not possible due to the source type, Expression Encoder will utilize a normal encoding method.

 

Q. Is smart encoding supported for smooth streaming output?

A. Not at the moment.

 

Screen Capture

 

Q. What are XESC files and how do I use them?

A. XESC is the screen capture proprietary file format. It is currently supported only in Expression Encoder.


Q. Why is my screen capture encoded output blurry?

A. It is likely that wrong encoded settings were selected. Make sure to select only the source frame size in the profile settings. Also, make sure that you specify a bit rate sufficient enough to encode the data at a high quality.

 

Support

 

Q. How do I get technical support for my purchased version of Expression Encoder?

A. Visit Microsoft Help.

 

Q. Is customer support offered with the free version of Expression Encoder?

A. While formal support is not offered for the free product, you can find help on the
Expression Community site and the Encoder forum.

 

In their recent QuickTime update, Apple added a new DLL dependency to their SDK which unfortunately breaks our QuickTime integration. Until this situation is resolved in a more permanent fashion, here is a workaround to get QuickTime to work again in all versions of Expression Encoder:

  • From the Start menu, right-click on "Computer" and select "Properties".
  • Select "Advanced system settings"
  • In the "System Properties" dialog, click on "Environment Variables..." in the Advanced tab.
  • In the "System variables" list, find the "Path" variable and double click on it.
  • Add this string at the end of "Variable value" to add the missing directory to your path:

;C:\Program Files (x86)\QuickTime\QTSystem\         (For a 64-bit environment)

or

;C:\Program Files\QuickTime\QTSystem\                 (For a 32-bit environment)

  • Click OK to close all the dialogs and restart Windows. QuickTime will be working again in Expression Encoder.

 

We have just made available a new option that allows users to purchase the full version of Expression Encoder as a standalone product.  To recap what this means, let’s start with the free version of Expression Encoder.  This is available from here:image

http://www.microsoft.com/downloads/details.aspx?FamilyID=b6c8015b-e5de-46c0-98cd-1be12eef89a8&displaylang=en

and contains the full feature set of the product with the following limitations:

  • Screen capture up to 10 minutes
  • No Smooth Streaming output
  • The following CODECs are not present: AC3 Decoder, MPEG2/TS Decoder, AVC-HD Decoder, H.264 Encoder, AAC-LC Encoder/Encoder

(Note.. the installer is currently miss-labeled as Encoder_Trial_en.exe but is, in fact fully featured bar the above list and also not time-bombed as in previous versions.)

If you try and access these features you’ll get the following message:

image

As of today, the purchase link now points to a new Microsoft Store page where you can get an Expression Encoder 3 license for $49:

image

Expression Encoder 3 is still available as part of Expression Studio 3, Expression Web 3 as well as through the Expression Professional Subscription and MSDN programs.

To allow the encoded files to playback seamlessly in most environments, including when streamed on a wireless network, the XBox 360 preset uses a bandwidth of 4Mbps while preserving the video frame size of the original file. This is fine for standard definition content however will produce mediocre output for 720p sources and will be even worse for 1080p content. Because of that, I would advise tweaking the video bitrate to your specific needs. So, if network speed isn't an issue, I would personally recommend changing the video bitrate to something like 6-7Mbps for 720p content or 8-10Mbps for 1080p content, which is still within the Xbox360 supported limits for VC-1 decoding.

 

Finally, it's important to note that the Advanced VC-1 video profile is not supported by the Xbox360 (nor the PS3 through Media Connect), so it's probably best to leave it as "VC-1 Main", like the XBox 360 Preset does.

When Encoder 3 is installed we now install the API help file, intellisense files and the sample projects, so you’re ready to go with the SDK as soon as Encoder is installed. You will find a SDK link on the start menu that will take you to the folder from where you can find the samples (in C# and Visual Basic) and the help CHM file.

Live Encoding Support

I know a bunch of you have been waiting for this for a while now and you’ll be glad to see that V3 has full support for the Live mode of the application through the object model.

e.g.

// Create a new LiveJob to begin broadcasting this file.
using (LiveJob job = new LiveJob())
{
    // Create a new file source from the file name we were passed in
   LiveFileSource fileSource = job.AddFileSource(@"C:\myvideo.wmv");

    // Set this source to Loop when finished
   fileSource.PlaybackMode = FileSourcePlaybackMode.Loop;

    // Make this source the active one
   job.ActivateSource(fileSource);
…

From the LiveJob object you can get a list of video and audio capture devices installed on the system and add them as sources as well. See the Microsoft.Expression.Encoder.Live namespace for further details and the new Live SDK sample that is installed.

Redesigned profile support with full support for H.264 customization.

In V3 we now have separate profile classes for each profile type. This way if you’re dealing with the Main H.264 video profile for instance you’ll just see the properties that pertain to that profile on the object. (Note that you need the full version of Encoder for H.264 support). Along with this you now specify the profiles within the OutputFormat property on the MediaItem.

Bitrate is specified by using one of the new bitrate classes, ConstantBitrate, VariableConstrainedBitrate, VariableUnconstrainedBitrate and VariableQualityBitrate. Again this is so that only the properties that make sense are exposed on the class. For example when using VariableConstrainedBitrate there is a PeakBitrate property but that property isn’t exposed on any of the other bitrate classes as it only applies to the variable constrained bitrate type.

e.g.

MainVC1VideoProfile videoProfile = new MainVC1VideoProfile();
videoProfile.Bitrate = new ConstantBitrate(350);
videoProfile.Complexity = VideoComplexity.Fastest;
videoProfile.Size = new System.Drawing.Size(640, 480);

MediaItem item = new MediaItem(@"C:\myvideo.wmv");
item.OutputFormat = new WindowsMediaOutputFormat()
{
    VideoProfile = videoProfile
};

Smooth Streaming

The Encoder SDK supports encoding to the smooth streaming output format (when using the full version of Expression Encoder). The video profile class now has a streams property which is used to specify the details of each stream that you wish to encode. Smooth Streaming can be used when encoding to constant bitrate for VC-1 and H.264 and to variable constrained bitrate when using VC-1. Additionally when using VC-1 and variable constrained bitrate you can specify that the sizes of the streams should be automatically determined by the encoder based upon the content and the bitrate. In this case you specify the maximum width and height to use for each stream.

e.g.

AdvancedVC1VideoProfile videoProfile = new AdvancedVC1VideoProfile();

// When you create a VideoProfile you'll get one stream by default.
// In this example remove that one as we’re going to explicity 
// add the three streams below.
videoProfile.Streams.RemoveAt(0);
videoProfile.Streams.Add(
    new VariableConstrainedBitrate(1450, 1600),
    new System.Drawing.Size(800, 600));
videoProfile.Streams.Add(
    new VariableConstrainedBitrate(1050, 1600),
    new System.Drawing.Size(640, 480));
videoProfile.Streams.Add(
    new VariableConstrainedBitrate(600, 1600),
    new System.Drawing.Size(400, 300));

// Use smooth streaming with automatically sized streams.
videoProfile.SmoothStreaming = true;
videoProfile.Streams.AutoSize = true;

Encoding Multiple Sources Together

In V2 you could essentially combine up to three sources by using the leader, main video and trailer. In V3 you can move past this limit and combine multiple sources into one by using the new Source class.

e.g.

MediaItem item = new MediaItem("mymovie1.wmv");
item.Sources.Add(new Source("mymovie2.wmv"));
item.Sources.Add(new Source("mymovie3.avi"));
item.Sources.Add(new Source("mymovie4.wmv"));

File Information

There are new classes to help analyze an existing media file to determine information about its video streams and audio streams (in case the file has more than one).

e.g.

AudioVideoFile source = new AudioVideoFile("myvideo.wmv");
Console.WriteLine(source.VideoStreams[0].VideoSize);
Console.WriteLine(source.VideoStreams[0].AspectRatio);
Console.WriteLine(source.VideoStreams[0].Duration);
Console.WriteLine(source.AudioStreams[0].Channels);
Console.WriteLine(source.AudioStreams[0].SampleSize);

If the source file does have more than one audio stream you can now specify which stream is used when encoding by setting the AudioStreamIndex property on the Source object.

e.g.

item.Sources[0].AudioStreamIndex = 2;

Presets

For all the standard presets that are installed with the application we have specified pre-defined static instances for each one to make it easier to use in case you don’t want to set all the properties of the profiles individually.

e.g.

mediaItem.ApplyPreset(Presets.VC1HighSpeedBroadbandVBR);

If you look at the Presets Members in the SDK help file you’ll see all the options along with descriptions.

So there you have a quick introduction to some of the new changes and improvements to the Expression Encoder object model in version 3. You can check out the What’s New section in the SDK help file for further details and feel free to give us your feedback and ask questions either by adding a comment here or over in the Expression Encoder Forum

14 Comments
Filed under:

We are very pleased to announce that both Expression Studio 3 trial and Expression Encoder 3  are now available to download:

Encoder: here

Studio: here

In this release we have taken on board your feedback and simplified the product line. There are now two versions: Expression Encoder and Expression Encoder with IIS Smooth Streaming. We have retired the Express version and, instead, have made all the features in Expression Encoder available for free with no more 30 day limit.

So what do you get in Expression Encoder with IIS Smooth Streaming?

· CODECs (AC3 Decode, MPEG2/TS Decode, AVC-HD Decode, H.264 Encode, AAC-LC Encode/Decode)

· Unlimited Screen Capture (Expression Encoder can capture up to 10 minutes)

· IIS Smooth Streaming

Other than that, all functionality in the Expression Encoder is freely available with no time limit (Full VC-1 encode, Live encoding, Overlays, Screen Capture up to 10 minutes).

If you wish to obtain the fully licensed version of Expression Encoder with IIS Smooth Streaming, it is available in both of the Expression Studio 3 and Expression Web 3 SKUs as well as in the Expression Professional Subscription which can be ordered from the Microsoft Store or your favorite online retailer.

As previously mentioned, there will be a freely redistributable version of Expression Encoder 3 available in the future, that can be shipped as part of 3rd party applications.

image We on the Expression Encoder team are proud to announce that Expression Encoder 3 is complete and will shortly be available!  Since releasing V2 SP1 back in November of 2008 we have worked hard to improve core encoding capabilities,  continued to enhance new features such as Smooth Streaming, H.264 and editing as well as broaden the applicability of the product by adding new features such as Screen Capture.

We have also focused heavily on our Silverlight output upgrading the MediaPlayer control to Silverlight 3 and the template skins that are based on it.  We’ll drill into the details of what is new over the course of this post and look forward to hearing your feedback.

So how do you get Encoder 3? We’ll keep you in suspense a little while longer and direct you to the http://team.silverlight.net blog for the official announcement of Expression Studio 3.

Encoder Enhancements

We’ll start our tour of what’s new with the enhancements to the core encoding engine of the product.

Improved H.264.  First up, we’ve improved the H.264 encoder that was part of V2 SP1 by adding support for custom resolutions (V2 SP1 was limited to two portable device-specific resolutions), single pass CBR, VBR Constrained, VBR unconstrained and Quality-based VBR rate control methods, Main Profile support, B-Frame support and advanced settings which include the ability to choose between the two major Entropy modes of Context-adaptive variable-length coding (CAVLC) and Context-adaptive binary arithmetic coding (CAVAC).

image

VBR Smooth Streaming.  Microsoft is investing heavily in Smooth Streaming across its product lines, which in conjunction with Silverlight, enables everyone to watch great quality video on the web at up to full HD 1080p. One of the results, that we are very excited to be shipping, is a brand new VC-1 encoder that has been optimized specifically for the multi-bitrate, multi-resolution nature of IIS Smooth Streaming.  Some of the features of the new technology include:

  • A new rate control that uses an analysis pass to distribute rate across GOPs
  • Support for variable GOP duration (the original CBR form of encoding requires fixed GOPs)
  • Dynamic optimization of coded resolution based on scene complexity and bitrate.  Additionally, directional energy measurements are used to change resolution both horizontally and vertically
  • An optimized polyphase filter for resizing resulting in better speed and quality that has been optimized for the SSE4 instruction set.   
  • Significant performance optimizations such as sharing motion information across bitrates and a faster analysis pass
  • Ability to cancel an encode if QPs start to spike, and restart with lower resolution

Source CODECs.  In Encoder 3, we’ve broadened our support for source CODECs.  We have improved the performance of our H.264 decoder as well as adding support for AVCHD format.  We’ve also added some enhancements to our QuickTime stack to enable compatibility with ProRes which will help with post production workflows.  We are also pleased to be shipping Dolby Digital decoding in the box.  Finally, we’ve added the ability to import Smooth Streaming files so that you can review an encode outside Silverlight.  In this case, you are able to open the .ism file and the largest stream will be rendered.  This final feature is also available outside of Expression Encoder because we register the decoder on the system.  This means that once the full version of Expression Encoder has been installed, other applications on the system that can make use of DirectShow source filters will be able to open .ismv files.

Audio Enhancements.  We heard your feedback and added support for multi-channel audio output:

image
We have also added the ability to select between multiple audio streams, where sources have them, as well as support for the Voice codec and VBR audio encoding. Last but not least, we dynamically determine what audio encoding capabilities are available from the host OS.

Performance.  Performance is something we are never done with.  In Encoder 3 we’ve made great progress, particularly on multi-core, multi-processor scenarios.  First off, our core encoders have been rev’d to include support for newer Intel SSE instructions as well as support for up to 8 physical cores.  Secondly, we’ve improved CPU utilization on multi-core systems by parallelizing preprocessing tasks.  To illustrate the improvements, here are some before and after comparison charts based on analysis of Encoder 2 and Encoder 3 performance:

image  
Core 2 Duo Laptop; Vertical axis time in seconds – smaller is better; V2 in blue, V3 in red; results aggregated from 6 different source files

image 
Dual proc 8 Core Xeon; Vertical axis time in seconds – smaller is better; V2 in blue, V3 in red; results aggregated from 6 different source files

We are working on more performance comparisons including i7 Nehalem systems which we’ll publish in due course.

Live Encoding.  We spent a bunch of time in this release moving the Live portion of our encoder over to using the new encoding pipeline first introduced in Encoder 2.  This results in some immediate benefits such as better performance and de-interlacing support as well as some potential future benefits.  We’ve also added support for WMA Pro audio in Live, a new object model for Live (more details on this in the API section) and support for a broader range of capture devices.

Expression Screen Capture

In recent years, screen-casting has become an extremely popular way of sharing information you are looking at on your system with other users; encompassing eLearning, product support, user-generated content and many other domains. Included with Expression Encoder 3 is a new application called Expression Encoder Screen Capture available in the start menu or from within the main Expression Encoder UI.

image

You simply decide if you want to record webcam, and mic as well as the screen and system sound, pick a screen region with the easy to use Window picker (or by free-form selection):

image 

.. and start capturing.  One of the benefits of our new implementation is that we capture to a light weight intermediate CODEC, developed by Microsoft Research, rather than attempting to capture and encode directly to VC-1 or H.264.  This leaves more of the CPU available for the application you are capturing.  After capture, it is easy to import the sources into Expression Encoder for final encoding and Silverlight templating if required.

UI Enhancements

Improved profile palette.  As Expression Encoder has evolved between versions, the old Encoding settings palette had became increasingly unwieldy.. so for Encoder 3 we rebuilt it from the ground up. 

image

The most common encoding settings are now easier to find and set.  The advanced encoding settings are hidden by default so you only see the options you need.  And the ability to address different output CODECs is now explicitly designed in.

Inside audio and video sections, there are many enhancements that make day to day tasks easier such as changing the aspect ratio or configuring multiple streams for Smooth Streaming.

image

Preset Palette.  Encoder 3 now has a more extensive library of encoding presets including an expanded set that target devices such as Xbox, iPod, Zune and the forthcoming Zune HD, online video services such as Facebook and YouTube and an expanded and improved set that target IIS Smooth Streaming.  As well as the expanded library, we have also added a new searchable preset palette where both system and user presets are stored as well as the ability to easily apply presets to all items via right-click.

image

Dockable palettes.  In common with the rest of the Expression 3 suite, Encoder 3 now uses the common palette docking framework which enables you to lay out your interface however you choose by simply dragging palettes and either popping them out into floating windows or grouping them into docked locations.  The Hide Palettes function has also been enhanced allowing the hidden palettes to pop open on hover.

Summary Palette. Summary information has been moved into a separate palette which can be displayed via the Window menu.

image

Cog Menus.  In order to streamline palette-specific functions, we’ve introduced cog menus:

image

Cog menus are present on all palettes.  We’ve also got rid of the small white dot menus that were somewhat undiscoverable :-).

Editing Enhancements.   In Encoder 2, we had the concept of adding a leader and trailer to a main file.  In Encoder 3, we have removed leader and trailer and replaced it with an extended Clips palette which enables multiple items to be stitched together.  This enables scenarios such as multiple leaders / trailers, Ad insertion and simple editing.  

image

It is also possible to set the stretch mode per clip and choose to apply crop which was not previously possible with leader and trailer.  You can append still frames (and set their duration) as well as XAML animations. Note that all of the enhanced editing capabilities are also available through the object model.

Silverlight 3 MediaPlayers


The Silverlight mediaplayers that have shipped in the box with Expression Encoder since V1 make it really easy to publish videos that target Silverlight.  In Encoder 3, we have updated all of the included templates to be based upon Silverlight 3 which means they are offered in the easy to use and deploy XAP format and all share the same common MediaPlayer control at their core.  We have also exposed the core MediaPlayer control in the Blend 3 toolbox which makes it easy for designers to embed and customize a full featured MediaPlayer in their projects that supports captions, chapters, smooth streaming etc.

SL3 specific features.  We have added a number of Silverlight 3 specific features to all of the new players including

  • Cached composition:  Think of cached composition as hardware acceleration for the final frame presentation step.  Enabling cached composition (on by default) is as simple as a checkbox and results in much lower CPU utilization which helps general playback performance particularly on lower end systems such as NetBooks.  It also means that setting Stretch Mode Uniform incurs no performance penalty.
  • Offline support : Offline also known as Out Of Browser (OOB) is a new feature of Silverlight 3 that enables users to install Silverlight apps locally on their Mac or Windows machine.  In Encoder 3, if you choose to enable offline support when you publish a Silverlight video, the user will have the option of downloading and installing not only the media player code but also the video and audio files.

    This feature also works in conjunction with IIS Smooth Streaming so you get the benefit of adaptive streaming when online and a downloaded, high quality version to watch when away from a network.

    To show this in action, I created the following screencast.  Note that you can actually try the offline feature on the screencast it by clicking on the cog menu and selecting Offline :-)



  • We’ve made some changes to the Adaptive Streaming support that is baked into our MediaPlayer control.  Firstly, we’ve improved the bandwidth heuristics in a number of ways such as using the new CPU load metrics available from the Silverlight 3 runtime and constraining the playback resolution based on the size of the video window (to prevent bandwidth wasted by downloading e.g. 720p when the window size is only e.g. 320x240).

    We have also moved the heuristics into a separate XAP so that the adaptive streaming module can be loaded only when necessary thus helping to reduce the core download size.  Finally, we have changed the way we distribute the Media Steam Source (MSS) that implements the client portion of IIS Smooth Streaming.  We have moved to a model where we ship object code for this component, not source.  Source code is shipped for all other MediaPlayer functionality and is usable, redistributable and modifiable under the MS-PL.

New Player Skins.  We have worked with ace design firm Archetype to create some great new player skins featuring smoothly animating controls and new Silverlight 3 features such as perspective transform.

image

image

image

image 

Other Silverlight Improvements:

  • XAP Size reduction: we’ve taken steps to reduce the size of the MediaPlayer control.. the core player is now 109k down from 162k in Encoder 2 SP1.
  • Popout: We’ve added a Popout feature to the templates that allows a video to be popped out of a webpage as a webpage dialog.. you can then drag to another monitor and go fullscreen to keep watching while you work.   
  • Scriptability: The core mediaplayer control is now fully scriptable from Javascript.
  • Improved Install Experience: Expression Encoder now automatically generates a Content Gate install experience for users that don’t have Silverlight Installed:

    image
       
  • Improved accessibility on Silverlight Media Player: We’ve added tooltips to buttons on the MediaPlayer and done some additional testing with screen readers.
  • Edit in Expression Web:  We offer the ability to edit the output of a job in Expression Web.
      
  • Preview in Browser:  You can now open a Smooth Streaming job previously encoded and saved and start up the Smooth Streaming preview server and launch the default browser without having to re-encode the job.

    image
  • MediaPlayer control available in Blend Asset Palette:  When Expression Encoder is installed on the same system as Blend, the Expression MediaPlayer control becomes available in the Blend asset palette.  This enables designers and developers to easily use and customize our base player and take advantage of all the built-in functionality such as chapter points, closed captions, play lists smooth streaming, Offline support etc.
  • Transcoding in Expression Web:  Expression Web ships with Expression Encoder and utilizes the API to offer simplified transcoding functionality integrated right in.

API Enhancements

Expression Encoder has had a .NET API since Version 2.  In Version 3, we are making some changes:

Object Model for Live Encoding. Live encoding now has an object model so you can create applications that capture and stream from live capture sources as shown here:

   1: using (LiveJob job = new LiveJob())
   2:            {
   3:                // Create a new file source from the file name we were passed in
   4:                LiveFileSource fileSource = job.AddFileSource(fileToEncode);
   5:  
   6:                fileSource.PlaybackMode = FileSourcePlaybackMode.Loop;
   7:  
   8:                //Alternatively, enumerate a capture device (not shown here)
   9:  
  10:                job.ActivateSource(fileSource);
  11:  
  12:                WindowsMediaBroadcastOutputFormat outputFormat = new WindowsMediaBroadcastOutputFormat();
  13:  
  14:                // Let's broadcast on the local machine on port 8080
  15:                outputFormat.BroadcastPort = 8080;
  16:  
  17:                // Set the output format on the job
  18:                job.OutputFormat = outputFormat;
  19:  
  20:                // Start encoding
  21:                Console.Out.Write("Press 'x' to stop encoding...");
  22:                job.StartEncoding();
  23:  
  24:                while (Console.ReadKey(true).Key != ConsoleKey.X)
  25:                {
  26:                    // We are waiting for the 'x' key
  27:                }
  28:  
  29:                // Stop our encoding
  30:                Console.Out.WriteLine("Encoding stopped.");
  31:                job.StopEncoding();
  32:            }


Refactored Encoding Profile OM.  In addition to refactoring the Encoding profile palette, we have also refactored the underlying object model for configuring profiles making it simpler to use.  Instead of a monolithic Profile class, settings have been broken into a class hierarchy allowing the app to more easily and logically support multiple output CODECs such as H.264 and VC-1.

SDK in the Box.  The SDK is now shipped along with the application.  It has also been updated to include more samples, including a Powershell cmdlet sample.

image

Redistributable version of Expression Encoder.  We will also be offering a no fee redistributable version of Expression Encoder for developers who wish to ship applications using the SDK.  Stay tuned for more information on this that we’ll share here on the blog in due course. 

General

Windows 7 Superbar Progress: View at a glance how far through the encode has progressed:

First pass:
image

Second pass:
image

Removal of PS 2.0 requirement: We had feedback from users of older graphics cards that did not support Pixel Shader 2.0 that they were unhappy that they could not preview video.  So in Encoder 3, we still take advantage of PS 2.0 if present, but do not require it for preview.

Support for LargeAddressAware flag:  Some of the new features, in particular the new VBR Smooth Streaming Encoder, can require a lot of memory in certain scenarios.  In Encoder 3, we set the /LARGEADDRESSAWARE bit in the application’s PE header which enables 3GB of addressable memory on x86 systems (requires BCDEDIT /Set IncreaseUserVa 3072) and 4GB on x64 systems.  For more information on this and how to configure an x86 system to take advantage of this feature, see http://msdn.microsoft.com/en-us/library/aa906217.aspx and http://blogs.technet.com/brad_rutkowski/archive/2006/10/03/Hey-where-did-_2F00_3GB-go-in-Longhorn-and-Vista_3F00_.aspx

Removal of command-line encoder:  One of the tough trade-offs we had to make for this release was what to do with the command-line.  In Encoder 2 SP1 the command-line encoder was functionally behind what was possible in the UI and the Object Model.  We also observed a lot of community support for specialized command-line alternatives such as WMCmd.vbs by Alex Zambelli.  So, for Encoder 3 we took the difficult decision of removing the command-line encoder from the product.  Instead we directed our energies into making the .NET Object Model full fidelity in order to give application developers the maximum API surface area possible, including support for Live encoding.  To mitigate the decision, we are shipping working sample code in the box in the form of a Powershell cmdlet wrapper around the object model which provides basic Powershell-based command-line encoding supporting batch operations via the Powershell object pipeline:

 image

Additionally, we are keen to work with the community to get an equivalent to WMCmd.vbs built and published on Codeplex to satisfy users who really want to automate encoder using cmd.exe rather than from Powershell or C#.  We hope you agree that this was the right trade-off to make.  If you have any opinions, positive or negative, please do send us your feedback.

Summary

We look forward to making the release available for download in the coming weeks and talking more about its capabilities.  Stay tuned and, as ever, your feedback is welcome.
The Expression Encoder Team.

Back in October, we announced a new Microsoft video delivery technology called IIS Smooth Streaming.  In a nutshell, this approach combines both client (based on Silverlight) and server (based on IIS) components that, together, deliver scalable media experiences up to 720p+ over the internet using the plain old HTTP protocol.

We have had a preview of the technology running over at http://www.smoothhd.com courtesy of our CDN partner, Akamai.  We also added support for encoding to, and previewing, the new format in back in Expression Encoder 2 SP1.

Today we are announcing beta availability of the IIS Smooth Streaming component completing the picture and enable users to test the technology end to end..  You can download the extension over on the IIS Site.

There will also be a number of talks on all aspects of Smooth Streaming at MIX (including one I’m doing on encoding).. keep an eye on https://content.visitmix.com/2009/sessions/?categories=Media for more info. 

For more information and background on the technology check out the following links :

John Bocharov

I’ve seen the future and the future is… Smooth!

Smooth Streaming Questions- We’ve Got Answers!

Alex Zambelli

Smooth Streaming Architecture

The Birth of Smooth Streaming

A Brief History of Multi-Bitrate Streaming

SmoothMBRCalc

James Clarke (me :-) )

Inside Expression Encoder’s MediaPlayer control part 3: Smooth Streaming playback heuristics (coming soon)

Inside Expression Encoder’s MediaPlayer control part 2: Debugging IIS Smooth Streaming client code

Inside Expression Encoder’s MediaPlayer control part 1

We just released an update to the Silverlight Streaming publishing plugin to support the Silverlight 2 templates that were added in Expression Encoder 2 SP1.

You can get it from the Download Center here.

image

image We’ve just released an update to the SDK, which now incorporates the new features in Expression Encoder 2 Service Pack 1.

Here are the main things that are new in the SDK :-

  • We’ve improved the formatting of the help file so things are hopefully a little easier to read.

  • We have a new updated object model layout diagram.

  • New files to give updated Intellisense comments.

  • Some new samples in Visual Basic.

  • Added ASF indexing support. For more information, see AsfIndexer in the Programming
    Reference.
  • A new Mode property, EncoderSku, which gives more accurate SKU information than Mode.IsExpress.

  • A new MediaItem property, FileOutputMode, which you can use to select ASF MBR as well as "Adaptive Smooth Streaming" output modes.

  • Enhancements to how output files are generated and accessed.

  • New audio overlay functionality for MediaItem.

  • Two new AAC base profiles for AudioProfiles.

  • Two new H.264 base profiles for VideoProfiles.

  • A new AdaptiveStreaming profile for both AudioProfiles and VideoProfiles.

  • A new VideoProfile profile, VideoProfileMbrDeltaCollection, which you can use to customize MBR and/or AdaptiveStreaming output streams.

  • A new default resize mode of SuperSampling instead of Bicubic.

    Here’s the link to download the updated SDK.

    http://www.microsoft.com/downloads/details.aspx?FamilyId=9A077A3D-58CE-454C-B486-153F0578BE4A&displaylang=en

  • SP1 has just gone live here:

    http://www.microsoft.com/downloads/details.aspx?FamilyId=A29BE9F9-29E1-4E70-BF67-02D87D3E556E&displaylang=en

    In addition to the enhancements that are documented in this post, the update includes support for the authoring of IIS Smooth Streaming content.

    Note that the authoring of both IIS Smooth Streaming and H.264 for devices are only available in the full product, not the trial.  The remainder of the features such as audio overlays and WebDAV publishing are available both in the trial and the full product.

    Today we are announcing:

    • IIS Smooth Streaming, a new adaptive streaming technology evolved from work done for the web distribution NBC Olympics.
    • Akamai is launching a preview of a new service called “Akamai AdaptiveEdge Streaming for Microsoft Silverlight” that will enable HD video experiences on the web (see http://www.smoothHD.com for more info).

    As part of the announcement we will be shipping support for IIS Smooth Streaming in Expression Encoder 2 SP1 including the ability to simultaneously encode to multiple bitrates required to enable an adaptive streaming scheme, support for outputting to the new file format as well as support for the format in our Silverlight 2 player skins.

    In simple terms, adaptive streaming is an approach that enables video playback to adapt, in real time, to changing network conditions and PC load and be able to offer the appropriate bitrate at any particular instant.  The IIS Smooth Streaming implementation offers various optimizations that make deployment and management of such a scheme simpler and more cost effective.  IIS Smooth Streaming will be an upcoming feature of the IIS Media Pack.

    Expression Encoder 2 SP1 will be available real soon now.. when it drops, we’ll be following up with more info on the new features and how to create IIS Smooth Streaming content.  In the meantime you can check out the demos over at http://www.smoothHD.com.

    Since the release of Expression Encoder 2 back in May of this year, we’ve been hard at work on new features. Today we are announcing Expression Encoder 2 SP1, which we plan to release by the end of the year as a free upgrade to Expression Encoder 2. There are a wide variety of enhancements across many areas of the product in this release and you’ll find a comprehensive list below. The three top-line features are: Silverlight 2 templates, H.264 support and WebDAV publishing available out of the box. Additionally, and consistent with a service pack release, we’ve fixed a decent number of bugs.

    Silverlight 2 Player Templates

    Our SIlverlight Player templates provide a quick and easy way to get a Silverlight video experience created including rich functionality such as DVD style chapter navigation, subtitles and metadata. With the advent of Silverlight 2, the first Silverlight release to including the .NET CLR, we have completely rewritten our player from the ground up.

    MediaPlayer control

    For starters, we’ve made a Silverlight 2 custom control called MediaPlayer. This is a core component shared by all of our new templates. It is completely customizable via our integrated “Edit in Blend”, just like the Silverlight 2 intrinsic controls.

    image

    Some of the new properties of the player include

    • Utilization of Silverlight 2 controls e.g. buttons, sliders that can be independently styled
    • Use of the Visual State Manager to enable declarative states e.g. for fullscreen mode
    • Adaptive layout for better resizing
    • Playlist support in all players (including metadata display)
    • Byte-range seeking: When a user clicks forward on the timeline into a non-downloaded region, the player will cancel the current progressive download and start a new one from the point that has been seeked to.

    You can use the MediaPlayer control outside of our player templates simply by referencing the project (source code included in the box). It is quick and easy to get up and running in XAML. Reference the control and instantiate thus:

    image

    When editing in Blend, rich UI is available for editing properties (e.g. playlists as shown here:)

    image

    Finally, we’ve removed all of the complex JavaScript needed to invoke the player from an HTML page; this is now accomplished with a simple <object/> tag.

    H.264 encoding for devices

    Since we shipped our V1 release, we’ve heard loud and clear from customers that they’d like more output formats than just VC-1. One of the most common scenarios that kept cropping up is content producers that are embracing Silverlight for web video but also wish to make the content available as a Podcast for devices.

    We are therefore happy to announce that, starting with V2 SP1, we are adding H.264/AAC encoding to the product. For this release we are supporting two device profiles: a baseline 320x240 for smaller flash memory based devices and a 640x480 profile for larger screen resolutions.

    Since it has been announced that Silverlight is going to support H.264 you can expect us to broaden our encoding support for the format in the future.

    A/B compare enhancements

    Band mode allows you to drag out a number of bands (as many or as few as you need) to better discern the difference between original and encoded videos. As before, you can play back in the mode and rotate the bands through 90 degrees.

    image

    Diff Mode plots the degree of difference of the source vs encoded as a luminance map. If the encoded clip is identical to the source, its difference would be rendered all black (this can be inverted by double-clicking).

    image

    Audio Overlays

    Audio overlays work just like video overlays only they now enable you to overlay an audio track complete with relative level and fade in / out.

    They also enable a workflow for adding an external audio track to a mute video source and outputting a muxed A/V output.

    We’ve also enabled the audio from a video overlay to be enabled / mixed in if desired.

    WebDAV publishing in the box

    Publish to IIS, Sharepoint and other servers that support the WebDAV protocol.

    image

    Bug fixes / minor features

    There is a reasonably large list of small fixes that have gone into this release, many too minor to mention. The following are the more noteworthy:

    · Copy/paste markers and script commands: e.g. to/from Excel

    · Cancelling multi-file encode no longer deletes completed items

    · Removing items from jobs no longer deletes output

    · Enhanced trimming of overlays (from front, drag middle)

    · Run encode as background priority: so you can still use your machine for other tasks. Controllable via a setting

    · Mouse wheel support for zooming, mouse pan support

    · Enhanced Warning Triangles

    · Better default for cropping output. E.g. If you have a 16:9 video that only had 4:3 video inside it, if you choose 4:3 output and select crop, we’ll automatically crop out the correct portion in the middle.

    · Edit in Visual Studio option for templates

    · Couple of additional VC-1 advanced encoding properties

    · We now index unindex WMV/ASF files

    · Source Mode stream copying will now work even for cases where we don’t support the source CODEC as an output type in our UI e.g. WMScreen

    So there we have it. As always, feedback gratefully received,

    Hope this helps

    The Expression Encoder Team

    In case you missed this press release, we just announced that H.264 support is coming to both Silverlight and Expression Encoder.

    Later this week, at the International Broadcasting Conference (IBC) 2008 in Amsterdam, Microsoft Corp. will demonstrate an important new capability for Silverlight - playback of H.264-based video. H264 is a standard video specification that delivers high-definition video over a variety of delivery channels. During the event, Microsoft will also highlight how customers in Europe are reaping the benefits of adopting Silverlight.

    At IBC 2008 we will be demonstrating a technology preview of H.264 video and Advanced Audio Coding (AAC) audio playback support in Silverlight, and H.264 authoring using Microsoft Expression Encoder and Windows Server 2008 for delivery. Until now, Silverlight has supported the SMPTE VC-1 and Windows Media formats, as well as MP3 for audio, enabling customers to take advantage of broad support across the Windows Media ecosystem, including third-party tools, service providers and content delivery networks.

    We’ll be talking more about the next release of Expression Encoder at Streaming Media West 2008 in a couple of weeks time.

    More Posts Next page »
     
    Page view tracker