<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: An inside look at NBC Olympics video player</title>
	<atom:link href="http://alexzambelli.com/blog/2008/08/21/an-inside-look-at-nbc-olympics-video-player/feed/" rel="self" type="application/rss+xml" />
	<link>http://alexzambelli.com/blog/2008/08/21/an-inside-look-at-nbc-olympics-video-player/</link>
	<description>Silverlight, streaming media, Windows Media, VC-1, H.264, Smooth Streaming</description>
	<lastBuildDate>Fri, 30 Jul 2010 23:31:36 -0700</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Hiroshi Okunushi's Blog ?? : ?IIS7? IIS7 ??????????????????????2?</title>
		<link>http://alexzambelli.com/blog/2008/08/21/an-inside-look-at-nbc-olympics-video-player/comment-page-1/#comment-2404</link>
		<dc:creator>Hiroshi Okunushi's Blog ?? : ?IIS7? IIS7 ??????????????????????2?</dc:creator>
		<pubDate>Tue, 03 Mar 2009 10:21:47 +0000</pubDate>
		<guid isPermaLink="false">http://alexzambelli.com/blog/2008/08/21/an-inside-look-at-nbc-olympics-video-player/#comment-2404</guid>
		<description>[...] HTTP ???????????????????? NBC Olympics 2008 [...]</description>
		<content:encoded><![CDATA[<p>[...] HTTP ???????????????????? NBC Olympics 2008 [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Alex Zambelli&#8217;s Silverlight Media Blog &#187; Blog Archive &#187; The Birth of Smooth Streaming</title>
		<link>http://alexzambelli.com/blog/2008/08/21/an-inside-look-at-nbc-olympics-video-player/comment-page-1/#comment-2296</link>
		<dc:creator>Alex Zambelli&#8217;s Silverlight Media Blog &#187; Blog Archive &#187; The Birth of Smooth Streaming</dc:creator>
		<pubDate>Wed, 04 Feb 2009 12:09:24 +0000</pubDate>
		<guid isPermaLink="false">http://alexzambelli.com/blog/2008/08/21/an-inside-look-at-nbc-olympics-video-player/#comment-2296</guid>
		<description>[...] first prototyped an implementation of HTTP-based adaptive streaming as part of the NBC Olympics 2008 project. In order to deliver the desired level of quality in a short period of time, we took the [...]</description>
		<content:encoded><![CDATA[<p>[...] first prototyped an implementation of HTTP-based adaptive streaming as part of the NBC Olympics 2008 project. In order to deliver the desired level of quality in a short period of time, we took the [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: abrardLak</title>
		<link>http://alexzambelli.com/blog/2008/08/21/an-inside-look-at-nbc-olympics-video-player/comment-page-1/#comment-2232</link>
		<dc:creator>abrardLak</dc:creator>
		<pubDate>Sat, 20 Dec 2008 03:52:26 +0000</pubDate>
		<guid isPermaLink="false">http://alexzambelli.com/blog/2008/08/21/an-inside-look-at-nbc-olympics-video-player/#comment-2232</guid>
		<description>Much the interesting has found here</description>
		<content:encoded><![CDATA[<p>Much the interesting has found here</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Futile &#187; links for 2008-11-27</title>
		<link>http://alexzambelli.com/blog/2008/08/21/an-inside-look-at-nbc-olympics-video-player/comment-page-1/#comment-2205</link>
		<dc:creator>Futile &#187; links for 2008-11-27</dc:creator>
		<pubDate>Thu, 27 Nov 2008 17:30:29 +0000</pubDate>
		<guid isPermaLink="false">http://alexzambelli.com/blog/2008/08/21/an-inside-look-at-nbc-olympics-video-player/#comment-2205</guid>
		<description>[...] Alex Zambelli’s Silverlight Media Blog » Blog Archive » An inside look at NBC Olympics video pla... (tags: Silverlight media streaming) [...]</description>
		<content:encoded><![CDATA[<p>[...] Alex Zambelli’s Silverlight Media Blog » Blog Archive » An inside look at NBC Olympics video pla&#8230; (tags: Silverlight media streaming) [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Alex Zambelli</title>
		<link>http://alexzambelli.com/blog/2008/08/21/an-inside-look-at-nbc-olympics-video-player/comment-page-1/#comment-1783</link>
		<dc:creator>Alex Zambelli</dc:creator>
		<pubDate>Thu, 30 Oct 2008 05:23:30 +0000</pubDate>
		<guid isPermaLink="false">http://alexzambelli.com/blog/2008/08/21/an-inside-look-at-nbc-olympics-video-player/#comment-1783</guid>
		<description>Cagdas,

There&#039;s no broad standard on how to implement adaptive streaming in Silverlight.

MediaStreamSource API merely allows A/V samples to be independently downloaded and then handed over to Silverlight to decode and render. How the samples are actually encoded, contained and transported - can vary.

For example, you could chunk up the media stream into thousands of pieces at encoding time and then have the client request tiny files. Or, you could generate a contiguous stream but have the client request a byte offset corresponding to a particular time sequence in the video. Either way works.

The most important thing in preparing content for adaptive streaming is to make sure each video sample has a valid sequence header in order to allow seamless switching in the decoder. This is why encoding for adaptive streaming typically requires video GOPs of fixed length (i.e. 2 seconds) and entry point headers at the start of each GOP. This allows the decoder to treat every GOP as a standalone unit, making it possible to switch between streams even when the resolution or bitstream configs change.

It&#039;s definitely possible to do adaptive streaming from live sources. It requires an encoder that&#039;s able to encode, index and upload the content to a CDN - all in realtime. Move Networks already provides this type of service today.

Correct, NBC Olympics used purely web servers for adaptive streaming.

Related to all this: Microsoft announced a productized version of our adaptive streaming technology this week - IIS 7.0 Smooth Streaming. The technology is based on IIS 7.0 and Silverlight, and is currently available through Akamai to end customers. You can visit http://www.smoothhd.com for demo and info.</description>
		<content:encoded><![CDATA[<p>Cagdas,</p>
<p>There&#8217;s no broad standard on how to implement adaptive streaming in Silverlight.</p>
<p>MediaStreamSource API merely allows A/V samples to be independently downloaded and then handed over to Silverlight to decode and render. How the samples are actually encoded, contained and transported &#8211; can vary.</p>
<p>For example, you could chunk up the media stream into thousands of pieces at encoding time and then have the client request tiny files. Or, you could generate a contiguous stream but have the client request a byte offset corresponding to a particular time sequence in the video. Either way works.</p>
<p>The most important thing in preparing content for adaptive streaming is to make sure each video sample has a valid sequence header in order to allow seamless switching in the decoder. This is why encoding for adaptive streaming typically requires video GOPs of fixed length (i.e. 2 seconds) and entry point headers at the start of each GOP. This allows the decoder to treat every GOP as a standalone unit, making it possible to switch between streams even when the resolution or bitstream configs change.</p>
<p>It&#8217;s definitely possible to do adaptive streaming from live sources. It requires an encoder that&#8217;s able to encode, index and upload the content to a CDN &#8211; all in realtime. Move Networks already provides this type of service today.</p>
<p>Correct, NBC Olympics used purely web servers for adaptive streaming.</p>
<p>Related to all this: Microsoft announced a productized version of our adaptive streaming technology this week &#8211; IIS 7.0 Smooth Streaming. The technology is based on IIS 7.0 and Silverlight, and is currently available through Akamai to end customers. You can visit <a href="http://www.smoothhd.com" rel="nofollow">http://www.smoothhd.com</a> for demo and info.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Venkatarangan's Blog [???????????? ??????????] - Notes on PDC2008 Sessions - Inside the NBC Olympics Player</title>
		<link>http://alexzambelli.com/blog/2008/08/21/an-inside-look-at-nbc-olympics-video-player/comment-page-1/#comment-1766</link>
		<dc:creator>Venkatarangan's Blog [???????????? ??????????] - Notes on PDC2008 Sessions - Inside the NBC Olympics Player</dc:creator>
		<pubDate>Wed, 29 Oct 2008 21:54:03 +0000</pubDate>
		<guid isPermaLink="false">http://alexzambelli.com/blog/2008/08/21/an-inside-look-at-nbc-olympics-video-player/#comment-1766</guid>
		<description>[...] had to. Which was then mapped to Limelight &amp; Level 3 CDN&#039;s massive WMS boxes. More details of encoding process in the blog post hereNo full screen due to IOC Advertising requirements on the percentage of advertisements to videoMany [...]</description>
		<content:encoded><![CDATA[<p>[...] had to. Which was then mapped to Limelight &amp; Level 3 CDN&#8217;s massive WMS boxes. More details of encoding process in the blog post hereNo full screen due to IOC Advertising requirements on the percentage of advertisements to videoMany [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Cagdas Gerede</title>
		<link>http://alexzambelli.com/blog/2008/08/21/an-inside-look-at-nbc-olympics-video-player/comment-page-1/#comment-1558</link>
		<dc:creator>Cagdas Gerede</dc:creator>
		<pubDate>Thu, 23 Oct 2008 17:56:03 +0000</pubDate>
		<guid isPermaLink="false">http://alexzambelli.com/blog/2008/08/21/an-inside-look-at-nbc-olympics-video-player/#comment-1558</guid>
		<description>Thank you very much for your response.

If I may, I have some follow up questions.


I have some experience with MediaStreamSource and I am confused to hear &quot;Adaptive Streams&quot; and &quot;dual-bitrate adaptive streaming&quot;.

When I thought about how Adaptive Streaming works, I thought there are multiple separate streams (there are, for instance, in NBC case four streams with different bitrates and resolutions), and after we hook-in to a MediaElement with our custom MediaStreamSource, in the MediaStreamSource&#039;s method preparing the next sample to play in MediaElement, we decide from which stream we should generate the sample.

Does &quot;Adaptive Stream&quot; or &quot;dual-bitrate adaptive streaming&quot; refer to a single stream with some special features? For example, would there be 4 separate adaptive streams in NBC case for encore content. If that is the case, would we need different tools to create such streams than the tools to create regular media streams?

Also, you pointed out that it was a challenge to do adaptive streaming in realtime. Do you think Adaptive Streaming is a feature suitable for recorded media, but not for live media? If it is, why is this the case? 
Is it because, it takes time to create these kinds of &quot;special&quot; streams, and therefore the real-time requirement would be unmet.

Lastly, when you mentioned &quot;Adaptive streaming to Silverlight was done entirely over HTTP using progressive download&quot;, I conclude that the backend server is a web server, not a streaming server. Am I correct? If that is the case, then, I assume the complete logic of adaptation is on the Silverlight site so I can use my choice of server technologies.


I appreciate your answers,
thanks</description>
		<content:encoded><![CDATA[<p>Thank you very much for your response.</p>
<p>If I may, I have some follow up questions.</p>
<p>I have some experience with MediaStreamSource and I am confused to hear &#8220;Adaptive Streams&#8221; and &#8220;dual-bitrate adaptive streaming&#8221;.</p>
<p>When I thought about how Adaptive Streaming works, I thought there are multiple separate streams (there are, for instance, in NBC case four streams with different bitrates and resolutions), and after we hook-in to a MediaElement with our custom MediaStreamSource, in the MediaStreamSource&#8217;s method preparing the next sample to play in MediaElement, we decide from which stream we should generate the sample.</p>
<p>Does &#8220;Adaptive Stream&#8221; or &#8220;dual-bitrate adaptive streaming&#8221; refer to a single stream with some special features? For example, would there be 4 separate adaptive streams in NBC case for encore content. If that is the case, would we need different tools to create such streams than the tools to create regular media streams?</p>
<p>Also, you pointed out that it was a challenge to do adaptive streaming in realtime. Do you think Adaptive Streaming is a feature suitable for recorded media, but not for live media? If it is, why is this the case?<br />
Is it because, it takes time to create these kinds of &#8220;special&#8221; streams, and therefore the real-time requirement would be unmet.</p>
<p>Lastly, when you mentioned &#8220;Adaptive streaming to Silverlight was done entirely over HTTP using progressive download&#8221;, I conclude that the backend server is a web server, not a streaming server. Am I correct? If that is the case, then, I assume the complete logic of adaptation is on the Silverlight site so I can use my choice of server technologies.</p>
<p>I appreciate your answers,<br />
thanks</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Alex Zambelli</title>
		<link>http://alexzambelli.com/blog/2008/08/21/an-inside-look-at-nbc-olympics-video-player/comment-page-1/#comment-1538</link>
		<dc:creator>Alex Zambelli</dc:creator>
		<pubDate>Thu, 23 Oct 2008 09:32:13 +0000</pubDate>
		<guid isPermaLink="false">http://alexzambelli.com/blog/2008/08/21/an-inside-look-at-nbc-olympics-video-player/#comment-1538</guid>
		<description>Restricting adaptive streaming to only Highlights/Encore content was mostly a design decision. Rewind videos could&#039;ve been created as dual-bitrate adaptive streaming assets, but the thought during the design phase was that doing so would require additional testing. In hindsight, that was probably an overly cautious decision.

As for Live streams, we simply didn&#039;t have the encoder tools available that could easily create adaptive streams and upload them to CDNs in realtime. On the other hand, Windows Media-ready live encoders (such as the Digital Rapids Stream encoders used by NBC) were widely available and of great quality.

As for your last question... Adaptive streaming to Silverlight was done entirely over HTTP using progressive download. This was made possible by Silverlight&#039;s low-level MediaStreamSource API which allows you to download data using .NET methods, parse it and hand it off to Silverlight to decode and render. Engineering the same functionality in WMP would&#039;ve required an additional ActiveX plugin, at the very least.</description>
		<content:encoded><![CDATA[<p>Restricting adaptive streaming to only Highlights/Encore content was mostly a design decision. Rewind videos could&#8217;ve been created as dual-bitrate adaptive streaming assets, but the thought during the design phase was that doing so would require additional testing. In hindsight, that was probably an overly cautious decision.</p>
<p>As for Live streams, we simply didn&#8217;t have the encoder tools available that could easily create adaptive streams and upload them to CDNs in realtime. On the other hand, Windows Media-ready live encoders (such as the Digital Rapids Stream encoders used by NBC) were widely available and of great quality.</p>
<p>As for your last question&#8230; Adaptive streaming to Silverlight was done entirely over HTTP using progressive download. This was made possible by Silverlight&#8217;s low-level MediaStreamSource API which allows you to download data using .NET methods, parse it and hand it off to Silverlight to decode and render. Engineering the same functionality in WMP would&#8217;ve required an additional ActiveX plugin, at the very least.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Cagdas Gerede</title>
		<link>http://alexzambelli.com/blog/2008/08/21/an-inside-look-at-nbc-olympics-video-player/comment-page-1/#comment-1523</link>
		<dc:creator>Cagdas Gerede</dc:creator>
		<pubDate>Wed, 22 Oct 2008 23:53:33 +0000</pubDate>
		<guid isPermaLink="false">http://alexzambelli.com/blog/2008/08/21/an-inside-look-at-nbc-olympics-video-player/#comment-1523</guid>
		<description>Thanks for the article. 

One question I have is why adaptive streaming only works with Highlights/Encore content. What is the challenge with Live/Rewind content?

Also, you mentioned that Live video is streamed via WMS HTTP streaming protocol. And you also mentioned &quot;If you’re using the WMP plugin, you always get the WMS stream, regardless of content type.&quot; 

How is this different for Silverlight? When the content is not live, does it delivered via Progressive Download? if it does, why is this the case?

I appreciate your answer,
thanks</description>
		<content:encoded><![CDATA[<p>Thanks for the article. </p>
<p>One question I have is why adaptive streaming only works with Highlights/Encore content. What is the challenge with Live/Rewind content?</p>
<p>Also, you mentioned that Live video is streamed via WMS HTTP streaming protocol. And you also mentioned &#8220;If you’re using the WMP plugin, you always get the WMS stream, regardless of content type.&#8221; </p>
<p>How is this different for Silverlight? When the content is not live, does it delivered via Progressive Download? if it does, why is this the case?</p>
<p>I appreciate your answer,<br />
thanks</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Alex Zambelli</title>
		<link>http://alexzambelli.com/blog/2008/08/21/an-inside-look-at-nbc-olympics-video-player/comment-page-1/#comment-30</link>
		<dc:creator>Alex Zambelli</dc:creator>
		<pubDate>Thu, 04 Sep 2008 08:28:16 +0000</pubDate>
		<guid isPermaLink="false">http://alexzambelli.com/blog/2008/08/21/an-inside-look-at-nbc-olympics-video-player/#comment-30</guid>
		<description>Hi Tom,

I am working with some folks in the Silverlight product team to see if we could get more detailed descriptions or sample code of MediaStreamSource online soon. Stay tuned.</description>
		<content:encoded><![CDATA[<p>Hi Tom,</p>
<p>I am working with some folks in the Silverlight product team to see if we could get more detailed descriptions or sample code of MediaStreamSource online soon. Stay tuned.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
