<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:evnet="http://www.mscommunities.com/rssmodule/"><channel><title>Entries tagged with vc-1 - Channel 10</title><atom:link rel="self" type="application/rss+xml" href="http://on10.net/tags/vc-1/rss/default.aspx" /><image><url>http://mschnlnine.vo.llnwd.net/d1/Dev/App_Themes/Channel10/images/feedimage.png</url><title>Entries tagged with vc-1 - Channel 10</title><link>http://on10.net/tags/VC-1/</link></image><description>vc-1</description><link>http://on10.net/tags/VC-1/</link><language>en-us</language><pubDate>Thu, 28 Aug 2008 22:05:55 GMT</pubDate><lastBuildDate>Thu, 28 Aug 2008 22:05:55 GMT</lastBuildDate><generator>EvNet (EvNet, Version=1.0.3143.743, Culture=neutral, PublicKeyToken=null)</generator><item><title>Technical Emmy for H.264/MPEG-4 AVC</title><description>&lt;img src="http://on10.net/Link/0ccb69d3-7bc6-4f27-8922-6a61c3bad979/" border="0" /&gt;&lt;p&gt;I have many ways of reminding my wife I'm an hopeless video nerd. Among them is that I only pay attention to the Emmy Awards she's watching when the recap of the &lt;a href="http://cdn.emmys.tv/media/releases/2008/rel-pte60-eng.php"&gt;technical awards&lt;/a&gt; comes on.&lt;/p&gt;
&lt;p&gt;So, I was really excited that our own Dr. Gary Sullivan, chairman of the Joint Video Team, was on hand last week to receive a 2008 Primetime Emmy&lt;sup&gt;®&lt;/sup&gt; Engineering Award for developing H.264/MPEG-4 AVC High Profile. In the words of the &lt;a href="http://cdn.emmys.tv/atemmys/index.php"&gt;Academy&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;b&gt;Joint Video Team Standards Committee (JVT)&lt;/b&gt; for the development of the High Profile for H.264 / MPEG-4 AVC. The High Profile enables high definition images in the H.264 video coding system used today to deliver HD video over satellite and cable TV as well as Blu-ray Disc. The JVT is a standardization team comprised of members from the International Standardization Organization (ISO), the International Electrotechnical Commission (IEC), and the International Telecommunication Union (ITU).&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The award recognized Broadcom, NTT DoCoMo, Dolby Laboratories, Fraunhofer Heinrich Hertz Institute, Microsoft, Motorola, Panasonic, Sony, and Thomson as contributing companies, as well as standards organizations ISO, IEC, and ITU.&lt;/p&gt;
&lt;p&gt;Gary has long represented Microsoft as as chair and co-chair of the Joint Video Team that coordinated the H.264/MPEG-4 AVC effort between ITU-T VCEG and ISO/IEC MPEG, amongst his many other efforts like DXVA; his &lt;a href="http://en.wikipedia.org/wiki/Gary_Sullivan_%28engineer%29"&gt;page on Wikipedia&lt;/a&gt; has more details.&lt;/p&gt;
&lt;p&gt;I suppose some people might be surprised at Microsoft's inclusion here, but they shouldn't be. While Microsoft has a long heritage of making our own ground-up codecs like &lt;a href="http://www.microsoft.com/resources/mediaandentertainment/vc-1.mspx"&gt;VC-1&lt;/a&gt;, we've also long been involved in standards-based codecs, including the original MPEG-4 Part 2 as well as MPEG-4 Part 10/H.264. And we've got a number of products that incorporate H.264 today, including &lt;a href="http://www.microsoftmediaroom.com/#"&gt;Mediaroom&lt;/a&gt;, the &lt;a href="http://www.zune.net/en-us/products/compare.htm"&gt;Zune 4/8 and 80&lt;/a&gt;, and &lt;a href="http://www.xbox.com/en-US/support/systemuse/xbox360/digitalmedia/videoplaybackfaq.htm#h264"&gt;Xbox 360&lt;/a&gt;. H.264 are and VC-1 are both great codecs, with somewhat different sweet spots, and we use either or both as appropriate in our products, platforms, and services.&lt;br /&gt;
&lt;br /&gt;
The picture above has, left to right: Malcolm Johnson (director of the ITU standardization bureau), Ajay Luthra (JVT vice-chair from Motorola), Gary Sullivan (JVT chair from Microsoft), Thomas Wiegand (JVT vice-chair from Fraunhofer HHI), and Scott Jameson (chair of ISO/IEC JTC 1)&lt;/p&gt;
&lt;p dir="ltr"&gt;&lt;a href="http://on10.netfile:///C:/Users/Ben%20Waggoner/AppData/Roaming/Windows%20Live%20Writer/PostSupportingFiles/6063ae46-18d1-4564-99fb-81cf52c9cd1b/DSC_5902_final_1280x636[5].jpg&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;And a few other articles/posts about the award:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://news.thomasnet.com/companystory/548059"&gt;ANSI&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.eetimes.com/news/latest/showArticle.jhtml?articleID=210200755"&gt;EE Times&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.reuters.com/article/pressRelease/idUS126897+21-Aug-2008+BW20080821"&gt;Dolby&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://micketoh.blogspot.com/2008/08/primetime-emmy-engineering-award-on.html"&gt;Minoru "Mick" Etoh's blog&lt;/a&gt; (who represented DoCoMo at the ceremony)&lt;/p&gt;&lt;img src="http://on10.net/23410/WebViewBug.aspx?EVT=0" height="1" width="1" alt="" /&gt;</description><comments>http://on10.net/blogs/benwagg/Technical-Emmy-for-H264MPEG-4-AVC/</comments><link>http://on10.net/blogs/benwagg/Technical-Emmy-for-H264MPEG-4-AVC/</link><pubDate>Thu, 28 Aug 2008 19:05:00 GMT</pubDate><guid isPermaLink="true">http://on10.net/blogs/benwagg/Technical-Emmy-for-H264MPEG-4-AVC/</guid><evnet:views>303</evnet:views><evnet:viewtrackingurl>http://on10.net/23410/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>&lt;p&gt;I have many ways of reminding my wife I'm an hopeless video nerd. Among them is that I only pay attention to the Emmy Awards she's watching when the recap of the &lt;a href="http://cdn.emmys.tv/media/releases/2008/rel-pte60-eng.php"&gt;technical awards&lt;/a&gt; comes on.&lt;/p&gt;
&lt;p&gt;So, I was really excited that our own Dr. Gary Sullivan, chairman of the Joint Video Team, was on hand last week to receive a 2008 Primetime Emmy&lt;sup&gt;®&lt;/sup&gt; Engineering Award for developing H.264/MPEG-4 AVC High Profile.&lt;/p&gt;</evnet:previewtext><media:thumbnail url="http://on10.net/Link/9b20ca89-b6d7-4ef6-88e9-5105e9981884/" height="240" width="320" /><media:thumbnail url="http://on10.net/Link/0ccb69d3-7bc6-4f27-8922-6a61c3bad979/" height="64" width="85" /><dc:creator>benwaggoner</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://on10.net/blogs/benwagg/Technical-Emmy-for-H264MPEG-4-AVC/RSS/</wfw:commentRss><trackback:ping>http://on10.net/23410/Trackback.aspx</trackback:ping><category>AVC</category><category>codecs</category><category>compression</category><category>Emmy</category><category>Gary Sullivan</category><category>H.264</category><category>VC-1</category></item><item><title>Silverlight Skinning in Flip4Mac</title><description>&lt;p&gt;Much has been made of our making the Mac a first-class citizen of Silverlight. We build the Mac and Windows versions together, and release them simultaneously. We've intentionally structured Silverlight to minimize dependencies on the underlying hardware and OS, and carry around all our codecs inside the runtime.&lt;/p&gt;
&lt;p&gt;What I haven't talked a whole lot about in too long is our support for authoring Silverlight video experiences on the Mac. While our own &lt;a href="http://www.microsoft.com/expression/products/Overview.aspx?key=encoder"&gt;Expression Encoder 2&lt;/a&gt; is Windows-only, we work with partners to provide WMV and VC-1 encoding on other platform. &lt;a href="http://www.telestream.net/"&gt;Telestream&lt;/a&gt; has been a great partner here, with their &lt;a href="http://flip4mac.com/wmv.htm"&gt;Flip4Mac&lt;/a&gt; QuickTime component and their &lt;a href="http://flip4mac.com/episode.htm"&gt;Episode&lt;/a&gt; stand-alone compression tool (originally known as Compression Master, and which came along with their acquisition of Popwire).&lt;/p&gt;
&lt;p&gt;Flip4Mac is a testament to both the portability of the Windows Media technologies and the flexibility of Apple's QuickTime architecture. It works as a QuickTime component, enabling QuickTime to play Windows Media content like any other supported format, with full access to all of QuickTime's features like hardware accelerated full-screen playback (all supported in the free version). For example, in the QuickTime Pro Properties window:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://on10.net/Link/dff98a55-ac91-45bc-a633-5d8c21791cb3/"&gt;&lt;img width="754" height="438" alt="WMV-Properties" src="http://on10.net/Link/cd669cba-38d1-43e3-8357-5d53d40e2321/" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;Looks just like any other QuickTime file. Even the ASF metadata shows up.&lt;/p&gt;
&lt;p&gt;Flip4Mac also supports content authoring in the paid version, as well as import into content creation apps like Final Cut Pro. It's got pretty deep control, even exposing features like B-Frames that'd take a registry key with Windows Media Encoder.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;So, how about a quick walkthrough through the Flip4Mac encoding settings?&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Flip4Mac is accessed like any other exportable format from QuickTime (like MPEG-4). It also comes with a bunch of presets for typical scenarios.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://on10.net/Link/aeafd1d9-f16c-4ad1-ab9f-52f1380d0bde/"&gt;&lt;img width="560" height="226" alt="Export-to-Windows-Media" src="http://on10.net/Link/b89df424-5e3d-4bea-84b8-c919d8ca6e76/" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;It has the normal set of basic video export features you'd expect, nicely Macified. I appreciate the "Size: Current" so I don't have to always type in the frame size of the source when I'm not scaling.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://on10.net/Link/74335ee2-1559-4da6-9bd7-4cf3dfa80aaf/"&gt;&lt;img width="424" height="595" alt="Export-Video" src="http://on10.net/Link/69e33ea7-bc4e-4fc8-82d3-3c0c60b77fae/" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;The Advanced button reveals some deeper options, including a complexity control for speed/quality tradeoffs and B-Frame distance. You can also set Flip4Mac to deinterlace interlaced sources, or pass interlacing on through to the final encode. Since it can both encode and decode interlaced VC-1, Flip4Mac can be a great way to transfer editable 480i video sources over slow connections. It can match DV quality in 20% the data rate.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://on10.net/Link/bd494fd2-d828-4341-9f4d-925bbee6b6ed/"&gt;&lt;img width="384" height="374" alt="Export-Video-Advanced" src="http://on10.net/Link/8c3958eb-3f8f-475e-881b-89324ecd0bea/" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;For Silverlight audio, Flip4Mac supports both WMA 9 Standard and 9 Professional. It doesn't encode the 32-96 Kbps WMA 10 Pro low bitrate modes that Silverlight 2 will be able to decode, but does have the full variety of WMA encoding modes.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://on10.net/Link/7670c265-1f0a-416b-bfd5-e6434481dcfc/"&gt;&lt;img width="424" height="595" alt="Export-Audio" src="http://on10.net/Link/aaaf96f3-faa0-4736-9b4d-eb514c42581a/" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;And the coolest new feature of Flip4Mac: built-in Silverlight templates! This lets you build a complete Silverlight player (using Expression Encoder templates we provided) directly from any app that support QuickTime export.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://on10.net/Link/17463da8-321b-4e81-a56d-b94275e8a05f/"&gt;&lt;img width="424" height="595" alt="Export-Silverlight" src="http://on10.net/Link/40821dbc-df63-4491-913a-daeede47a74e/" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://on10.net/22908/WebViewBug.aspx?EVT=0" height="1" width="1" alt="" /&gt;</description><comments>http://on10.net/blogs/benwagg/Silverlight-Skinning-in-Flip4Mac/</comments><link>http://on10.net/blogs/benwagg/Silverlight-Skinning-in-Flip4Mac/</link><pubDate>Thu, 03 Jul 2008 22:54:00 GMT</pubDate><guid isPermaLink="true">http://on10.net/blogs/benwagg/Silverlight-Skinning-in-Flip4Mac/</guid><evnet:views>1370</evnet:views><evnet:viewtrackingurl>http://on10.net/22908/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>Much has been made of our making the Mac a first-class citizen of Silverlight. We build the Mac and Windows versions together, and release them simultaneously. We've intentionally structured Silverlight to minimize dependencies on the underlying hardware and OS, and carry around all our codecs inside the runtime.&lt;br /&gt;
&lt;br /&gt;
What I haven't talked a whole lot about in too long is our support for authoring Silverlight video experiences on the Mac.</evnet:previewtext><dc:creator>benwaggoner</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://on10.net/blogs/benwagg/Silverlight-Skinning-in-Flip4Mac/RSS/</wfw:commentRss><trackback:ping>http://on10.net/22908/Trackback.aspx</trackback:ping><category>compression</category><category>Flip4Mac</category><category>silverlight</category><category>VC-1</category></item><item><title>Low Latency webcasting with Windows Media and Siverlight</title><description>&lt;p&gt;So, &lt;a href="http://www.streamingmedia.com"&gt;Streaming Media&lt;/a&gt; is doing a special "&lt;a&gt;Europe edition&lt;/a&gt;" of Streaming Media, and I'm doing an article about webcasting for it. I've getting a bunch of questions about how to deliver low-latency live streaming to Silverlight, and so with their permission, I'm excerpting this section on that topic.&lt;/p&gt;
&lt;p&gt;EDIT: A correction was made; turning off Fast Cache in Windows Media Services does not have any effect on webcasting latency.&lt;/p&gt;
&lt;p&gt;So, &lt;a href="http://www.streamingmedia.com"&gt;Streaming Media&lt;/a&gt; is doing a special "&lt;a&gt;Europe edition&lt;/a&gt;" of Streaming Media, and I'm doing an article about webcasting for it. I've getting a bunch of questions about how to deliver low-latency live streaming to Silverlight, and so with their permission, I'm excerpting this section on that topic.&lt;/p&gt;
&lt;p&gt;While by default, Windows Media can offer 15-20 second end-to-end delay, it's possible to drive it down to 2-3 seconds with best practices on a good network, and we're looking at what we can do to push it to below even that. The critical thing is to tune the encoder, server, and player latency together.&lt;/p&gt;
&lt;p&gt;There's an older but more detailed "&lt;a href="http://www.microsoft.com/windows/windowsmedia/howto/articles/BroadcastDelay.aspx"&gt;Reducing Broadcast Delay&lt;/a&gt;" document on this topic over at the &lt;a href="http://www.microsoft.com/windows/windowsmedia/default.mspx"&gt;Windows Media portal&lt;/a&gt; that may be worth perusing.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;blockquote&gt;
&lt;h1&gt;Low Latency Webcasting&lt;/h1&gt;
&lt;p&gt;Latency is the measure of how much time goes between when video enters the encoder and leave the user display. Latency is something that doesn’t matter at all in some markets, and matters a lot in others.&lt;/p&gt;
&lt;p&gt;The reason we have latency is buffering, and the reason we have buffering is for quality and reliability. By having the server wait several seconds after a video stream is received before sending it out, it’s able to support more peaks and valleys in the data rate, and makes it possible for a dropped packet to be detected and resent before its needed. In the same way, buffering in the player lets it average out data rates and recover dropped packets as well.&lt;/p&gt;
&lt;p&gt;Large buffers were extremely important in the modem era, and are still useful in many kinds of networks today. The defaults are good for delivering high quality content over a variety of networks. But when minimizing the latency is important, and reliable networks are available, the end to end delay can be reduced substantially.&lt;/p&gt;
&lt;p&gt;Since total end-to-end latency is the sum of the encoder latency, server latency, and player latency, plus how long it takes the packets to travel between each of those, improving latency requires tweaks to the encoder, server, and player in parallel.&lt;/p&gt;
&lt;h2&gt; &lt;/h2&gt;
&lt;h2&gt;Encoder&lt;/h2&gt;
&lt;p&gt;On the encoder side, reducing buffer size reduces startup latency. WME and Expression Encoder both enable you to go down to one second.. Using Lookahead or Lookahead Rate Control will increase latency beyond the buffer value (typically about another half a second for LRC).&lt;/p&gt;
&lt;p&gt;&lt;a href="http://on10.net/Link/a89f60fd-9d03-4740-a09a-914ced42a40e/"&gt;&lt;img width="554" height="547" alt="WME Low Delay setup" src="http://on10.net/Link/f8b746c7-b7d6-4986-bf62-91a226b4b95c/" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;For audio, Windows Media includes the “WMA Low Delay” audio codecs from 192-64 Kbps which provide lower latency than the normal WMA modes. If you’re targeting Silverlight 1.0 or WMP 10 or earlier, you’ll want to use that for low latency. If you can require WMP 11 or Silverlight 2, you can use the lower delay yet WMA 10 Pro codec at 32-96 Kbps.&lt;/p&gt;
&lt;h4&gt;&lt;a href="http://on10.net/Link/80714ec3-e884-4b66-8f39-ac52dbb0ec9f/"&gt;&lt;img width="554" height="547" alt="WMA Low Delay" src="http://on10.net/Link/14f46809-639e-44b5-98dd-47dabde3a0ed/" border="0" /&gt;&lt;/a&gt; &lt;/h4&gt;
&lt;h2&gt; &lt;/h2&gt;
&lt;h2&gt;Server&lt;/h2&gt;
&lt;p&gt;WMS features like &lt;a href="http://technet2.microsoft.com/windowsserver2008/en/library/c4e6684a-9b15-44ea-989f-0c74e6c5a9491033.mspx?mfr=true"&gt;Advanced Fast Start&lt;/a&gt; can dramatically reduce latency for on-demand content, but don’t apply to live webcasting as the server has to wait for content to arrive from the encoder it in real time, and so can only play out at real time.&lt;/p&gt;
&lt;p&gt;Server buffering can be turned off entirely in WMS for Windows Server 2003 and 2008, yielding a significant drop in latency.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://on10.net/Link/506c0fcf-dfc8-4ff8-84ca-53d58ad8ce06/"&gt;&lt;img width="418" height="462" alt="Disable_buffering" src="http://on10.net/Link/cd2f01b6-f3a1-468c-85ad-59c8e4c5aded/" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;EDIT:&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;The previous version of this post suggested that turning off Fast Cache would help webcasting latency. On further research, this turns out not to be the case. Disabling Fast Cache will slow down on-demand startup time, but will have no effect one way or the other for live content. &lt;/p&gt;
&lt;h2&gt;Player&lt;/h2&gt;
&lt;p&gt;Normally the player isn’t under control of the streamer. By default WMP dynamically picks an optimum buffer size based on its measurements of network and stream performance. However, it’s possible to lower the buffer size in the player’s options. This can help reduce latency when watching streams with a good connection, but could produce pauses in the video when watching video from the general Internet.&lt;/p&gt;
&lt;p&gt;Silverlight makes the player buffer size a controllable parameter, so an optimal setting can be applied for the content, and even adjusted on the fly. This is controlled by the &lt;a href="http://msdn.microsoft.com/en-us/library/bb979808(VS.95).aspx"&gt;BufferingTime&lt;/a&gt; parameter in a Silverlight &lt;a href="http://msdn.microsoft.com/en-us/library/bb980132(VS.95).aspx"&gt;MediaElement&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://on10.net/Link/eb9e403b-e712-41be-8675-e8a6367e6aee/"&gt;&lt;img width="835" height="317" alt="MediaElement-in-Blend" src="http://on10.net/Link/d51f67a4-d787-43e9-a674-344c7385051c/" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;&lt;img src="http://on10.net/22792/WebViewBug.aspx?EVT=0" height="1" width="1" alt="" /&gt;</description><comments>http://on10.net/blogs/benwagg/Low-Latency-webcasting-with-Windows-Media-and-Siverlight/</comments><link>http://on10.net/blogs/benwagg/Low-Latency-webcasting-with-Windows-Media-and-Siverlight/</link><pubDate>Sun, 22 Jun 2008 05:25:00 GMT</pubDate><guid isPermaLink="true">http://on10.net/blogs/benwagg/Low-Latency-webcasting-with-Windows-Media-and-Siverlight/</guid><evnet:views>1303</evnet:views><evnet:viewtrackingurl>http://on10.net/22792/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>So, &lt;a href="http://www.streamingmedia.com"&gt;Streaming Media&lt;/a&gt; is doing a special "&lt;a&gt;Europe edition&lt;/a&gt;" of Streaming Media, and I'm doing an article about webcasting for it. I've getting a bunch of questions about how to deliver low-latency live streaming to Silverlight, and so with their permission, I'm excerpting this section on that topic.&lt;br /&gt;
&lt;br /&gt;
EDIT: A correction was made; turning off Fast Cache in Windows Media Services does not have any effect on webcasting latency.</evnet:previewtext><dc:creator>benwaggoner</dc:creator><slash:comments>2</slash:comments><wfw:commentRss>http://on10.net/blogs/benwagg/Low-Latency-webcasting-with-Windows-Media-and-Siverlight/RSS/</wfw:commentRss><trackback:ping>http://on10.net/22792/Trackback.aspx</trackback:ping><category>compression</category><category>Expression Encoder</category><category>Live</category><category>Streaming Media</category><category>VC-1</category><category>Webcasting</category><category>Windows Media Audio</category><category>Windows Media Encoder</category></item><item><title>Good article about the Olympics in Silverlight</title><description>&lt;p&gt;Max Bloom has written a &lt;a href="http://www.streamingmedia.com/article.asp?id=10405&amp;page=1&amp;c=31"&gt;good article about NBC Universal''s upcoming Olympics broadcasts in Silverlight&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Read the article yourself, but here's a few choice quotes from it:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;"NBCU plans to offer 3,600 hours of live programming from Beijing. That’s 212 live hours for each of the 17 days of the Olympics... In addition to the sheer volume of live content to be delivered—three times what was offered in 2004— what’s notable is that most of NBCU’s live programming—2,200 hours—will be delivered online at &lt;a href="http://www.nbcolympics.com/"&gt;NBCOlympics.com&lt;/a&gt;." &lt;/li&gt;
    &lt;li&gt;"The 2008 Summer Games in Beijing will mark the arrival of streaming as a viable alternative to the Olympics’ television broadcast. This summer, NBCOlympics.com will offer 4,400 hours of on-demand streaming in addition to its 2,200 hours of live programming, making the Beijing Olympics the most ambitious streaming media project in history." &lt;/li&gt;
    &lt;li&gt;"To help meet that challenge, the NBCOlympics.com player offers a “metadata overlay” feature, which allows the player to display transparent data and navigation tools over the video window. This enables users to access statistics and other data without covering up, pausing, or leaving the primary video display. For example, play-by-play announcers’ dialogue can be keyed into an XML data stream, then rendered as a timecoded, scrolling text caption that transparently overlays the bottom of the video display. The player also enables the TiVo-like experience of pausing, rewinding, and replaying content, and these two features together allow viewers to use either the timecode or the play-by-play captioning to rewind to a specific point in the on-screen action and replay it." &lt;/li&gt;
    &lt;li&gt;"A slew of DRC-Stream software and encoder boards from Canada-based Digital Rapids are being deployed in Beijing to populate NBCOlympics.com’s encoding farm, but other than committing to VC-1, NBCOlympics.com has yet to confirm encoding bitrates, frame rates, or frame sizes. (Without offering more specifics, Miller says NBCOlympics.com will be streaming through a managed bitrate solution to optimize the user’s connection, with a target maximum bitrate of 650KB/sec.) Digital Rapids is also supplying software to enable transcoding from other digital media formats into VC-1.Miller promises hundreds of hours of online HD video..." &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Note that there's already a bunch of content up at &lt;a href="http://www.nbcolympics.com/"&gt;NBCOlympics.com&lt;/a&gt; if you want to get an early taste of what's in store on 8/8/08.&lt;/p&gt;&lt;img src="http://on10.net/22716/WebViewBug.aspx?EVT=0" height="1" width="1" alt="" /&gt;</description><comments>http://on10.net/blogs/benwagg/Good-article-about-the-Olympics-in-Silverlight/</comments><link>http://on10.net/blogs/benwagg/Good-article-about-the-Olympics-in-Silverlight/</link><pubDate>Mon, 16 Jun 2008 23:31:00 GMT</pubDate><guid isPermaLink="true">http://on10.net/blogs/benwagg/Good-article-about-the-Olympics-in-Silverlight/</guid><evnet:views>1382</evnet:views><evnet:viewtrackingurl>http://on10.net/22716/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>Max Bloom has written a &lt;a href="http://www.streamingmedia.com/article.asp?id=10405&amp;page=1&amp;c=31"&gt;good article about NBC Universal''s upcoming Olympics broadcasts in Silverlight&lt;/a&gt;.</evnet:previewtext><dc:creator>benwaggoner</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://on10.net/blogs/benwagg/Good-article-about-the-Olympics-in-Silverlight/RSS/</wfw:commentRss><trackback:ping>http://on10.net/22716/Trackback.aspx</trackback:ping><category>compression</category><category>NBC Universal</category><category>New York City</category><category>olympics</category><category>silverlight</category><category>VC-1</category></item><item><title>What a difference a half-decade makes! Live VC-1 today and at launch</title><description>&lt;img src="http://on10.net/Link/e8e19881-80f0-4f79-8e24-199075f582a1/" border="0" /&gt;&lt;p&gt;A recent conversation over at the &lt;a href="http://streamingmedia.com/discussion.asp"&gt;Streaming Media Advanced&lt;/a&gt; list sparked a rant from me about the importance of comparing implementations of codecs, not just codecs.&lt;/p&gt;
&lt;p&gt;To that end, I thought I'd do a demo to show how much improvement there's been in Windows Media since the launch of Windows Media 9 Series back in 2003.&lt;/p&gt;
&lt;p&gt;A recent conversation over at the Streaming Media Advanced list sparked a rant from me about the importance of comparing implementations of codecs, not just codecs.&lt;/p&gt;
&lt;p&gt;To that end, I thought I'd do a demo to show how much improvement there's been in Windows Media since the launch of Windows Media 9 Series back in 2003.&lt;/p&gt;
&lt;p&gt;Below, you'll find two streams, encoded with the same settings but with tools from different eras. The streams are both&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Live encoding from a preprocessed file (so that preprocessing differences don't matter) &lt;/li&gt;
    &lt;li&gt;And yes, it's the "&lt;a href="http://on10.net/blogs/benwagg/Sample-Encoder-Test-Clips/"&gt;Lady Washington&lt;/a&gt;" footage again. &lt;/li&gt;
    &lt;li&gt;640x360 &lt;/li&gt;
    &lt;li&gt;29.97 fps &lt;/li&gt;
    &lt;li&gt;600 Kbps video &lt;/li&gt;
    &lt;li&gt;64 Kbps 44.1 stereo WMA audio &lt;/li&gt;
    &lt;li&gt;5 second buffer &lt;/li&gt;
    &lt;li&gt;Keyframe every 5 seconds &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The difference is that the first is encoded with the original Windows Media Video 9 codec (ala just Windows Media Player 9 installed, like a stock Windows XP SP2 machine), and the second with the &lt;a href="http://www.microsoft.com/resources/mediaandentertainment/vc-1encodersdk.mspx"&gt;VC-1 Encoder SDK&lt;/a&gt; implementation in &lt;a href="http://www.microsoft.com/expression/products/Overview.aspx?key=encoder"&gt;Expression Encoder 2&lt;/a&gt;. Pretty dramatic differences, I hope!&lt;/p&gt;
&lt;table cellspacing="1" cellpadding="5"&gt;
    
        &lt;tr&gt;
            &lt;td&gt; &lt;/td&gt;
            &lt;td&gt;&lt;strong&gt;Live Windows Media 2003&lt;/strong&gt;&lt;/td&gt;
            &lt;td&gt;&lt;strong&gt;Live Windows Media 2008&lt;/strong&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;strong&gt;Silverlight embedded page&lt;/strong&gt;&lt;/td&gt;
            &lt;td&gt;&lt;a href="http://silverlight.services.live.com/invoke/31260/WM9LiveWME9/iframe.html" target="_blank"&gt;2003 in Silverlight&lt;/a&gt;&lt;/td&gt;
            &lt;td&gt;&lt;a href="http://silverlight.services.live.com/invoke/31260/WM9LiveEEv2/iframe.html" target="_blank"&gt;2008 in Silverlight&lt;/a&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;strong&gt;Direct link to WMV &lt;br /&gt;
            (right-click to download)&lt;/strong&gt;&lt;/td&gt;
            &lt;td&gt;&lt;a href="http://silverlight.services.live.com/31260/WM9LiveWME9/video.wmv"&gt;2003 direct WMV link&lt;/a&gt;&lt;/td&gt;
            &lt;td&gt;&lt;a href="http://silverlight.services.live.com/31260/WM9LiveEEv2/video.wmv"&gt;2008 direct WMV link&lt;/a&gt;&lt;/td&gt;
        &lt;/tr&gt;
    
&lt;/table&gt;
&lt;p&gt;...reminding me that I really need to blog how to make a Silverlight dual media player that can play two versions of the same clip in sync.&lt;/p&gt;
&lt;p&gt;So, what makes this big difference? There's been a huge amount of work and three major releases (Format SDK 9.5 and 11, and VC-1 Encoder SDK) since then, so I won't give a &lt;a href="http://on10.net/blogs/benwagg/20613/"&gt;complete list&lt;/a&gt;, but a few of the highlights.&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;4-way threading instead of 2-way threading, doubling performance on modern machines. &lt;/li&gt;
    &lt;li&gt;Lots of SSE2 and SSE3 optimizations to improve performance. &lt;/li&gt;
    &lt;li&gt;"Adaptive Complexity" that dynamically adjusts the complexity of the encoder, to make sure it's always using all available CPU power, without ever dropping frames. This compares to the old default live complexity of 1 (out of a 0-4 range). &lt;/li&gt;
    &lt;li&gt;Using B-frames (supported in the old decoder, but not used in the original encoder) which improve compression efficiency and enable efficient encoding of flash frames. &lt;/li&gt;
    &lt;li&gt;Lookahead Rate Control, where the codec buffers a few frames into the future, so it knows when it needs to start saving some bits for an upcoming keyframe, or when it's save to use a lot of bits on a few challenging frames. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A lot of the above are about performance. With offline encoding, better performance just makes for faster encoding. But for live encoding, it helps quality, because it allows the codec to do more math per pixel to find the optimum way to encode that file.&lt;/p&gt;
&lt;p&gt;So, how big a difference is this? Below is a graph showing the Quantization Parameter (QP) for the two encodes. QP is a measure of how encoded each frame is, with higher values more highly compressed. In VC-1, the range is 0-31. A good rule of thumb is that QP of much below 8 looks pretty good, and QP of 8 or above...won't. Now, a live SD encode at 600 Kbps is pretty darn aggressive, so there's plenty of spots where both encodes certainly show artifacts. And quality varies a lot throughout the file as the the complexity of the video goes up and down, as this is a Constant Bitrate (CBR) encode. Note the relatively low QPs near the end of the file, where the easy credits scroll comes in.&lt;/p&gt;
&lt;p&gt;But still, the modern VC-1 implementation (in red) with all of the above is dramatically better. While the old encoder (in blue) spikes all the way up to the maximum QP of 31, the new one is typically several QP lower, and maxes out at a QP of 20 instead.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://on10.net/Link/0fb41c00-566e-40d8-a5a1-bf822c8005fc/"&gt;&lt;img width="804" height="533" alt="QP-chart" src="http://on10.net/Link/e7064f37-103f-48c0-a181-005762e12cf6/" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;That said, man, my Excel-fu sure has declined over the years. Hard to believe I used to teach classes on making good-looking Excel charts back in the early 90's. Anyway, just remember that lower is better, and red is our current stuff.&lt;/p&gt;&lt;img src="http://on10.net/22587/WebViewBug.aspx?EVT=0" height="1" width="1" alt="" /&gt;</description><comments>http://on10.net/blogs/benwagg/What-a-difference-a-half-decade-makes-Live-VC-1-today-and-at-launch/</comments><link>http://on10.net/blogs/benwagg/What-a-difference-a-half-decade-makes-Live-VC-1-today-and-at-launch/</link><pubDate>Thu, 05 Jun 2008 02:11:00 GMT</pubDate><guid isPermaLink="true">http://on10.net/blogs/benwagg/What-a-difference-a-half-decade-makes-Live-VC-1-today-and-at-launch/</guid><evnet:views>1512</evnet:views><evnet:viewtrackingurl>http://on10.net/22587/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>&lt;p&gt;A recent conversation over at the &lt;a href="http://streamingmedia.com/discussion.asp"&gt;Streaming Media Advanced&lt;/a&gt; list sparked a rant from me about the importance of comparing implementations of codecs, not just codecs.&lt;/p&gt;
&lt;p&gt;To that end, I thought I'd do a demo to show how much improvement there's been in Windows Media since the launch of Windows Media 9 Series back in 2003.&lt;/p&gt;</evnet:previewtext><media:thumbnail url="http://on10.net/Link/5ed7e244-d807-461a-b408-fa4c84a73f37/" height="240" width="320" /><media:thumbnail url="http://on10.net/Link/e8e19881-80f0-4f79-8e24-199075f582a1/" height="64" width="85" /><dc:creator>benwaggoner</dc:creator><slash:comments>1</slash:comments><wfw:commentRss>http://on10.net/blogs/benwagg/What-a-difference-a-half-decade-makes-Live-VC-1-today-and-at-launch/RSS/</wfw:commentRss><trackback:ping>http://on10.net/22587/Trackback.aspx</trackback:ping><category>Expression Encoder</category><category>Live</category><category>silverlight</category><category>VC-1</category><category>Windows Media</category></item><item><title>Videos from the "Secret Compressionist's Ball"</title><description>I've always called my &lt;a href="http://on10.net/blogs/benwagg/21944/"&gt;annual compressionists party &lt;/a&gt;something like the "Ben Waggoner Compressionist's Party" but &lt;a href="http://blogs.msdn.com/david_sayed/default.aspx"&gt;David Sayed &lt;/a&gt;from the Expression Encoder team suggests the much better name of the "Secret Compressionist's Ball"&lt;br /&gt;
&lt;br /&gt;
Better yet, he's got a &lt;a href="http://blogs.msdn.com/david_sayed/archive/2008/05/22/the-secret-compressionist-s-ball.aspx"&gt;couple of video interviews &lt;/a&gt;from the party! You'll see me in the background in my mildly famous purple shirt in a few shots.&lt;br /&gt;
&lt;br /&gt;
First, Tony Houghton from &lt;a href="http://promoscape.com.au/" target="_blank"&gt;Promoscape&lt;/a&gt;, talking about Silverlight.&lt;br /&gt;
&lt;br /&gt;
Second, Bruce Lidl from &lt;a href="http://www.mainconcept.com/" target="_blank"&gt;MainConcept&lt;/a&gt; talking about their VC-1 codec implementation they're now licensing out, including support on Mac and Linux.&lt;br /&gt;
&lt;br /&gt;
The clips are embedded at smaller than they're encoded; double-click to see them in their full glory.&lt;img src="http://on10.net/22528/WebViewBug.aspx?EVT=0" height="1" width="1" alt="" /&gt;</description><comments>http://on10.net/blogs/benwagg/Videos-from-the-Secret-Compressionists-Ball/</comments><link>http://on10.net/blogs/benwagg/Videos-from-the-Secret-Compressionists-Ball/</link><pubDate>Thu, 29 May 2008 03:39:00 GMT</pubDate><guid isPermaLink="true">http://on10.net/blogs/benwagg/Videos-from-the-Secret-Compressionists-Ball/</guid><evnet:views>756</evnet:views><evnet:viewtrackingurl>http://on10.net/22528/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>I've always called my annual compressionists party something like the "Ben Waggoner Compressionist's Party" but David Sayed from the Expression Encoder team suggests the much better name of the "Secret Compressionist's Ball"&lt;br /&gt;
&lt;br /&gt;
Better yet, he's got a couple of video interviews from the party! You'll see me in the background in my mildly famous purple shirt in a few shots.</evnet:previewtext><dc:creator>benwaggoner</dc:creator><slash:comments>1</slash:comments><wfw:commentRss>http://on10.net/blogs/benwagg/Videos-from-the-Secret-Compressionists-Ball/RSS/</wfw:commentRss><trackback:ping>http://on10.net/22528/Trackback.aspx</trackback:ping><category>compression</category><category>Expression Encoder</category><category>NAB</category><category>party</category><category>VC-1</category></item><item><title>Expression Suite 2 and Expression Encoder 2 now shipping!</title><description>&lt;p&gt;May 1st is a happy day for me! I went over to &lt;a href="http://www.microsoft.com/expression"&gt;www.microsoft.com/expression&lt;/a&gt;, and was delighted to find that the &lt;a href="http://www.microsoft.com/expression/products/Overview.aspx?key=studio" target="_blank"&gt;Expression Studio 2&lt;/a&gt; is now shipping, including the final version of &lt;a href="http://www.microsoft.com/expression/products/Overview.aspx?key=encoder" target="_blank"&gt;Expression Encoder 2&lt;/a&gt;. There's a &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=A04DCC8C-9DB7-41CB-A27C-08CBEB0A01BA&amp;displaylang=en" target="_blank"&gt;30-day trial&lt;/a&gt; available for download. Boxed copies of Studio are available today at &lt;a href="http://www.compusa.com/applications/SearchTools/item-details.asp?EdpNo=3045975&amp;CatId=993" target="_blank"&gt;CompUSA&lt;/a&gt; and &lt;a href="http://www.officemax.com/omax/catalog/sku.jsp?skuId=21260653&amp;searchString=Expression%20Studio&amp;category_Id=null" target="_blank"&gt;Office Max&lt;/a&gt;, with other retailers coming. There will also be the &lt;a href="http://www.microsoft.com/expression/products/ProfessionalSubscription.aspx" target="_blank"&gt;Microsoft Expression Professional Subscription&lt;/a&gt; for $999/year (academic and volume pricing coming soon), which includes Expression Studio along with Visual Studio, Office, Visio, XP, Vista, Virtual PC, and Parallels Desktop (to run all of the above on Mac).&lt;/p&gt;
&lt;p&gt;As I've said before, I feel that Expression Encoder 2 is the best compression tool at fulfilling the needs of its market since Terran Interactive's Media Cleaner Pro 3.1 (so long ago I can't even find anything on the web about it!). Here are some of my favorite things about it from my obsessive compression nerd's perspective.&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;First desktop priced &lt;a href="http://www.microsoft.com/resources/mediaandentertainment/vc-1encodersdk.mspx" target="_blank"&gt;VC-1 Encoder SDK&lt;/a&gt; based product ($199). &lt;/li&gt;
    &lt;li&gt;And the VC-1 implementation gives you great quality by default, and gives you an advanced mode that accesses the useful features, while handling the more esoteric ones behind the scenes. For example, the rule for WMV PowerToy was use Static Motion Vector Cost if using P-frame DQuant, otherwise use Dynamic. So Expression Encoder 2 just has a DQuant setting, and uses the right Motion Vector Cost based on that. &lt;/li&gt;
    &lt;li&gt;High quality scaling and deinterlacing modes &lt;/li&gt;
    &lt;li&gt;WMA Pro support, targeting Silverlight 2's support for that. So danceable music at 48 Kbps. &lt;/li&gt;
    &lt;li&gt;"Smart by default" - you can use the same preset and feed it a PAL 16:9 interlaced file and a NTSC 4:3 progressive file, and it'll do the right thing without having to do a single click: you'd get a 640x360 deinterlaced 25p file and a 640x480 29.97 file. &lt;/li&gt;
    &lt;li&gt;Which means you don't have a huge combination of settings to deal with all the video formats. Instead, the presets are scenario based; you just need one "1 Mbps streaming" option that'll handle all the video file variants. &lt;/li&gt;
    &lt;li&gt;Great multi-clip templates, so you can make a video gallery, with each clip having its own optional thumbnail-based chapter navigation (hmm, that deserves a nice demo). &lt;/li&gt;
    &lt;li&gt;Easy creation of thumbnail-based chapter navigation! &lt;/li&gt;
    &lt;li&gt;Captioning and metadata support, including &lt;a href="http://www.isan.org" target="_blank"&gt;ISAN&lt;/a&gt;. &lt;/li&gt;
    &lt;li&gt;Available soon, an integrated publishing module to go straight to &lt;a href="http://streaming.live.com/" target="_blank"&gt;Silverlight Streaming&lt;/a&gt;. &lt;/li&gt;
    &lt;li&gt;Support for a wide variety of source formats, including QuickTime, AVI, Windows Media, VOB (DVD), many other flavors of MPEG-2, MPEG-4, and &lt;a href="http://avisynth.org" target="_blank"&gt;AVISynth&lt;/a&gt;. &lt;/li&gt;
    &lt;li&gt;Automation available via both command-line and a .NET object model. &lt;/li&gt;
    &lt;li&gt;Simple editing features, like in/out points, preroll/postroll videos, and image and animated overlays. &lt;/li&gt;
    &lt;li&gt;GPU acceleration for previews &lt;/li&gt;
    &lt;li&gt;A great A/B compare feature, enabling short sections of the file to be encoded with a variety of compression settings, and then compared (playing in real time! zoomed in!, with an A/B split screen slider!) to both the source and each other. &lt;/li&gt;
    &lt;li&gt;An unbelievably cool live encoding module, which supports multiple cameras with live switching, streaming from files, including looping, live metadata insertion, and big quality improvements from lookahead rate control and dynamic complexity. I owe you a blog post describing that as well.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So, in summary, I guess I'd say I like it.&lt;/p&gt;
&lt;p&gt;I've had a some blog posts highlighting different projects done with Expression Encoder 2 which you can follow along with.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;a href="http://on10.net/blogs/benwagg/Hands-on-with-high-touch-encoding-Streaming-Media-All-Stars-Redo/"&gt;Hands on with high-touch encoding: Streaming Media All-Stars Redo&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://on10.net/blogs/benwagg/21750/"&gt;Encoding screen recordings for Silverlight in VC-1 with Expression Encoder 2&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://on10.net/blogs/benwagg/21587/"&gt;"What Happens in Vegas" - 720p Movie trailer at 2 Mbps via Silverlight Streaming&lt;/a&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;I've got other information about Expression Encoder and how it fits into Silverlight at&lt;/p&gt;
&lt;p&gt;&lt;a href="http://on10.net/blogs/benwagg/22040/"&gt;My NAB Presentations&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://on10.net/blogs/benwagg/Silverlight-Media-technologies-overview-in-Expression-newsletter/"&gt;Silverlight Media technologies overview in Expression newsletter&lt;/a&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;And, of course I'll be covering Expression Encoder 2 as one of the products we cover in my&lt;/p&gt;
&lt;p&gt;&lt;a href="http://on10.net/blogs/benwagg/21622/"&gt;My June 23-27th class at Stanford&lt;/a&gt;&lt;/p&gt;&lt;img src="http://on10.net/22200/WebViewBug.aspx?EVT=0" height="1" width="1" alt="" /&gt;</description><comments>http://on10.net/blogs/benwagg/Expression-Suite-2-and-Expression-Encoder-2-now-shipping/</comments><link>http://on10.net/blogs/benwagg/Expression-Suite-2-and-Expression-Encoder-2-now-shipping/</link><pubDate>Thu, 01 May 2008 22:43:00 GMT</pubDate><guid isPermaLink="true">http://on10.net/blogs/benwagg/Expression-Suite-2-and-Expression-Encoder-2-now-shipping/</guid><evnet:views>1396</evnet:views><evnet:viewtrackingurl>http://on10.net/22200/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>May 1st is a happy day for me! I went over to &lt;a href="http://www.microsoft.com/expression"&gt;www.microsoft.com/expression&lt;/a&gt;, and was delighted to find that the &lt;a href="http://www.microsoft.com/expression/products/Overview.aspx?key=studio" target="_blank"&gt;Expression Studio 2&lt;/a&gt; is now shipping, including the final version of &lt;a href="http://www.microsoft.com/expression/products/Overview.aspx?key=encoder" target="_blank"&gt;Expression Encoder 2&lt;/a&gt;.</evnet:previewtext><dc:creator>benwaggoner</dc:creator><slash:comments>1</slash:comments><wfw:commentRss>http://on10.net/blogs/benwagg/Expression-Suite-2-and-Expression-Encoder-2-now-shipping/RSS/</wfw:commentRss><trackback:ping>http://on10.net/22200/Trackback.aspx</trackback:ping><category>compression</category><category>Expression Encoder</category><category>Expression Studio</category><category>silverlight</category><category>VC-1</category></item><item><title>Hands on with high-touch encoding: Streaming Media All-Stars Redo</title><description>&lt;h1&gt;Introduction&lt;/h1&gt;
&lt;p&gt;As &lt;a href="http://www.microsoft.com/expression/products/overview.aspx?key=encoder" target="_blank"&gt;Expression Encoder 2&lt;/a&gt; approaches its immenent release, I've been using it for more and more real-world projects. This recent one was particularly chewy fun, and I thought it would make a good tutorial for a high-touch workflow.&lt;/p&gt;
&lt;p&gt;As you may remember from &lt;a href="http://on10.net/blogs/benwagg/21939/" target="_blank"&gt;a few weeks ago&lt;/a&gt;, I was one of the inaugural class of &lt;a href="http://www.streamingmedia.com" target="_blank"&gt;Streaming Media's&lt;/a&gt; &lt;a href="http://www.streamingmedia.com/article.asp?id=9954" target="_blank"&gt;Streaming Media All-Stars&lt;/a&gt;. There was a &lt;a href="http://www.infotoday.com/streamingmedia/allstars/allstar640x480.html" target="_blank"&gt;fun video montage&lt;/a&gt; of all of us on baseball cards being announce by ballpark-style narration. Good stuff, but the FLV compression wasn't quite up to my standards for this rare intersection of compression obsession and personal vanity. So I contacted Streaming Media and asked if I could take my own whack at it.&lt;/p&gt;
&lt;p&gt;I'll have an expanded version of this post as an article in an upcoming issue of &lt;a href="http://www.streamingmedia.com/magazine/" target="_blank"&gt;Streaming Media Magazine&lt;/a&gt;. If you don't get it, you can &lt;a href="http://www.omeda.com/strm/" target="_blank"&gt;sign up for a free subscription&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;h1&gt;The Source&lt;/h1&gt;
&lt;p&gt;One thing I noticed in the original is that the background graphics and a few of the animations were interlaced, as you can see in the last "before" image at the very bottom of the page.&lt;/p&gt;
&lt;p&gt;While deinterlacing it may have been possible, the heavyweight motion-adaptive deinterlacers available for technologies like &lt;a href="http://www.avisynth.org" target="_blank"&gt;AVISynth&lt;/a&gt; can be finicky to configure, and extremely slow. And in the end, nothing beats getting the source fixed in the first place. Compression is the art of getting output that's as close to the original as possible with the bits you have available; often getting access to higher quality sources can provide a much bigger improvement to final quality than all the codec tweaking in the world.&lt;/p&gt;
&lt;p&gt;So, I contacted the post house, and they fixed the background interlacing (it was just a matter of properly flagging the source as interlaced in After Effects) and re-rendered it for me as a lossless RGB PNG codec QuickTime .mov file. However, there were two shots that snuck through where one layer was still interlaced. I didn't want to wait for another disc, so I dived into After Effects (in the end, all difficult preprocessing jobs seem to wind up in After Effects). I used the "Reduce Interlace Filter" with a softness of 1 to blend the two fields together. Traditional deinterlace methods messed up the text on the cards too much. However, the softness increase from that filter wound up causing a slight visual discontinuity when it kicked in. So, I broke out the two shots with interlacing into layers, and then used a five-frame cross-dissolve transition from the original progressive frames to the start of the interlaced shot which hid the slight loss of focus (masked in part by the motion). Both interlaced shots ended on a hard cut, so I was able to switch back to the original video without a transition.&lt;/p&gt;
&lt;p&gt;I then rendered the new version out from After Effects in 32-bit float (to reduce the risk of introducing banding via an 8-bit to 8-bit conversion) into the &lt;a href="http://lags.leetcode.net/codec.html" target="_blank"&gt;Lagarith&lt;/a&gt; codec in YV12 mode, which uses the native 8-bit 4:2:0 colorspace of VC-1 and other codecs. This means that Expression Encoder doesn't need to do any color space conversion, making compression slightly faster.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;h1&gt;Markers&lt;/h1&gt;
&lt;p&gt;The other notable issue with the original clip was "keyframe popping"; when an obvious "jump" in the video happens at the keyframe rate of the video. Watch the original FLV, and you'll see it during any of the longer static shots. Since the whole section with the cards is one single long shot over 3 minutes long without any hard cuts, there wasn't a place for natural keyframes (automatically inserted at a hard cut) to go. Thus keyframe transitions would happen while the cards were otherwise static, making even a slight change visible.&lt;/p&gt;
&lt;p&gt;I also wanted to show off the Expression Encoder templates a bit by doing thumbnail navigation. In EEv2, I'm able to graphically set markers on particular frames, and set them to be keyframes and/or thumbnails. A thumbnail becomes an image file which, with the supported templates, automatically gets included in the menus for navigation (think a chapter on a DVD). Normally you also want to make the chapter points keyframes, since keyframes support immediate random access, as no other frames need to be decoded before displaying a keyframe.&lt;/p&gt;
&lt;p&gt;This was an opportunity to kill two birds with one stone; if I set the markers on the first static frame of every card, it'd be nice high quality image that all the later frames that reference that I-frame can be based on, propagating its quality forward. If I set my keyframe spacing long enough, there wouldn't be any other keyframes in that interval to cause keyframe popping, and so the static card would be very consistent.&lt;/p&gt;
&lt;p&gt;So, I set a marker for each person, flagged to be both a thumbnail and a keyframe. The audio doesn't always sync up exactly so that the person's name begins after their card is down, so sometimes the first name is cut off. This would have been easy to fix by just delaying the audio a second.&lt;/p&gt;
&lt;p&gt;You can also use non-thumbnail keyframe markers; these become keyframes without showing up in navigation. I stuck a few of those in as well in the intro/outro sections, on the first full frames after the logo gets built. Since the sponsor pays the bills (&lt;a href="http://www.ripcode.com/" target="_blank"&gt;Ripcode&lt;/a&gt; in this case), I always want to make sure that logos remain nice and crisp.&lt;/p&gt;
&lt;p&gt;Setting keyframes has been around in compression projects for ages now; I did a lot of this in Premiere 4.0 for Cinepak encodes in the pre-Media Cleaner days, since Cinepak was prone to keyframe popping issues. Modern codecs like VC-1 do a much better job of finding good natural keyframes, and also to reduce popping issues. The Silverlight version would have looked a lot better than the Flash even if I hadn't set them, but they did get a further boost in quality. But don't think this is something you should be doing in every case; this clip is unusual in having minutes without cuts with a mix of static and moving elements, at an extremely low bitrate.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://on10.net/Link/0ee0f13b-781a-484d-b334-6164dbca60bf/"&gt;&lt;img width="1096" height="849" border="0" alt="Metadata_full" src="http://on10.net/Link/444d412c-4a87-49c5-96de-d96ff69ce554/" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;h1&gt;Encoding Settings&lt;/h1&gt;
&lt;p&gt;Now, what encoding settings do we want to use?&lt;/p&gt;
&lt;h2&gt;Video&lt;/h2&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;strong&gt;Frame Rate: Source&lt;/strong&gt;. We want to capture all the motion in the source perfectly (29.97 frames per second in this case). &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Keyframe Interval: 15 seconds&lt;/strong&gt;. The longest gap between markers in the source is a hair left than 15 seconds, so this will prevent keyframe popping between cards. &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Profile: VC-1 Advanced Profile&lt;/strong&gt;. So we can use DQuant, as discussed below. &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Mode: VBR Peak Constrained&lt;/strong&gt;. This is a progressive download project, so VBR Peak Constrained gives us optimum quality. &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Bitrate (average): 488 Kbps.&lt;/strong&gt; Matching the original FLV's actual bitrate (400 Kbps was requested, but VP6 overshot by over 20%). &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Peak bitrate: 896 Kbps&lt;/strong&gt;. So video + audio + overhead (9 Kbps in this case) max bitrate is a consumer broadband friendly 1000 Kbps total. &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Peak Buffer Size: 15 seconds&lt;/strong&gt;. So the buffer duration can contain an entire Group of Pictures (a keyframe and frames that reference it). &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Width and Height: 640x480&lt;/strong&gt;. Same as source. The original project had both 320x240 and 640x480, but they used the same data rate, so I'm doing just the 640x480 and Silverlight embed can be set to the desired size. &lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Audio&lt;/h2&gt;
&lt;h2&gt;&lt;/h2&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;strong&gt;Codec: WMA&lt;/strong&gt;. We're targeting Silverlight 1.0 compatibility, so WMA Pro isn't an option &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Mode: VBR&lt;/strong&gt;. Always better quality for progressive download. &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Bitrate: 48 Kbps&lt;/strong&gt;. Matching the data rate of the FLV source. Also this is minimum bitrate for WMA VBR. I always try to use at least 48 Kbps for WMA progressive for that reason; it's a massive quality jump from 32 Kbps CBR for typical content. &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Sample Rate: 44.1 KHz&lt;/strong&gt;. Same as source. Also, 44.1 is the native audio rendering mode for Silverlight, and so offers the same quality and better performance versus 48 KHz. &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Bits per Sample :16&lt;/strong&gt;. The only option for WMA &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Channels: Stereo&lt;/strong&gt;. VBR audio requires stereo. I'd use mono if I needed to do 32 Kbps, since there isn't stereo separation important to the experience here. &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Audio peak bitrate: 96 Kbps&lt;/strong&gt;. Again, so total peak comes out as 1000 Kbps. The audio isn't that difficult or variable, so higher likely wouldn't sound any different. &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Audio peak buffer size: 1.5 Kbps&lt;/strong&gt;. The default is almost always fine. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="http://on10.net/Link/e6a66e50-f6dc-480c-affd-e1c7cd898821/"&gt;&lt;img width="382" height="673" border="0" alt="Video_Audio" src="http://on10.net/Link/95f59a6d-fd4d-419e-9835-43d0c3abee05/" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;h2&gt;&lt;/h2&gt;
&lt;h2&gt;Advanced Codec Settings&lt;/h2&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;strong&gt;Video Complexity: Best (5).&lt;/strong&gt; It's a short clip at a reasonable frame size. Complexity 3 probably would have been just as good, but the encode only takes about 12 minutes at 5, so I didn't bother doing anything less than the max (I love my new 8-core workstation!). &lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Perceptual Optimizations&lt;/h3&gt;
&lt;ul&gt;
    &lt;h3&gt;&lt;/h3&gt;
    &lt;li&gt;&lt;strong&gt;Adaptive Dead Zone: Conservative&lt;/strong&gt;. The normal default. It softens out edges that might ring or get too blocky, but not by too much. I tried both Off and Aggressive, and Conservative definitely looked the best, as usual. &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;DQuant: I-Frames Only&lt;/strong&gt;. There aren't many I-frames (mainly the few dozen we set manually, and perhaps a few more natural ones), but they contain the important visual data of the faces on the cards, so we want them to be as high quality as possible. DQuant spends too many bits on smooth parts of the image to use on every frame, but upping the bitrates on a few dozen I-frames won't hurt quality much, and improves the quality of the static parts of the card we wind up staring at for those many seconds. &lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Filters&lt;/h3&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;strong&gt;In-Loop: On&lt;/strong&gt;. Always on unless using Simple Profile; it helps reduce artifacts and improve quality, particularly at these aggressive bitrates &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Overlap: On&lt;/strong&gt;. Further hides artifacts, which are a challenge with motion graphics at such a low bitrate &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Denoise: Off&lt;/strong&gt;. The source doesn't have a hint of noise. If there were a lot of textures, Denoise can help to soften them some for easier encoding, but there's not much texture either. &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Noise Edge Removal: Off&lt;/strong&gt;. This is really only useful for noisy edges of analog captures, and even then we're better off cropping. It obviously doesn't apply here. &lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Group of Pictures&lt;/h3&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;strong&gt;B-Frame Number: 2&lt;/strong&gt;. Normally we use 1 for film and video sources, but for this kind of motion graphics, 2 is more efficient. This gives us an IBBP pattern, so each B-frame is adjacent to a P-frame. 3 B-frame is less efficient in this case, probably since with the IBBBP pattern the middle B-frame is two frames away from a reference frame (only I and P frames can be reference frames), and the P-frames are too far apart and so require more bits to store the change over four frames instead of three since the previous I or P frame. Using 2 also gives us better random access than 1, since worse-case random access time is based on the maximum number of P-frames between I-frames. With 15 seconds between keyframes at 30 fps, that gives us 450 frames per GOP maximum. With 2 B-frames, that'll gives us 149 P-frames per GOP, the same (and thus the same random access) as if we had a 5 second GOP without P-frames (the old Windows Media Encoder default). &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Scene Change Detection: On&lt;/strong&gt;. This will give us natural keyframes where need them. The codec seems to do a good job of putting them in the right place. I've never changed this in EE. &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Adaptive GOP: On&lt;/strong&gt;. Always have this on. &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Closed GOP: Off&lt;/strong&gt;. This is required to be on for CBR encodes in EE, but slightly reduces quality with VBR encoding. In particular, it can increase keyframe popping, since an Open GOP pattern starts with B-frames before the first keyframe/I-frame, you get BBIBBPBBP..., with the B-frames able to reference the last P-frame of the previous GOP. This helps smooth over changes between GOPs, since you have the leading B-frame(s) to spread the change over. &lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Motion Estimation&lt;/h3&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;strong&gt;Chroma Search: Full True Chroma&lt;/strong&gt;. Motion Graphics is a canonical time we want chroma search. The encode is so fast, there's no reason to not go for the full meal deal and do Full True Chroma. &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Match Method: SAD&lt;/strong&gt;. For this kind of content with very simple, flat areas, the Sum of Absolute Differences Motion Match is actually both higher quality and faster than either Hadamard or my normal video/film default of Adaptive. &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Search Range: Adaptive&lt;/strong&gt;. The smallest range works for most of the frames, but there's some very fast motion when the cards zoom in which need the bigger range. Adaptive it is. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="http://on10.net/Link/6859ea6f-ddd7-4073-a3a6-5d4ac1088b74/"&gt;&lt;img width="380" height="505" border="0" alt="Codec" src="http://on10.net/Link/dea33d36-2abc-4bcf-9656-3cfb997a731f/" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;h1&gt;Output&lt;/h1&gt;
&lt;p&gt;The Output pane has some of my favorite usability features of Expression Encoder, letting us apply rich templates and automatic publishing.&lt;/p&gt;
&lt;p&gt;First, the Template. I picked the "Clean" template, which has a nice subtle overlay control, and a popup navigation via the thumbnails we made above when you mouse over the top of window. It also supports going full screen with a double-click. One thing I like about Clean is that the video fills the frame exactly, without having to account for the control bar or other elements. So I can embed at exactly 640x480 for a 640x480 clip.&lt;/p&gt;
&lt;p&gt;The publish mode (I've got the optional Silverlight Streaming publishing plugin installed) lets me automatically or manually upload the final project to our &lt;a href="http://streaming.live.com" target="_blank"&gt;Silverlight Streaming&lt;/a&gt; service. This is a great way to test or deliver Silverlight projects. You can &lt;a href="http://streaming.live.com/account/create.aspx" target="_blank"&gt;sign up for a free account&lt;/a&gt; with 10 GB of storage and 5 TB/month of bandwidth.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://on10.net/Link/5a3339ad-8711-464c-a886-b15fe8d166ab/"&gt;&lt;img width="380" height="787" border="0" alt="Output" src="http://on10.net/Link/79d2bed7-53c9-47d3-8718-0512fe341628/" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;h1&gt;Before/After&lt;/h1&gt;
&lt;p&gt;So, how much did all this help? Here's a couple of the more pronounced before/after shots. All the below are inserted as 100% scale PNG, so there's no scaling or further compression to complicate the comparison. Note that the FLV came out darker for some reason. I'm not sure what the cause of that was; the VC-1 brightness matches the source. Perhaps something to do with the Mac/Windows gamma difference on the platform the FLV was encoded on? This actually makes VC-1's job relatively harder, since the motion graphics are easier to see.&lt;/p&gt;
&lt;p&gt;And you can see the actual clips in action here:&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;h2&gt;Before: &lt;a href="http://www.infotoday.com/streamingmedia/allstars/allstar640x480.html" target="_blank"&gt;FLV VP6 in Flash&lt;/a&gt;&lt;/h2&gt;
&lt;h2&gt;After: &lt;a href="http://silverlight.services.live.com/invoke/31260/AllStars488v48a640x480/iframe.html" target="_blank"&gt;WMV VC-1 in Silverlight&lt;/a&gt;&lt;/h2&gt;
&lt;h2&gt; &lt;/h2&gt;
&lt;h2&gt;Detail improvements&lt;/h2&gt;
&lt;p&gt;I grabbed a frame right after the transition that really shows the detail difference between VP6 and VC-1 here; it's especially striking in the texture of the shirt. The VP6  gets sharper after a keyframe pop, but this is how it starts. VC-1 quality in the card is maintained perfectly throughout. &lt;/p&gt;
&lt;h2&gt;FLV VP6:&lt;/h2&gt;
&lt;p&gt;&lt;a href="http://on10.net/Link/669fd025-53a0-48ee-9b16-1a8b6d6cc30c/"&gt;&lt;img width="644" height="484" border="0" alt="Condon_flv" src="http://on10.net/Link/6e5a49ae-ee60-4aca-a1aa-7e3fec553d34/" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;h2&gt;WMV VC-1:&lt;/h2&gt;
&lt;p&gt;&lt;a href="http://on10.net/Link/7c073313-4667-4fb9-9991-ddc6559bce80/"&gt;&lt;img width="644" height="484" border="0" alt="Condon_wmv" src="http://on10.net/Link/f104fd3d-e93c-4d59-9ca4-243b475b9f11/" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;h2&gt;Deinterlacing improvements&lt;/h2&gt;
&lt;p&gt;In this frame (man, do I look like a stiff!), you can see the effect of my blend deinterlace to hide the fields. Notice the ringing artifacts in the original frame. Encoding fields as progressive is extremely challenging for codecs, since you have high motion 1-pixel high horizontal lines, combing high frequency and high detail. I normally don't like doing a blend, since those double-images are also hard to encode, but it was only for a very short duration in this clip, and the deinterlacing filters I had handy had a lot of trouble preserving the text perfectly.&lt;/p&gt;
&lt;h2&gt;FLV VP6:&lt;/h2&gt;
&lt;p&gt;&lt;a href="http://on10.net/Link/95f4f9ae-833b-45d4-8766-45d8ea286e87/"&gt;&lt;img width="644" height="484" border="0" alt="interlacing_FLV" src="http://on10.net/Link/dbc874a4-38c8-4345-87ac-fa9e7d8baf0d/" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;h2&gt;WMV VC-1:&lt;/h2&gt;
&lt;p&gt;&lt;a href="http://on10.net/Link/84f413c8-6e3d-444e-8e6a-3914ada16f4f/"&gt;&lt;img width="644" height="484" border="0" alt="interlacing_WMV" src="http://on10.net/Link/b7b174e2-064d-44e9-97ea-48960921406e/" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://on10.net/22167/WebViewBug.aspx?EVT=0" height="1" width="1" alt="" /&gt;</description><comments>http://on10.net/blogs/benwagg/Hands-on-with-high-touch-encoding-Streaming-Media-All-Stars-Redo/</comments><link>http://on10.net/blogs/benwagg/Hands-on-with-high-touch-encoding-Streaming-Media-All-Stars-Redo/</link><pubDate>Wed, 30 Apr 2008 06:47:00 GMT</pubDate><guid isPermaLink="true">http://on10.net/blogs/benwagg/Hands-on-with-high-touch-encoding-Streaming-Media-All-Stars-Redo/</guid><evnet:views>1125</evnet:views><evnet:viewtrackingurl>http://on10.net/22167/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>&lt;h1&gt; &lt;/h1&gt;
&lt;p&gt;As &lt;a href="http://www.microsoft.com/expression/products/overview.aspx?key=encoder" target="_blank"&gt;Expression Encoder 2&lt;/a&gt; approaches its immanent release, I've been using it for more and more real-world projects. This recent one was particularly chewy fun, and I thought it would make a good tutorial for a high-touch workflow.&lt;/p&gt;</evnet:previewtext><dc:creator>benwaggoner</dc:creator><slash:comments>3</slash:comments><wfw:commentRss>http://on10.net/blogs/benwagg/Hands-on-with-high-touch-encoding-Streaming-Media-All-Stars-Redo/RSS/</wfw:commentRss><trackback:ping>http://on10.net/22167/Trackback.aspx</trackback:ping><category>All-Stars</category><category>compression</category><category>Expression Encoder</category><category>Metadata</category><category>silverlight</category><category>Silverlight Streaming</category><category>Streaming Media</category><category>VC-1</category></item><item><title>Silverlight Media technologies overview in Expression newsletter</title><description>In &lt;a href="http://www.microsoft.com/expression/news-press/newsletter/2008-04/Default.aspx"&gt;this month's Expression Newsletter&lt;/a&gt;, I've got an article giving an overvew of &lt;a href="http://www.microsoft.com/expression/news-press/newsletter/2008-04/Article02.aspx"&gt;Media Technologies in Silverlight&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
There's not much in there that hasn't been discussed elsewhere, but it's a nice one-stop overview of what's available in 1.0 and coming in 2.&lt;img src="http://on10.net/22136/WebViewBug.aspx?EVT=0" height="1" width="1" alt="" /&gt;</description><comments>http://on10.net/blogs/benwagg/Silverlight-Media-technologies-overview-in-Expression-newsletter/</comments><link>http://on10.net/blogs/benwagg/Silverlight-Media-technologies-overview-in-Expression-newsletter/</link><pubDate>Mon, 28 Apr 2008 16:47:00 GMT</pubDate><guid isPermaLink="true">http://on10.net/blogs/benwagg/Silverlight-Media-technologies-overview-in-Expression-newsletter/</guid><evnet:views>838</evnet:views><evnet:viewtrackingurl>http://on10.net/22136/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>In this month's Expression Newsletter, I've got an article giving an overvew of Media Technologies in Silverlight.

There's not much in there that hasn't been discussed elsewhere, but it's a nice one-stop overview of what's available in 1.0 and coming in 2.</evnet:previewtext><dc:creator>benwaggoner</dc:creator><slash:comments>1</slash:comments><wfw:commentRss>http://on10.net/blogs/benwagg/Silverlight-Media-technologies-overview-in-Expression-newsletter/RSS/</wfw:commentRss><trackback:ping>http://on10.net/22136/Trackback.aspx</trackback:ping><category>compression</category><category>Expression Newsletter</category><category>silverlight</category><category>VC-1</category><category>WMA</category></item><item><title>My NAB Presentations</title><description>&lt;p&gt;As promised, here are the final decks for &lt;a href="http://on10.net/blogs/benwagg/21804/" target="_blank"&gt;my presentations at NAB&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;&lt;a href="http://nabshow.com/2008/conferences/PaperDescription.asp?id=1207600" target="_blank"&gt;&lt;br /&gt;
Encoding for the Next Generation: MPEG-2/H.264/VC-1&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;This session was part of the all-day &lt;a href="http://nabshow.com/2008/conferences/sessiondetail.asp?id=1207603"&gt;Next Generation DVD&lt;/a&gt; track sponsored by the &lt;a href="http://dvda.org/"&gt;DVD Association&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;I talked about the various options for and issues in encoding for high definition, focusing on Blu-ray but also talking about digital downloads. It's apparently become somewhat infamous, with mentions of it over at &lt;a href="http://forum.doom9.org/showthread.php?p=1125911#post1125911" target="_blank"&gt;Doom9&lt;/a&gt; and &lt;a href="http://www.avsforum.com/avs-vb/showthread.php?p=13694695#post13694695" target="_blank"&gt;AVSForum&lt;/a&gt;. Although now that I look, they're both from the same guy... &lt;/p&gt;
&lt;p&gt;Here's the deck: &lt;a href="http://on10.net/Link/699ff89d-af2c-46b1-b855-a16749dd44c7/" target="_blank"&gt;Encoding for the Next Generation.pdf&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;&lt;a href="http://www.nabshow.com/2008/conferences/sessiondetail.asp?id=1207739" target="_blank"&gt;&lt;br /&gt;
In-Depth Microsoft Silverlight&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;This was a three-hour media-focused overview of Silverlight and the Expression tools. It took a look at encoding and hosting video and audio assets for integration, and  incorporating those into a Silverlight Rich Interactive Application. I used a shorter version of the same presentation for the "&lt;a href="http://www.nabshow.com/2008/conferences/sessiondetail.asp?id=1206983" target="_blank"&gt;Successfully Set up your own Streaming Media Solutions in a Worship Environment&lt;/a&gt;" track, so I won't bother to include both. &lt;/p&gt;
&lt;p&gt;Here's the deck: &lt;a href="http://on10.net/Link/181d1068-c5cd-4ddc-86e2-0b92b120f9e5/" target="_blank"&gt;In-Depth Microsoft Silverlight.pdf&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I've been blogging versions of the tutorials. So far I've got:&lt;/p&gt;
&lt;p&gt;Tutorial 1: &lt;a href="http://silverlight.services.live.com/invoke/31260/NABTutorial1/iframe.html" target="_blank"&gt;Default Settings&lt;/a&gt; (no blog post there, as it's just a demo of the pretty-good quality that EEv2 can do without changing ANY settings, automatically adapting to the 480i 16:9 source).&lt;/p&gt;
&lt;p&gt;Tutorial 2: &lt;a href="http://on10.net/blogs/benwagg/21587/" target="_blank"&gt;Movie Trailer at 2 Mbps&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Tutorial 3: &lt;a href="http://on10.net/blogs/benwagg/21750/" target="_blank"&gt;Encoding screen recordings&lt;/a&gt; (less the navigation demo in the online version)&lt;/p&gt;
&lt;p&gt;Now I need to figure out a good .pptx to Silverlight conversion workflow.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
And if you like this stuff, don't forget about my &lt;a href="http://on10.net/blogs/benwagg/21622/"&gt;class at Stanford &lt;/a&gt;in June.&lt;/p&gt;&lt;img src="http://on10.net/22040/WebViewBug.aspx?EVT=0" height="1" width="1" alt="" /&gt;</description><comments>http://on10.net/blogs/benwagg/22040/</comments><link>http://on10.net/blogs/benwagg/22040/</link><pubDate>Tue, 22 Apr 2008 23:46:00 GMT</pubDate><guid isPermaLink="true">http://on10.net/blogs/benwagg/22040/</guid><evnet:views>1129</evnet:views><evnet:viewtrackingurl>http://on10.net/22040/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>As promised, here are the final decks for my presentations at NAB...</evnet:previewtext><dc:creator>benwaggoner</dc:creator><slash:comments>1</slash:comments><wfw:commentRss>http://on10.net/blogs/benwagg/22040/RSS/</wfw:commentRss><trackback:ping>http://on10.net/22040/Trackback.aspx</trackback:ping><category>Blu-Ray</category><category>compression</category><category>demos.</category><category>DVDA</category><category>NAB</category><category>silverlight</category><category>VC-1</category></item><item><title>An exhaused me talks to James Clarke about Expression Encoder 2</title><description>Oops, forgot to post &lt;a href="http://www.clarkezone.net/default.aspx?id=a7c1ad89-260d-489e-9f33-0ab0a8344518"&gt;this video clip &lt;/a&gt;of a VERY exhaused me at Mix talking to Expression Encoder's &lt;a href="http://www.clarkezone.net/default.aspx?id=a7c1ad89-260d-489e-9f33-0ab0a8344518"&gt;James Clarke &lt;/a&gt;about 2.0. The clip itself is actually quarter HD (960x540), so double-click on it to take it full screen.&lt;br /&gt;
&lt;br /&gt;
Could be a good case study for the captioning features in Silverlight...&lt;img src="http://on10.net/21916/WebViewBug.aspx?EVT=0" height="1" width="1" alt="" /&gt;</description><comments>http://on10.net/blogs/benwagg/An-exhaused-me-talks-to-James-Clarke-about-Expression-Encoder-2/</comments><link>http://on10.net/blogs/benwagg/An-exhaused-me-talks-to-James-Clarke-about-Expression-Encoder-2/</link><pubDate>Wed, 09 Apr 2008 21:23:00 GMT</pubDate><guid isPermaLink="true">http://on10.net/blogs/benwagg/An-exhaused-me-talks-to-James-Clarke-about-Expression-Encoder-2/</guid><evnet:views>591</evnet:views><evnet:viewtrackingurl>http://on10.net/21916/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>Oops, forgot to post this video clip of a VERY exhaused me at Mix talking to Expression Encoder's James Clarke about 2.0. The clip itself is actually quarter HD (960x540), so double-click on it to take it full screen.

Could be a good case study for the captioning features in Silverlight...</evnet:previewtext><dc:creator>benwaggoner</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://on10.net/blogs/benwagg/An-exhaused-me-talks-to-James-Clarke-about-Expression-Encoder-2/RSS/</wfw:commentRss><trackback:ping>http://on10.net/21916/Trackback.aspx</trackback:ping><category>compression</category><category>Expression Encoder</category><category>silverlight</category><category>VC-1</category></item><item><title>Ben at NAB</title><description>&lt;p&gt;Hard to believe that NAB is starting at the end of next week!&lt;/p&gt;
&lt;p&gt;Here's my schedule for booth duty and conferences if you'd like to swing by and say hello.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;h1&gt;&lt;b&gt;&lt;a href="http://nabshow.com/2008/conferences/PaperDescription.asp?id=1207600" target="_blank"&gt;Encoding for the Next Generation: MPEG-2/H.264/VC-1&lt;/a&gt;&lt;/b&gt;&lt;/h1&gt;
&lt;h2&gt;Saturday, April 12th 3:30 pm - 4:45 pm&lt;/h2&gt;
&lt;h2&gt;Las Vegas Convention Center N252&lt;/h2&gt;
&lt;p&gt;This session is part of the all-day &lt;a href="http://nabshow.com/2008/conferences/sessiondetail.asp?id=1207603" target="_blank"&gt;Next Generation DVD&lt;/a&gt; track sponsored by the &lt;a href="http://dvda.org/" target="_blank"&gt;DVD Association&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I'll be talking about the various options for and issues in encoding for high definition, focusing on Blu-ray but also talking about digital downloads.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;h1&gt;&lt;b&gt;&lt;a href="http://www.nabshow.com/2008/conferences/sessiondetail.asp?id=1206983" target="_blank"&gt;Successfully Set Up Your Own Streaming Media Solutions in a Worship Environment&lt;/a&gt;&lt;/b&gt;&lt;/h1&gt;
&lt;h2&gt;Sunday, April 13th 9:00 am - 5:00 pm&lt;/h2&gt;
&lt;h2&gt;Las Vegas Convention Center N115&lt;/h2&gt;
&lt;p&gt;This is going to be a fun event. We're going to be demonstrating the end-to-end experience of live broadcasting for both live events and on-demand HD, emphasizing the hands-on and best practices aspects.&lt;/p&gt;
&lt;h1&gt; &lt;/h1&gt;
&lt;h1&gt;Microsoft Booth&lt;/h1&gt;
&lt;h2&gt;&lt;/h2&gt;
&lt;h2&gt;Monday, April 14th 1:30 pm - 6:00 pm&lt;/h2&gt;
&lt;h2&gt;Wednesday, April 16th, 9:00 am - 1:30 pm&lt;/h2&gt;
&lt;p&gt;I've got two shifts at the booth, and I always happy for more company. I'll be manning the Silverlight pod. Come on down to get some questions answered or see some demos.&lt;/p&gt;
&lt;h1&gt; &lt;/h1&gt;
&lt;h1&gt;&lt;a href="http://www.nabshow.com/2008/conferences/sessiondetail.asp?id=1207739" target="_blank"&gt;In-Depth Microsoft Silverlight&lt;/a&gt;&lt;/h1&gt;
&lt;h2&gt;Tuesday, April 15th, 10:00 am - 1:00 pm&lt;/h2&gt;
&lt;h2&gt;Las Vegas Convention Center N256&lt;/h2&gt;
&lt;p&gt;This is a three-hour media-focused overview of Silverlight and the Expression tools. We'll take a look at encoding and hosting video and audio assets for integration, and how to incorporate those into a Silverlight Rich Interactive Application.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;h1&gt;Annual Compressonist's Party&lt;/h1&gt;
&lt;h2&gt;Tuesday, April 15th, evening&lt;/h2&gt;
&lt;h2&gt;The Wynn&lt;/h2&gt;
&lt;p&gt;Yep, it's time again for the my annual compresionist's party at NAB. And now that I work for Microsoft, the snacks are better than ever! We're not exactly sure what time and which room yet; I'll share details when we get closer. But we try to start early enough and run late enough that we're a good stop on the way to or from dinner. Drop on in and let's talk about the news of the compression world from the show.&lt;/p&gt;
&lt;p&gt;RSVP is not required, but if you think you're coming, drop me an email so I can track a rough headcount. My email is first name period last name at Microsoft.com&lt;/p&gt;&lt;img src="http://on10.net/21804/WebViewBug.aspx?EVT=0" height="1" width="1" alt="" /&gt;</description><comments>http://on10.net/blogs/benwagg/21804/</comments><link>http://on10.net/blogs/benwagg/21804/</link><pubDate>Tue, 01 Apr 2008 00:20:00 GMT</pubDate><guid isPermaLink="true">http://on10.net/blogs/benwagg/21804/</guid><evnet:views>976</evnet:views><evnet:viewtrackingurl>http://on10.net/21804/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>Hard to believe that NAB is starting at the end of next week! Here's my schedule for booth duty and conferences if you'd like to swing by and say hello...</evnet:previewtext><dc:creator>benwaggoner</dc:creator><slash:comments>4</slash:comments><wfw:commentRss>http://on10.net/blogs/benwagg/21804/RSS/</wfw:commentRss><trackback:ping>http://on10.net/21804/Trackback.aspx</trackback:ping><category>classes</category><category>compression</category><category>NAB</category><category>party</category><category>silverlight</category><category>Training</category><category>VC-1</category></item><item><title>Tutorial: Encoding screen recordings for Silverlight in VC-1 with Expression Encoder 2</title><description>&lt;p&gt;One of the best parts of my job at Microsoft is when I can put aside the &lt;a href="http://on10.net/blogs/benwagg/21430/" target="_blank"&gt;video strategy stuff&lt;/a&gt; and do some real-world hands-on video compression encoding for a project. My friends on the IIS team asked me to encode their new tutorials for Silverlight playback, and I thought it was a great project to illustrate the &lt;a href="http://on10.net/blogs/benwagg/VC-1-for-screen-recordings-New-Expression-Encoder-encodes-up/" target="_blank"&gt;screen encoding tips&lt;/a&gt; I talked about a few weeks ago.&lt;/p&gt;
&lt;p&gt;As mentioned a few weeks back, Silverlight 1.0 and 2 only support the Windows Media Video 7, 8, and 9 (aka VC-1) for video codecs. We don't support the older Windows Media Video 7 and 9 Screen codecs. This is a fine thing from my perspective; it makes the install size of Silverlight smaller, and we can get better results with our current VC-1 implementation than we can out of the screen codecs. This is because a modern OS like Vista's &lt;a href="http://www.microsoft.com/windows/products/windowsvista/features/experiences/aero.mspx" target="_blank"&gt;Aero Glass&lt;/a&gt; or Mac OS X 10.5 using a lot of gradients and transparencies that older screen codecs don't handle efficiently, but matches much more closely the kind of video image that VC-1 is designed for.&lt;/p&gt;
&lt;p&gt;So, using the &lt;a href="http://www.microsoft.com/expression/products/download.aspx?key=encoder2beta" target="_blank"&gt;beta of Expression Encoder 2&lt;/a&gt;, which incorporates the new &lt;a href="http://on10.net/blogs/benwagg/VC-1-for-screen-recordings-New-Expression-Encoder-encodes-up/" target="_blank"&gt;VC-1 Encoder SDK&lt;/a&gt;, let me show a real world project delivering in VC-1 for screen captures.&lt;/p&gt;
&lt;h1&gt;Goal&lt;/h1&gt;
&lt;p&gt;The job was to provide a series of source clips demonstrating common tasks in the new &lt;a href="http://technet2.microsoft.com/windowsserver2008/en/library/0d35e92b-ddb7-4423-b1e5-df550e25713b1033.mspx?mfr=true" target="_blank"&gt;IIS 7&lt;/a&gt;. Previous screen recordings the team had done used the Windows Media Video 9 Screen and Windows Media Audio 9 Voice codecs with a total bitrate of 500 Kbps for 1024x768, 5 frames per second. There were apparent artifacts in both video and audio, although the content itself was comprehensible. I wanted to reduce the total bitrate to 400 Kbps, while tripling the frame rate to 15 fps and largely eliminating apparent video or audio issues.&lt;/p&gt;
&lt;p&gt;Additionally, I also wanted to make files with specs to stream off &lt;a href="http://streaming.live.com" target="_blank"&gt;Silverlight Streaming&lt;/a&gt;, which recommends a max peak bitrate of 1400 Kbps. So the total of my peak of video and audio needed to be no more than 1400.&lt;/p&gt;
&lt;h1&gt;Source&lt;/h1&gt;
&lt;p&gt;The source had been recorded in &lt;a href="http://www.techsmith.com/camtasia.asp" target="_blank"&gt;Techsmith's Camtasia Studio&lt;/a&gt; product, which captures screen activity live to an .AVI file using their lossless video codec. Camtasia does a great job of this kind of screen recording; something like the HDMI to HD SDI I used for &lt;a href="http://on10.net/blogs/benwagg/My-Expression-Encoder-Training/" target="_blank"&gt;my previous Expression Encoder 1.0 training&lt;/a&gt; would have been serious overkill for this low-motion lower resolution content, and forced an extra color conversion step.&lt;/p&gt;
&lt;p&gt;The tech spec for all the files was:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Video: 1024x768 15 fps &lt;/li&gt;
    &lt;li&gt;Audio 44.1 KHz 16-bit stereo&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;&lt;/h2&gt;
&lt;h1&gt;Encoding Settings&lt;/h1&gt;
&lt;p&gt;&lt;a href="http://on10.net/Link/b1518363-dabf-4330-acf6-6bfc8ee24137/"&gt;&lt;img width="311" height="691" border="0" alt="IIS_encode_settings" src="http://on10.net/Link/7fb06cc0-9677-4be5-ab64-c804352f75e2/" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;h2&gt;Video Settings&lt;/h2&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;strong&gt;Frame Rate: Source&lt;/strong&gt;. VC-1 is extremely efficient, so we can increase the frame rate from the typical 5 to the full 15 that were originally captured &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Key frame interval: 20&lt;/strong&gt;. This is an unusually high setting, but critical to keeping our bitrate down. Since screen recordings often have long sequences without any dramatic changes in the video, it's pretty common for the B and P frames to be tiny, and I-frames to make up the majority of the total bandwidth. So if you wind up with too frequent I-frames, they wind up spending a ton of bits repeating the same static parts of the frame leaving the codec unable to spend those bits on other parts of the image. The normal drawback of long gaps between I-frames is slow random access. However, random access is really a matter of how many P-frames there are between I-frames (as B-frames can be skipped during decoding since no frame references them). Thus, increasing the number of B-frames between P-frames improves random access. Since we'll be using 4 B-frames as you'll see below, only 1 out of 5 frames between I-frames is a P-frame, giving us a max of 60 P-frames between I-frames (15 fps, of which 3 can be P-frames, over 20 seconds between I-frames). So, we'll have about the same random access performance as if we'd encoded at 30 fps with the standard 1 B-frame and a max 4-second keyframe interval (30 fps, of which 15 can be P-frames, over 4 seconds between I-frames) &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Profile: VC-1 Advanced Profile&lt;/strong&gt;, so we can use the I-frame DQuant feature below. For Silverlight 1 (which is progressive-scan only) the lack of I-frame DQuant is the only disadvantage to Main Profile compared to Advanced Profile. &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Mode: VBR peak constrained&lt;/strong&gt;, so we can specify both an average bitrate (to control file size) and a peak (to make sure it fits within the Silverlight Streaming 1400 Kbps maximum). VBR peak constrained is always a 2-pass encoding process, which we also want in order for the codec to be able to do optimal bitrate distribution over this file with highly variable complexity &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Bitrate (Average): 350 Kbps&lt;/strong&gt;, leaving us with 50 Kbps to use on audio. &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Peak Bitrate: 1300 Kbps&lt;/strong&gt;, leaving another 100 for audio peak. &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Buffer Size: 5&lt;/strong&gt; I stuck with the default, which is fine for VBR at this bitrate. Bigger would give the codec a little more flexibility to move bits around, but could make playback of the web a little more touchy on slower speed connections. &lt;/li&gt;
    &lt;li&gt;Width and Height: 1024x768, matching the source.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Audio Settings&lt;/h2&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;strong&gt;Codec: WMA&lt;/strong&gt;. While Silverlight 2 adds support for Windows Media Audio 10 Professional, it isn't supported in Silverlight 1.0, which we wanted to use for this demo. We'll stick with good old WMA for maximum backwards compatibility. &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Mode: VBR&lt;/strong&gt;. Again, so the codec will distribute bits optimally throughout the piece, savings bits from pauses and spending them on harder bits of content &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Bitrate: 48 Kbps&lt;/strong&gt;. This is the lowest supported bitrate for WMA in VBR mode. I could go lower with CBR, but there's often some high-frequency artifacts in WMA CBR @ 32 Kbps and below for voice I find annoying, so I'd rather have overkill with VBR @ 48 Kbps. &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Sample Rate: 44.1 KHz&lt;/strong&gt;. Silverlight's internal sound engine runs at 44.1, so I recommend encoding audio to that to avoid an unneeded sample rate conversion. In this case, it also matches the source. &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Bits per sample: 16&lt;/strong&gt;, the only option with WMA. I'd use it anyway, as it matches the source. &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Channels: Stereo&lt;/strong&gt;, the only option with VBR WMA. WMA will intelligently encode the audio only once when it's identical in both channels, so it's safe to encode a mainly mono mix like this as stereo without a risk of inefficiency. The source in this case is nominally stereo, but is a mono mix. &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Audio Peak Bitrate: 96&lt;/strong&gt;, to add to the 1300 for video and to keep us under the 1400 Kbps max for Silverlight Streaming. That's plenty for voice content. &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Audio Peak Buffer Size: 1.5&lt;/strong&gt;. This default is nearly always fine.&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;Advanced Codec Settings&lt;/h1&gt;
&lt;p&gt; &lt;a href="http://on10.net/Link/eca585c8-cc8e-417e-af5b-49035139224a/"&gt;&lt;img width="314" height="508" border="0" alt="IIS_advanced_settings" src="http://on10.net/Link/62c7c8ba-7c91-4c0d-9523-29b0a4a31ba2/" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;
    &lt;p&gt; &lt;strong&gt;Video Complexity: Normal (3).&lt;/strong&gt; The default is just fine for simple motion like in screen recordings. Higher values are mainly useful with lots of differing motion in fine details, like with film grain or particle effects. I probably could have gotten away with lower without much drop in quality for this content.&lt;/p&gt;
    &lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Perceptual Options&lt;/h2&gt;
&lt;ul&gt;
    &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Adaptive Deadzone: Off&lt;/strong&gt;. This is good for preserving some coarse texture like film grain, but we don't have any textures we want to preserve here - it's pretty much flat areas, gradients, and fine details like font edges.&lt;/p&gt;
    &lt;/li&gt;
    &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;DQuant: I-Frames Only&lt;/strong&gt;. DQuant is short for Differential Quantization, where the codec is able to vary the degree of compression (quantization) per macroblock (16x16 block of pixels) in the frame. The DQuant implementation in the VC-1 Encoder SDK used in Expression Encoder 2 looks for areas of smoother texture and then compresses them less. This implementation is much more aggressive than the one that shipped with Format SDK 11, and isn't appropriate for most low-bitrate encoding. But for screen captures, using it's just for I-frames (which are only 1 our of 60, as we determined above) can improve the quality of the I-frames without taking too many bits away from the other frames. And by establishing a very clean reference frame, the following frames based on the I-frame, or based on a frame based on the I-frame, start with a near-perfect copy of the screen image to start from. This reduces the common effect in older codecs where the image can be soft or blocky after a scene change, with the quality improving over the next few frames even though the original image didn't have that change.&lt;/p&gt;
    &lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;&lt;/h2&gt;
&lt;h2&gt;Filters&lt;/h2&gt;
&lt;ul&gt;
    &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;In-Loop: On&lt;/strong&gt;. The In-Loop deblocking filter softens areas where a compression artifact would otherwise be visible, and then predicts future frames on that improved version. This always helps quality at Silverlight bitrates, and I recommend it always be on as long as a low-powered device like a cellphone isn't being targeted; it does slightly increase CPU requirements for playback.&lt;/p&gt;
    &lt;/li&gt;
    &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Overlap: On&lt;/strong&gt;. The Overlap filter further softens potential artifacts. Since Silverlight doesn't have the postprocessing modes of Windows Media Player, the overlap filter is good to have on at typical Silverlight bitates. It's more of a brute,force filter than the In-Loop Filter, and can soften the image a bit at high bitrates.&lt;/p&gt;
    &lt;/li&gt;
    &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Denoise: Off&lt;/strong&gt;. Source isn't noisy.&lt;/p&gt;
    &lt;/li&gt;
    &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Noise Edge Removal: Off&lt;/strong&gt;. No noisy edges&lt;/p&gt;
    &lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Group of Pictures&lt;/h2&gt;
&lt;ul&gt;
    &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;B-Frame Number: 4.&lt;/strong&gt; We get two things out of using this instead of the normal 1 with screen recordings. First, it helps improve compression efficiency, given the very simple motion in screen recordings. A B-frame can be based on the previous and/or next I- and P-frame, but not another B-frame. With content like film or video with some random noise in them, too many B-frames hurt quality since a B-frame can be so temporally separate from its reference frames. But a Camtasia screen-record is pixel-perfect, without any random noise. So we actually get an improvement in efficiency. Also, the greater number of B-frames lets us push up the interval between keyframes without hurting latency (as mentioned above), further improving efficiency. Going from a keyframe every 5 and 1 B-frame to a keyframe ever 20 and 4 B-frame, I was able to get better quality at 350 Kbps than I was getting at 600 Kbps before.&lt;/p&gt;
    &lt;/li&gt;
    &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Scene Change Detection:&lt;/strong&gt; Always have this on. It will automatically insert an I-frame at cuts, improving compression efficiency and random access.&lt;/p&gt;
    &lt;/li&gt;
    &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Adaptive GOP: On:&lt;/strong&gt; Always have this on. It tells the codec not to insert I-frames at regular intervals as defined by "Keyframe every" but just treat that as a maximum distance between GOPs. This helps efficiency quite a bit.&lt;/p&gt;
    &lt;/li&gt;
    &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Closed GOP:&lt;/strong&gt; &lt;strong&gt;No.&lt;/strong&gt; Always have this off. Closed GOP makes editing easier (which we're not going to do) but hurts efficiency slightly.&lt;/p&gt;
    &lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Motion Estimation&lt;/h2&gt;
&lt;ul&gt;
    &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Chroma Search: Full True Chroma.&lt;/strong&gt; Not normally needed with screen captures, but helpful in this case as the recordings were done with ClearType on. See the previous &lt;a href="http://on10.net/blogs/benwagg/21738/" target="_blank"&gt;blog post about ClearType&lt;/a&gt; why that's a potential problem.&lt;/p&gt;
    &lt;/li&gt;
    &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Motion Method: SAD.&lt;/strong&gt; The Sum of Absolute Differences is quite a bit faster than the alternate Hadamard or Adaptive modes, and perfectly good for screen recordings without any noise.&lt;/p&gt;
    &lt;/li&gt;
    &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Search Range: Adaptive&lt;/strong&gt;. Sometimes those dialog boxes can go pretty fast. And with 4 B-frames, each P-frame has to go back a 1/3rd of a second to the previous P or I-frame for reference. An adaptive motion search range makes sure it'll find the match if it's there.&lt;/p&gt;
    &lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;The Results&lt;/h1&gt;
&lt;p&gt;And here's the final files, embedded in Silverlight up at &lt;a href="http://learn.iis.net" target="_blank"&gt;IIS.net&lt;/a&gt;. Remember to double-click on the video windwo to go full screen and enjoy their full glory. Beyond being a compression demo, they're pretty darn useful demos of common IIS7 activities. There will be a few more files uploaded in the next few weeks, and I'll update this post to include those. &lt;/p&gt;
&lt;p&gt;&lt;a href="http://learn.iis.net/page.aspx/365/installing-necessary-iis7-components-on-windows-vista/" target="_blank"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;&lt;a href="http://learn.iis.net/page.aspx/365/installing-necessary-iis7-components-on-windows-vista/" target="_blank"&gt;Installing Necessary IIS7 Components on Windows Vista&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Install only the components you need for your Web applications by leveraging IIS7’s modular architecture.  This tutorial will cover installing the modules necessary for serving ASP and ASP.NET pages from IIS7 in Windows Vista. &lt;/p&gt;
&lt;h2&gt;&lt;a href="http://learn.iis.net/page.aspx/372/serving-new-content/" target="_blank"&gt;Serving New Content&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;More flexible deployment options let you decide exactly how you want your Web content served by IIS7.  This tutorial will cover creating your first Web site, Web application and Virtual Directory through the new IIS Manager graphical-user-interface.&lt;/p&gt;
&lt;h2&gt;&lt;a href="http://learn.iis.net/page.aspx/373/editing-configuration-files/" target="_blank"&gt;Editing Configuration Files&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Strongly typed schema written in clear-text XML makes IIS7 configuration files simple to read and edit.  This tutorial covers reading and setting configuration in ApplicationHost.config at the server level and Web.config files at the site and application level. &lt;/p&gt;
&lt;h2&gt;&lt;a href="http://learn.iis.net/page.aspx/374/troubleshooting-unexpected-issues/" target="_blank"&gt;Troubleshooting Unexpected Issues&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Prescriptive detailed errors, automatic failure tracing and more exposed runtime information make IIS7 the simplest and quickest Web server to troubleshoot.  This tutorial will cover debugging site and application failures with the advanced diagnostic features in IIS7. &lt;/p&gt;
&lt;h2&gt;&lt;a href="http://learn.iis.net/page.aspx/375/setting-up-fastcgi-for-php/" target="_blank"&gt;Setting Up FastCGI for PHP&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Improved performance and greater reliability for PHP applications is ensured by the new FastCGI component for IIS7 and previous versions.  This tutorial will cover installing PHP 5.2.1 and the new FastCGI component to IIS7 in Windows Vista. &lt;/p&gt;
&lt;h2&gt;&lt;a href="http://learn.iis.net/page.aspx/376/delegating-configuration-to-webconfig-files/" target="_blank"&gt;Delegating Configuration to web.config Files&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Distributed, file-based configuration is a powerful new feature of IIS7 that enables delegated management of Web application settings at a very granular level.  This tutorial will cover the structure of IIS and ASP.NET configuration, unlocking IIS configuration for delegation, creating and setting configuration in Web.config files and using location tags. &lt;/p&gt;
&lt;h2&gt;&lt;a href="http://learn.iis.net/page.aspx/377/using-aspnet-forms-authentication/" target="_blank"&gt;Using ASP.NET Forms Authentication&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;HTTP request processing is more integrated in IIS7 allowing ASP.NET features like Forms Authentication to process requests for non-ASP.NET content like ASP, PHP or media files.  This tutorial will cover configuring authentication settings in Web.config, adding users and roles to membership, and configuring authentication for all content types in Integrated Pipeline Mode. &lt;/p&gt;
&lt;h2&gt;&lt;a href="http://learn.iis.net/page.aspx/378/configuring-ssl-in-iis-manager/" target="_blank"&gt;Configuring SSL in IIS Manager&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Enabling powerful SSL security to protect your Web applications is simpler to setup with IIS Manager and easier to deploy with self-signed certificates in IIS7.  This tutorial will cover adding self signed certificates, creating certificates with a Certificate Authority and setting up HTTPS bindings. &lt;/p&gt;
&lt;h2&gt;&lt;a href="http://learn.iis.net/page.aspx/379/extending-web-server-functionality-in-net/" target="_blank"&gt;Extending Web server Functionality in .NET&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Building Web server add-ons and extensions is simpler and less time-consuming because IIS7 supports .NET extensibility through the IHTTPModule and IHTTPHandler interfaces that ASP.NET developers already know and use today.  This tutorial will cover building a .NET module starting with the Managed Module Kit, implementing the IHTTPModule interface, attaching EventHandlers to pipeline events and configuring IIS7 to use the module in the request pipeline. &lt;/p&gt;
&lt;h2&gt;&lt;a href="http://learn.iis.net/page.aspx/380/improving-performance-with-native-output-caching/" target="_blank"&gt;Improving Performance with Native Output Caching&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Dramatically reduce Web application response time by leveraging native HttpCacheModule in IIS7 that stores all application outputs in Kernel mode cache.  This tutorial will cover enabling and configuring user-mode and kernel-mode caching by creating new output caching rules in config and through the IIS Manager GUI.&lt;/p&gt;&lt;img src="http://on10.net/21750/WebViewBug.aspx?EVT=0" height="1" width="1" alt="" /&gt;</description><comments>http://on10.net/blogs/benwagg/21750/</comments><link>http://on10.net/blogs/benwagg/21750/</link><pubDate>Thu, 27 Mar 2008 23:55:00 GMT</pubDate><guid isPermaLink="true">http://on10.net/blogs/benwagg/21750/</guid><evnet:views>2081</evnet:views><evnet:viewtrackingurl>http://on10.net/21750/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>One of the best parts of my job at Microsoft is when I can put aside the video strategy stuff and do some real-world hands-on video compression encoding for a project. My friends on the IIS team asked me to encode their new tutorials for Silverlight playback, and I thought it was a great project to illustrate the screen encoding tips I talked about a few weeks ago.…</evnet:previewtext><dc:creator>benwaggoner</dc:creator><slash:comments>5</slash:comments><wfw:commentRss>http://on10.net/blogs/benwagg/21750/RSS/</wfw:commentRss><trackback:ping>http://on10.net/21750/Trackback.aspx</trackback:ping><category>compression</category><category>Expression Encoder</category><category>IIS7</category><category>silverlight</category><category>tutorial</category><category>VC-1</category><category>VC-1 Encoder SDK</category></item><item><title>Tip: ClearType off for screen recordings</title><description>&lt;p&gt;I've been playing around a bunch with screen recordings lately (as you'll see in my next blog post), and I've noticed a pretty common problem: people leaving &lt;a href="http://www.microsoft.com/typography/WhatIsClearType.mspx" target="_blank"&gt;ClearType&lt;/a&gt; on while recording. ClearType is cool stuff, adding improved anti-aliasing on LCD displays. But the way it works is by taking advantage of the little sub-pixel strips of Red, Green, and Blue each LCD pixel is made of. This improves detail and readability. But, as you can see below, when you zoom in you get color fringing on that small text.&lt;/p&gt;
&lt;p&gt;Those little color fringes make the video somewhat harder to encode, since they change with the position of the text. And they also look wrong when then video is played back on a non-LCD display, and really wrong on an oddball LCD display which has a different pattern of the colored strips.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;h1&gt;ClearType Font Smoothing @ 100% Zoom&lt;/h1&gt;
&lt;p&gt;&lt;a href="http://on10.net/Link/636dcff0-f640-42fd-91de-9c1b189f6463/"&gt;&lt;img width="425" height="183" border="0" alt="ClearType_100" src="http://on10.net/Link/4406a32f-cade-407b-a620-396ed16b0907/" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;h3&gt; &lt;/h3&gt;
&lt;h1&gt;ClearType Font Smoothing @ 800% Zoom&lt;/h1&gt;
&lt;p&gt;&lt;a href="http://on10.net/Link/10b7ffc3-f80b-4b80-93b9-a1bb8ce0fcf4/"&gt;&lt;img width="964" height="172" border="0" alt="ClearType_800" src="http://on10.net/Link/d9a80e59-3149-41e4-a8ca-7c84e09c5adf/" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;h3&gt; &lt;/h3&gt;
&lt;h1&gt;Standard Font Smoothing @ 100% Zoom:&lt;/h1&gt;
&lt;p&gt;&lt;a href="http://on10.net/Link/3df57e9b-d506-48f4-871b-2f9d31755b67/"&gt;&lt;img width="425" height="183" border="0" alt="Standard_100" src="http://on10.net/Link/eed5190a-a015-41df-9bb3-8d23082bcb50/" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;h3&gt; &lt;/h3&gt;
&lt;h1&gt;Standard Font Smoothing @ 800% Zoom:&lt;/h1&gt;
&lt;p&gt;&lt;a href="http://on10.net/Link/b0ea890e-7935-40fc-ae53-727243dc865d/"&gt;&lt;img width="964" height="172" border="0" alt="Standard_800" src="http://on10.net/Link/b619fac8-878c-4a80-9c61-3b2999cf1f51/" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;When doing any screen captures, be it Camtasia or via a HDMI to SDI bridge like I used for my &lt;a href="http://on10.net/blogs/benwagg/My-Expression-Encoder-Training/" target="_blank"&gt;Expression Encoder 1.0 training&lt;/a&gt;, make sure you have ClearType off. In Vista, you do that via the Appearance Settings control panel's Effects button.&lt;/p&gt;
&lt;p&gt;If you wind up with source  video that has been recorded with ClearType on, turning on Chroma Search can help quality some by enabling the code to pick up on all hue/saturation changes on text as it moves around. I recommend using the "Full True Chroma" mode if using a tool based on the &lt;a href="http://on10.net/blogs/benwagg/20613/" target="_blank"&gt;VC-1 Encoder SDK&lt;/a&gt;, like &lt;a href="http://www.microsoft.com/expression/products/download.aspx?key=encoder2beta" target="_blank"&gt;Expression Encoder 2.0&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://on10.net/21738/WebViewBug.aspx?EVT=0" height="1" width="1" alt="" /&gt;</description><comments>http://on10.net/blogs/benwagg/21738/</comments><link>http://on10.net/blogs/benwagg/21738/</link><pubDate>Thu, 27 Mar 2008 05:37:00 GMT</pubDate><guid isPermaLink="true">http://on10.net/blogs/benwagg/21738/</guid><evnet:views>590</evnet:views><evnet:viewtrackingurl>http://on10.net/21738/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>I've been playing around a bunch with screen recordings lately (as you'll see in my next blog post), and I've noticed a pretty common problem: people leaving ClearType on while recording. ClearType is…</evnet:previewtext><dc:creator>benwaggoner</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://on10.net/blogs/benwagg/21738/RSS/</wfw:commentRss><trackback:ping>http://on10.net/21738/Trackback.aspx</trackback:ping><category>Camtasia</category><category>ClearType</category><category>compression</category><category>Expression Encoder</category><category>VC-1</category><category>WMV</category></item><item><title>My "Encoding Video for Microsoft Silverlight" presentation from MIX is up</title><description>&lt;img src="http://on10.net/Link/a671f2a8-14a5-43a4-b4a6-22ac337ce577/" border="0" /&gt;And &lt;a href="http://sessions.visitmix.com/?selectedSearch=BCT07"&gt;here it is&lt;/a&gt;. You can watch in Silverlight, or download in WMV or for iPod or Zune.&lt;img src="http://on10.net/21471/WebViewBug.aspx?EVT=0" height="1" width="1" alt="" /&gt;</description><comments>http://on10.net/blogs/benwagg/My-Encoding-Video-for-Microsoft-Silverlight-presentation-from-MIX-is-up/</comments><link>http://on10.net/blogs/benwagg/My-Encoding-Video-for-Microsoft-Silverlight-presentation-from-MIX-is-up/</link><pubDate>Thu, 06 Mar 2008 16:10:00 GMT</pubDate><guid isPermaLink="true">http://on10.net/blogs/benwagg/My-Encoding-Video-for-Microsoft-Silverlight-presentation-from-MIX-is-up/</guid><evnet:views>616</evnet:views><evnet:viewtrackingurl>http://on10.net/21471/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>And here it is. You can watch in Silverlight, or download in WMV or for iPod or Zune.</evnet:previewtext><media:thumbnail url="http://on10.net/Link/b9be8449-27bf-4f6d-8d1c-8dc98ed7fd97/" height="240" width="320" /><media:thumbnail url="http://on10.net/Link/a671f2a8-14a5-43a4-b4a6-22ac337ce577/" height="64" width="85" /><dc:creator>benwaggoner</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://on10.net/blogs/benwagg/My-Encoding-Video-for-Microsoft-Silverlight-presentation-from-MIX-is-up/RSS/</wfw:commentRss><trackback:ping>http://on10.net/21471/Trackback.aspx</trackback:ping><category>compression</category><category>Expression Encoder</category><category>Server 2008</category><category>silverlight</category><category>VC-1</category></item><item><title>VC-1 for screen recordings (New Expression Encoder encodes up)</title><description>A few months ago&amp;nbsp;I posted links to my Expression Encoder training. However, I didn't encode the original clips, and being a little obsessive I wanted to see wha I could pull off myself with VC-1 for screen shots.&lt;br /&gt;&lt;br /&gt;You can see the results of my work &lt;a href="http://www.microsoft.com/expression/kc/resources.aspx?product=encoder&amp;amp;type=video"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Some tips for encoding screen shots:&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;I-Frame DQuant. While I normally don't recommend DQuant for low bitrates with the VC-1 Encoder SDK, it makes sense to apply it to I-frames for screen recordings, since we don't need very many of them, and with so little motion, that really helps improve the quality of all frames based on the reference frame.&lt;/li&gt;
&lt;li&gt;Long GOPs (distance between keyframes) can really help efficiency, since keyframes can take up the majority of bits in the files.&lt;/li&gt;
&lt;li&gt;Use B-frames. &amp;gt;1 can pay off a lot in improved efficiency. And more B-frames improve random access when using long GOPs, since B-frames don't need to be decoded when jumping to a particular frame (just the previous I-frame and all P-frames between that and the current frame, plus the following P-frame for a B-Frame). I think I used 3 for these clips.&lt;/li&gt;
&lt;li&gt;Chroma Search! A full precision chroma search can pay off for colorful content like screen shots.&lt;/li&gt;
&lt;li&gt;In-Loop, but no Overlap filter. The Ovelap filter softens the image some, which is better than getting blocky artifacts at low bitrates with natural images, but looks weird with crisp static content like screen shots. The In-Loop filter is okay since it only kicks on when needed.&lt;/li&gt;
&lt;li&gt;2-pass VBR. Since the complexity of screen recordings varies so much, doing an analysis pass as well as letting the codec distribute bits on its own allows for big momentary spikes for quality, while letting the average bitrate stay low.&lt;/li&gt;
&lt;li&gt;Quality 90. Using Quality 90, the codec can dip down to QP (Quantization Parameter) 1, letting our reference frames be really crisp, reducing the bits later frames need. A good thing. In the VC-1 Encoder SDK, we can manually set the min and max QP as different parameters, but that feature was added after I did these clips.&lt;/li&gt;
&lt;li&gt;Don't be afraid of low bitrates. Using the above, you can need a lot fewer bits/pixel for screen recordings than typical motion content. &lt;/li&gt;&lt;/ol&gt;&lt;img src="http://on10.net/20711/WebViewBug.aspx?EVT=0" height="1" width="1" alt="" /&gt;</description><comments>http://on10.net/blogs/benwagg/VC-1-for-screen-recordings-New-Expression-Encoder-encodes-up/</comments><link>http://on10.net/blogs/benwagg/VC-1-for-screen-recordings-New-Expression-Encoder-encodes-up/</link><pubDate>Tue, 15 Jan 2008 16:02:00 GMT</pubDate><guid isPermaLink="true">http://on10.net/blogs/benwagg/VC-1-for-screen-recordings-New-Expression-Encoder-encodes-up/</guid><evnet:views>1482</evnet:views><evnet:viewtrackingurl>http://on10.net/20711/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>A few months ago&amp;nbsp;I posted links to my Expression Encoder training. However, I didn't encode the original clips, and being a little obsessive I wanted to see wha I could pull off myself with VC-1 for screen shots.&lt;br /&gt;</evnet:previewtext><dc:creator>benwaggoner</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://on10.net/blogs/benwagg/VC-1-for-screen-recordings-New-Expression-Encoder-encodes-up/RSS/</wfw:commentRss><trackback:ping>http://on10.net/20711/Trackback.aspx</trackback:ping><category>Expression Encoder</category><category>silverlight</category><category>VC-1</category><category>WMV</category></item><item><title>Alex Zambelli's VC-1 FAQ</title><description>Alex Zambelli has a &lt;a href="http://citizeninsomniac.com/blog/vc-1-sdk-faq/"&gt;VC-1 SDK FAQ &lt;/a&gt;up, saving me the trouble of doing one :).&lt;br /&gt;&lt;br /&gt;If you have any Q's that haven't been FA'ed up there, let him know.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://on10.net/20678/WebViewBug.aspx?EVT=0" height="1" width="1" alt="" /&gt;</description><comments>http://on10.net/blogs/benwagg/Alex-Zambellis-VC-1-FAQ/</comments><link>http://on10.net/blogs/benwagg/Alex-Zambellis-VC-1-FAQ/</link><pubDate>Mon, 14 Jan 2008 21:09:00 GMT</pubDate><guid isPermaLink="true">http://on10.net/blogs/benwagg/Alex-Zambellis-VC-1-FAQ/</guid><evnet:views>719</evnet:views><evnet:viewtrackingurl>http://on10.net/20678/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>Alex Zambelli has a VC-1 SDK FAQ up, saving me the trouble of doing one :).If you have any Q's that haven't been FA'ed up there, let him know.</evnet:previewtext><dc:creator>benwaggoner</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://on10.net/blogs/benwagg/Alex-Zambellis-VC-1-FAQ/RSS/</wfw:commentRss><trackback:ping>http://on10.net/20678/Trackback.aspx</trackback:ping><category>SDK</category><category>VC-1</category><category>VC-1 Encoder</category><category>WMV</category></item><item><title>Hotfix to FSDK 11 for multi-threaded multi-bitrate encoding</title><description>&lt;p&gt;
		&lt;/p&gt;
&lt;p&gt;We've just released a hotfix for a recently discovered issue impacting encoding performance when doing muliple bitrates ("Intelligent Streaming"). Essentially, all the encodes happen on a single core, instead of spreading out over up to 4 cores.&lt;/p&gt;
&lt;p&gt;&lt;a title="http://support.microsoft.com/kb/945170" href="http://support.microsoft.com/kb/945170"&gt;http://support.microsoft.com/kb/945170&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Recommended for anyone encoding to multiple bitrates. It can improve performance around 4x on a 4-core system.&lt;/p&gt;&lt;img src="http://on10.net/20600/WebViewBug.aspx?EVT=0" height="1" width="1" alt="" /&gt;</description><comments>http://on10.net/blogs/benwagg/20600/</comments><link>http://on10.net/blogs/benwagg/20600/</link><pubDate>Fri, 11 Jan 2008 00:49:00 GMT</pubDate><guid isPermaLink="true">http://on10.net/blogs/benwagg/20600/</guid><evnet:views>638</evnet:views><evnet:viewtrackingurl>http://on10.net/20600/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>We've just released a hotfix for a recently discovered issue impacting encoding performance when doing muliple bitrates ("Intelligent Streaming"). Essentially, all the encodes happen on a single core, instead of spreading out over up to 4 cores.
http://support.microsoft.com/kb/945170
Recommended&amp;#8230;</evnet:previewtext><dc:creator>benwaggoner</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://on10.net/blogs/benwagg/20600/RSS/</wfw:commentRss><trackback:ping>http://on10.net/20600/Trackback.aspx</trackback:ping><category>VC-1</category><category>WMV</category></item><item><title>Compression for Silverlight Webcast posted</title><description>&lt;p&gt;The "Compression with Silverlight" Live Meeting I did with &lt;a href="http://blogs.msdn.com/user/Profile.aspx?UserID=34284"&gt;Michael Scherotter &lt;/a&gt;has now been posted.&lt;/p&gt;
&lt;p&gt;Check it out &lt;a href="http://blogs.msdn.com/synergist/archive/2007/12/04/webcast-recording-posted-encoding-q-a-with-ben-waggoner.aspx"&gt;here at the Synergist &lt;/a&gt;blog.&lt;/p&gt;&lt;img src="http://on10.net/20057/WebViewBug.aspx?EVT=0" height="1" width="1" alt="" /&gt;</description><comments>http://on10.net/blogs/benwagg/Compression-for-Silverlight-Webcast-posted/</comments><link>http://on10.net/blogs/benwagg/Compression-for-Silverlight-Webcast-posted/</link><pubDate>Tue, 11 Dec 2007 06:44:00 GMT</pubDate><guid isPermaLink="true">http://on10.net/blogs/benwagg/Compression-for-Silverlight-Webcast-posted/</guid><evnet:views>925</evnet:views><evnet:viewtrackingurl>http://on10.net/20057/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>The "Compression with Silverlight" Live Meeting I did with Michael Scherotter has now been posted.</evnet:previewtext><dc:creator>benwaggoner</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://on10.net/blogs/benwagg/Compression-for-Silverlight-Webcast-posted/RSS/</wfw:commentRss><trackback:ping>http://on10.net/20057/Trackback.aspx</trackback:ping><category>compression</category><category>Expression Encoder</category><category>silverlight</category><category>VC-1</category></item><item><title>Live Silverlight Media Q&amp;A on Tuesday</title><description>I'm doing a&amp;nbsp;&lt;a href="http://blogs.msdn.com/synergist/archive/2007/11/27/silverlight-media-encoding-q-a-with-ben-waggoner.aspx"&gt;Silverlight Media Q&amp;amp;A&lt;/a&gt; with &lt;a href="http://blogs.msdn.com/user/Profile.aspx?UserID=34284"&gt;Michael S. Scherotter &lt;/a&gt;next Tuesday (Dec 4th) at 1pm PST.&lt;br /&gt;&lt;br /&gt;Michael is going to be collecting questions, and we'll spend an hour anwering them via a Live Meeting session. Forward your questions on to Michael &lt;a href="http://blogs.msdn.com/synergist/contact.aspx"&gt;here&lt;/a&gt;.&lt;img src="http://on10.net/19862/WebViewBug.aspx?EVT=0" height="1" width="1" alt="" /&gt;</description><comments>http://on10.net/blogs/benwagg/Live-Silverlight-Media-QA-on-Tuesday/</comments><link>http://on10.net/blogs/benwagg/Live-Silverlight-Media-QA-on-Tuesday/</link><pubDate>Wed, 28 Nov 2007 18:53:00 GMT</pubDate><guid isPermaLink="true">http://on10.net/blogs/benwagg/Live-Silverlight-Media-QA-on-Tuesday/</guid><evnet:views>900</evnet:views><evnet:viewtrackingurl>http://on10.net/19862/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>I'm doing a&amp;nbsp;&lt;a href="http://blogs.msdn.com/synergist/archive/2007/11/27/silverlight-media-encoding-q-a-with-ben-waggoner.aspx" target="_blank"&gt;Silverlight Media Q&amp;amp;A&lt;/a&gt; with &lt;a href="http://blogs.msdn.com/user/Profile.aspx?UserID=34284" target="_blank"&gt;Michael S. Scherotter &lt;/a&gt;next Tuesday (Dec 4th) at 1pm PST.&lt;br /&gt;</evnet:previewtext><dc:creator>benwaggoner</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://on10.net/blogs/benwagg/Live-Silverlight-Media-QA-on-Tuesday/RSS/</wfw:commentRss><trackback:ping>http://on10.net/19862/Trackback.aspx</trackback:ping><category>Live Meeting</category><category>Q&amp;A</category><category>silverlight</category><category>VC-1</category><category>video encoding</category></item><item><title>"DV Show" podcast with David Trescot</title><description>David Trescot of &lt;a href="http://www.rhozet.com/"&gt;Rhozet &lt;/a&gt;and I were guests on last week's episode of Derrick Freeman's&amp;nbsp;"&lt;a href="http://www.thedvshow.com/"&gt;The DV Show&lt;/a&gt;." David talked about &lt;a href="http://www.rhozet.com/products.html"&gt;Carbon &lt;/a&gt;(a great compression product, soon to support our &lt;a href="http://www.microsoft.com/resources/mediaandentertainment/ibc2007/vc-1encodersdk.mspx"&gt;VC-1 Encoder &lt;/a&gt;SDK), and I answered questions about Windows Media, Silverlight, and the VC-1 Encoder SDK.&lt;br /&gt;&lt;br /&gt;The podcast is archived &lt;a href="http://www.thedvshow.com/podcasts/oct8.html"&gt;here&lt;/a&gt;.&lt;img src="http://on10.net/19348/WebViewBug.aspx?EVT=0" height="1" width="1" alt="" /&gt;</description><comments>http://on10.net/blogs/benwagg/DV-Show-podcast-with-David-Trescot/</comments><link>http://on10.net/blogs/benwagg/DV-Show-podcast-with-David-Trescot/</link><pubDate>Wed, 17 Oct 2007 22:09:00 GMT</pubDate><guid isPermaLink="true">http://on10.net/blogs/benwagg/DV-Show-podcast-with-David-Trescot/</guid><evnet:views>1038</evnet:views><evnet:viewtrackingurl>http://on10.net/19348/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>David Trescot of &lt;a href="http://www.rhozet.com/" target="_blank"&gt;Rhozet &lt;/a&gt;and I were guests on last week's episode of Derrick Freeman's&amp;nbsp;"&lt;a href="http://www.thedvshow.com/" target="_blank"&gt;The DV Show&lt;/a&gt;." David talked about &lt;a href="http://www.rhozet.com/products.html" target="_blank"&gt;Carbon &lt;/a&gt;(a great compression product, soon to support our &lt;a href="http://www.microsoft.com/resources/mediaandentertainment/ibc2007/vc-1encodersdk.mspx" target="_blank"&gt;VC-1 Encoder &lt;/a&gt;SDK), and I answered questions about Windows Media, Silverlight, and the VC-1 Encoder SDK.&lt;br /&gt;</evnet:previewtext><dc:creator>benwaggoner</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://on10.net/blogs/benwagg/DV-Show-podcast-with-David-Trescot/RSS/</wfw:commentRss><trackback:ping>http://on10.net/19348/Trackback.aspx</trackback:ping><category>carbon</category><category>DV Show</category><category>podcast</category><category>Rhozet</category><category>silverlight</category><category>VC-1</category><category>VC-1 Encoder</category><category>WMV</category></item><item><title>New WMcmd.vbs with improved multithreading and new presets</title><description>Alex Zambelli has updated his invaluable &lt;a href="http://www.citizeninsomniac.com/WMV/#WMCmd"&gt;WMCmd.vbs&lt;/a&gt;&amp;nbsp;yet again. The two main new features are improved support for running multiple versions at once (great with my new 8-core Barcelona workstation), an explicit QP mode for 1-pass VBR, and refactored presets for different compression levels.&lt;br /&gt;&lt;br /&gt;The full details are in the &lt;a href="http://www.citizeninsomniac.com/WMV/readme.txt"&gt;Readme&lt;/a&gt;, but here's my summary and elaboration, respectively.&lt;br /&gt;&lt;br /&gt;For running multiple versions, the script sets the registry keys, starts the encode, and then reverts them immediately after the encode starts. This should reduce the chance of the wrong keys being set during an encode (not that I've had any problems with that in the last six months or so).&lt;br /&gt;&lt;br /&gt;QP is a measure of how compressed the image is, with lower numbers being less compressed. For the explicit QP mode, the script now lets you specify the QP you want, instead of providing a 0-100 range and knowing the magical translation table. Why is this useful? Well, for most readers, you probably don't have an intuitive sense of what quantization parameter you want to use, but it's there for those that do. And better yet, it give you a chance to understand how QP works.&lt;br /&gt;&lt;br /&gt;Reading the above, it's clear I need to do a blog post on QP and how to use it. That will reveal the mysteries of the subtle "Quality" control for WMV 1-pass CBR modes.&lt;br /&gt;&lt;br /&gt;Lastly, we have preset refactoring, where Alex has cleaned up what combination of settings get applied for different targets for encode time. You can think of these as an extension of the old "Complexity" slider, applying yet more options and getting better results overall. We'll be sharing these recommendations to vendors using our VC-1 Encoder SDK. These new modes are worth some detailed discussion:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;fast: Up to 1.5x faster than default with comparable quality.&lt;br /&gt;-v_complexity 2&lt;br /&gt;-v_bframedist 1&lt;br /&gt;-v_lookahead 16&lt;br /&gt;-v_loopfilter 1&lt;br /&gt;-v_overlap 1&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Even for the fastest mode, we don't mess with Complexity 1 (the live default in Windows Media Encoder, but very rarely needed even for live encoding on a modern system). And we can use features that help quality a lot without much CPU hit like B-Frames and Lookahead. For any Main or Advanced Profile encode, B-Frames are almost always a big plus. And Lookahead should be used for all 1-pass encodes (there's no downside to having it set for 2-pass encodes; it's ignored).&lt;br /&gt;&lt;br /&gt;&lt;em&gt;good: Up to 1.5x slower than default.&lt;br /&gt;-v_complexity 3&lt;br /&gt;-v_bframedist 1&lt;br /&gt;-v_lookahead 16&lt;br /&gt;-v_loopfilter 1&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;A little higher complexity, and Overlap is off. Overlap causes the image to get softer, so ideally it won't be needed. But for aggressive bitrates, it might be needed with any preset.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;better: Up to 2.5x slower than default.&lt;br /&gt;-v_complexity 3&lt;br /&gt;-v_bframedist 1&lt;br /&gt;-v_lookahead 16&lt;br /&gt;-v_loopfilter 1&lt;br /&gt;-v_mslevel 1&lt;br /&gt;-v_msrange 0&lt;br /&gt;&lt;/em&gt;&lt;br /&gt;We add Integer Chroma Search which can help a lot with animation and motion graphics, and adaptive motion search range, which helps with higher resolutions and higher motion.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;best: Up to 4.5x slower than default.&lt;br /&gt;-v_complexity 5&lt;br /&gt;-v_bframedist 1&lt;br /&gt;-v_lookahead 16&lt;br /&gt;-v_loopfilter 1&lt;br /&gt;-v_msrange 0&lt;br /&gt;&lt;/em&gt;&lt;br /&gt;Complexity jumps from 3 to 5. MSLevel isn't specified because Complexity 5 is a little unique - it has hardcoded amounts of both chroma search and Hadamard motion match that can't otherwise be specified. The nice thing about Complexity 5 is that it can provide some of the quality gains of using registry keys for machines where those can't be set. However, it doesn't set B-frames or Lookahead, so "better" would generally look better and encode faster than a default "Complexity 5"&lt;br /&gt;&lt;br /&gt;&lt;em&gt;insane: The slowest and highest quality preset.&lt;br /&gt;-v_complexity 4&lt;br /&gt;-v_bframedist 1&lt;br /&gt;-v_lookahead 16&lt;br /&gt;-v_loopfilter 1&lt;br /&gt;-v_mslevel 2&lt;br /&gt;-v_msrange 0&lt;br /&gt;-v_mmatch 0&lt;br /&gt;&lt;/em&gt;&lt;br /&gt;And lastly, Insane. Note this goes back down to Complexity 4, which allows us to specify a Full Chroma Search and adaptive SAD/Hadamard Motion Match. This is both better and slower than Complexity 5.&lt;br /&gt;&lt;br /&gt;And the above is what I used for most of my encodes, personally.&lt;br /&gt;&lt;br /&gt;I'll sometimes use what I think of as "Hyper Insane" which is turning -v_numthreads down to 1, which gives a very slight further improvement. Also, 4x single-thread encodes are faster than a single 4-thread encode on the same hardware. Which is why I wind up using multiple instances so much - For a huge batch of files to encode, I'll be done slightly better running 4 simultaneous single-threaded encodes.
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://on10.net/19260/WebViewBug.aspx?EVT=0" height="1" width="1" alt="" /&gt;</description><comments>http://on10.net/blogs/benwagg/New-WMcmdvbs-with-improved-multithreading-and-new-presets/</comments><link>http://on10.net/blogs/benwagg/New-WMcmdvbs-with-improved-multithreading-and-new-presets/</link><pubDate>Sun, 14 Oct 2007 04:05:00 GMT</pubDate><guid isPermaLink="true">http://on10.net/blogs/benwagg/New-WMcmdvbs-with-improved-multithreading-and-new-presets/</guid><evnet:views>1413</evnet:views><evnet:viewtrackingurl>http://on10.net/19260/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>Alex Zambelli has updated his invaluable &lt;a href="http://www.citizeninsomniac.com/WMV/#WMCmd" target="_blank"&gt;WMCmd.vbs&lt;/a&gt;&amp;nbsp;yet again. The two main new features are improved support for running multiple versions at once (great with my new 8-core Barcelona workstation), an explicit QP mode for 1-pass VBR, and refactored presets for different compression levels.&lt;br /&gt;</evnet:previewtext><dc:creator>benwaggoner</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://on10.net/blogs/benwagg/New-WMcmdvbs-with-improved-multithreading-and-new-presets/RSS/</wfw:commentRss><trackback:ping>http://on10.net/19260/Trackback.aspx</trackback:ping><category>compression</category><category>VC-1</category><category>WMcmd.vbs</category><category>WMV</category></item><item><title>My Expression Encoder Training</title><description>&lt;img src="http://on10.net/images/blogs/Ben-Expression-Encoder-85x.jpg" border="0" /&gt;A couple of months ago the &lt;a href="http://www.microsoft.com/expression/products/overview.aspx?key=encoder"&gt;Expression Encoder &lt;/a&gt;team invited me to record their official training videos, produced by &lt;a href="http://www.totaltraining.com/"&gt;Total Training&lt;/a&gt;. They're now online for free.&lt;br /&gt;
&lt;br /&gt;
It was an interesting production process. I've done a number of training titles over the years, including for &lt;a href="http://www.classondemand.net/benwaggoner/"&gt;Class On Demand&lt;/a&gt;, and this is the first time I've been able to do it in HD with digital capture. The workflow was simple - HDMI out of my Toshiba G35 laptop into a &lt;a href="http://www.blackmagic-design.com/products/intensity/"&gt;Blackmagic Design Intensity &lt;/a&gt;HDMI capture card. Full 1280x720 60 fps capture, straight into a NLE.&lt;br /&gt;
&lt;br /&gt;
Unfortunately, I didn't get a chance to encode it myself - the cobbler's children don't have shoes and all that. It was encoded with an older version of our codec without all the usual tweaks. But you can certainly get a feel of this very exciting product. I'll try to get the source and redo it with our new VC-1 Encoder SDK - it'd look a lot better.&lt;br /&gt;
&lt;br /&gt;
Here's the individual files (linked to from the &lt;a href="http://www.microsoft.com/expression/kc/resources.aspx?type=video"&gt;Expression training videos page&lt;/a&gt;):&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://download.microsoft.com/download/4/d/9/4d9695f0-1c71-493c-ab64-dab08c096552/VEMENOT_C01_450_WEB.wmv"&gt;Introduction to Expression Encoder&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://download.microsoft.com/download/0/a/3/0a3fe1a6-d7a5-450b-808d-c80a0dd9065f/VEMENOT_C02_450_WEB.wmv"&gt;Enhancing Media&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://download.microsoft.com/download/e/8/a/e8a732b1-a4c1-47ed-91ab-5d0f504fbfc1/VEMENOT_C03_450_WEB.wmv"&gt;Metadata, Markers, &amp;amp; Silverlight&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://download.microsoft.com/download/d/d/4/dd40229e-1396-49a9-b547-33f4f13cd7b2/VEMENOT_C04_450_WEB.wmv"&gt;Live Production&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://download.microsoft.com/download/5/7/c/57c418f8-d866-4111-ba96-e0e0cbf2471e/VEMENOT_C05_450_WEB.wmv"&gt;Advanced Expression Encoder&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
I haven't been on camera enough to get used to watching and in particular hearing myself - to my ear I sound like an overcaffinated Jim Henson.&lt;br /&gt;
&lt;br /&gt;
UPDATE: I reencoded the clips myself, &lt;a href="http://on10.net/blogs/benwagg/VC-1-for-screen-recordings-New-Expression-Encoder-encodes-up/"&gt;details here&lt;/a&gt;.&lt;br /&gt;&lt;img src="http://on10.net/18797/WebViewBug.aspx?EVT=0" height="1" width="1" alt="" /&gt;</descr