<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Progressive Digressive &#187; video</title>
	<atom:link href="http://www.marcuswhitworth.com/tag/video/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.marcuswhitworth.com</link>
	<description>Marcus Whitworth&#039;s tech blog – .NET, C#, Silverlight, WPF, Flex…etc, etc</description>
	<lastBuildDate>Wed, 14 Dec 2011 16:14:08 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Creating a custom Silverlight 3 Smooth Streaming player</title>
		<link>http://www.marcuswhitworth.com/2009/09/creating-a-custom-silverlight-3-smooth-streaming-player/</link>
		<comments>http://www.marcuswhitworth.com/2009/09/creating-a-custom-silverlight-3-smooth-streaming-player/#comments</comments>
		<pubDate>Thu, 24 Sep 2009 18:36:39 +0000</pubDate>
		<dc:creator>Marcus</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[silverlight]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://www.marcuswhitworth.com/?p=64</guid>
		<description><![CDATA[When it comes to video delivery, I come from a Flash background.  I&#8217;ve worked on numerous streaming video projects over the years, all of which were created with Flash &#38; Actionscript on the client side. Having been through the process &#8230; <a href="http://www.marcuswhitworth.com/2009/09/creating-a-custom-silverlight-3-smooth-streaming-player/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>When it comes to video delivery, I come from a Flash background.  I&#8217;ve worked on numerous streaming video projects over the years, all of which were created with Flash &amp; Actionscript on the client side. Having been through the process several times, I know all the hurdles I&#8217;m going to have to clear well in advance.</p>
<p>Documentation for coding a Silverlight 3 player against IIS Smooth Streaming is a little sparse.  IIS.net has several articles on the server setup, but I couldn&#8217;t find anywhere obvious regarding the client connection.</p>
<p>Unlike progressive video playback, you can&#8217;t just point the MediaElement.source at the video path then call play().  After a bit of searching, <a href="http://chris.59north.com/post/Playing-Smooth-Streaming-videos-in-Silverlight.aspx" target="_blank">most people were talking about</a> some <em>AdaptiveStreamingSource</em> class, which isn&#8217;t available in the base SL toolkit, but rather only found in <em>SmoothStreaming.dll</em> within the template players generated from Expression Encoder!</p>
<p>Per <a href="http://forums.silverlight.net/forums/t/121952.aspx" target="_blank">some handy forum posts</a>, the steps required are:</p>
<ol>
<li>With Expression Encoder installed, go to <em>C:\Program Files\Microsoft Expression\Encoder 3\Templates\en</em>, select any template, and copy the SmoothStreaming.xap file.</li>
<li>Rename your copied .xap file to .zip, unzip, and take out the <em>SmoothStreaming.dll</em> and <em>PlugInMssCtrl.dll</em> files.</li>
<li>Reference these assemblies in your project, and you can then start using <em>AdaptiveStreamingSource.</em></li>
</ol>
<p>So, once you can finally access the required assemblies, you can then invoke your IIS Smooth Streaming service with something along the lines of the following:</p>
<pre class="brush:csharp">var mediaPath = "testClip_h1080p.ism/manifest";
var source = new AdaptiveStreamingSource
{
   ManifestUrl = new Uri(mediaPath, UriKind.RelativeOrAbsolute),
   MediaElement = streamElement // the xaml MediaElement
};
source.StartPlayback();</pre>
<p>Make sure you put the trailing &#8216;/manifest&#8217; after your stream path.</p>
<p>Simple enough, once you&#8217;ve figured out the basics!  Not exactly sure what MS were thinking by not including the SmoothStreaming assemblies in the SL3 toolkit?  Surely they realise not everyone wants to use a templated player.  Or have I missed something here?</p>
<div class="shr-publisher-64"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fwww.marcuswhitworth.com%2F2009%2F09%2Fcreating-a-custom-silverlight-3-smooth-streaming-player%2F' data-shr_title='Creating+a+custom+Silverlight+3+Smooth+Streaming+player'></a><a class='shareaholic-fblike' data-shr_layout='button_count' data-shr_showfaces='false' data-shr_href='http%3A%2F%2Fwww.marcuswhitworth.com%2F2009%2F09%2Fcreating-a-custom-silverlight-3-smooth-streaming-player%2F' data-shr_title='Creating+a+custom+Silverlight+3+Smooth+Streaming+player'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.marcuswhitworth.com/2009/09/creating-a-custom-silverlight-3-smooth-streaming-player/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic
Page Caching using disk: enhanced
Database Caching 1/9 queries in 0.002 seconds using disk: basic
Object Caching 491/500 objects using disk: basic

Served from: www.marcuswhitworth.com @ 2012-02-06 22:05:15 -->
