<?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>Cognifide Blog &#187; Smooth Streaming</title>
	<atom:link href="http://www.cognifide.com/blogs/tag/smooth-streaming/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.cognifide.com/blogs</link>
	<description>The Cognifide.Com Tech Hub</description>
	<lastBuildDate>Mon, 17 Jun 2013 08:46:17 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.4.2</generator>
		<item>
		<title>Microsoft Smooth Streaming part 3</title>
		<link>http://www.cognifide.com/blogs/marketing-technology/microsoft-smooth-streaming-part-3/</link>
		<comments>http://www.cognifide.com/blogs/marketing-technology/microsoft-smooth-streaming-part-3/#comments</comments>
		<pubDate>Thu, 02 Feb 2012 14:11:27 +0000</pubDate>
		<dc:creator>Kacper Chomicz</dc:creator>
				<category><![CDATA[Marketing Technology]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Smooth Streaming]]></category>

		<guid isPermaLink="false">http://www.cognifide.com/blogs/?p=854</guid>
		<description><![CDATA[Introduction In my last post about Smooth Streaming I explained the basic configuration that one needs to stream smooth videos. Just a quick  reminder -  all you need is Windows Server 2008, IIS, Media Services and Transform Manager to encode your video files to Smooth Streaming format. If you want to have more control over [...]]]></description>
			<content:encoded><![CDATA[<h2>Introduction</h2>
<p>In my last post about <a title="Microsoft Smooth Streaming part 2" href="http://www.cognifide.com/blogs/technology/microsoft-smooth-streaming-part-2/">Smooth Streaming</a> I explained the basic configuration that one needs to stream smooth videos. Just a quick  reminder -  all you need is Windows Server 2008, IIS, Media Services and Transform Manager to encode your video files to Smooth Streaming format. If you want to have more control over the encoding or need to incorporate it to a bespoke application, you need to go deeper.</p>
<p>Now, let&#8217;s look into how to use the Expression Encoder Object Model.</p>
<p><span id="more-854"></span></p>
<h2>Expression Encoder Object Model</h2>
<p>Using <a title="Expression Encoder Object Model" href="http://msdn.microsoft.com/en-us/library/ff728356.aspx">Expression Encoder Object Model</a> is very simple and shouldn’t be a problem even for beginners. To encode a video I used two classes – MediaItem and Job from Microsoft.Expression.Encoder.dll assembly.</p>
<p>Assuming you already have an open Visual Studio project you have to add all necessary references, listed below (all files can be found in Expression Encoder installation directory).</p>
<p><img class="aligncenter size-full wp-image-825" src="http://www.cognifide.com/blogs/wp-content/uploads/2012/01/references.png" alt="Expression Encoder OM - needed references" width="303" height="206" /></p>
<p>Next write a simple conversion function – I named my Encode and you can check the listing below.</p>
<p>Since this is just a simple example I will only pass path to the video file and path to output directory as parameters. I highlighted some sections in the code, I will explain them below.</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-826" src="http://www.cognifide.com/blogs/wp-content/uploads/2012/01/encdeFunction1.png" alt="Expression Encoder OM - sample code" width="650" height="760" /></p>
<ol>
<li>Creating a new MediaItem object passing video file path as constructor parameter.</li>
<li>Smooth Streaming must be enabled for selected Video Profile.</li>
<li>Output streams are easy to define and add to video profile. In the example above I’m adding three bit rates with corresponding video dimensions. The more you add the longer the encoding will take but on the other hand with multiple streams you can offer the best possible viewing experience to the client.</li>
<li>Expression Encoder can produce thumbnails.</li>
<li>Job definition couldn’t be simpler – all needed is to add the MediaItem object, set the output directory and invoke job’s Encode function.</li>
<li>Job object exposes several Events. I subscribed to EncodeCompleted event to know when the job is done. The handler may perform additional actions after job completion for example publish a page with encoded video in CMS or notify some external systems that conversion is over and that the video file is ready for viewing.</li>
</ol>
<p>I hope you enjoyed this quick tutorial. Of course it doesn’t cover everything and that’s why I really encourage you to play with this technology. If you have any comments or questions, please don&#8217;t hesitate to let me know!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cognifide.com/blogs/marketing-technology/microsoft-smooth-streaming-part-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Microsoft Smooth Streaming part 2</title>
		<link>http://www.cognifide.com/blogs/marketing-technology/microsoft-smooth-streaming-part-2/</link>
		<comments>http://www.cognifide.com/blogs/marketing-technology/microsoft-smooth-streaming-part-2/#comments</comments>
		<pubDate>Wed, 04 Jan 2012 16:38:35 +0000</pubDate>
		<dc:creator>Kacper Chomicz</dc:creator>
				<category><![CDATA[Marketing Technology]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Smooth Streaming]]></category>

		<guid isPermaLink="false">http://www.cognifide.com/blogs/?p=813</guid>
		<description><![CDATA[In my previous post on Microsoft Smooth Streaming I highlighted a problem we had when sharing videos recorded during our internal knowledge sharing sessions. Initially, we just uploaded them to an FTP location but the number of viewers was really low and it became hard to show them to our partners. That&#8217;s when, we decided [...]]]></description>
			<content:encoded><![CDATA[<p>In my previous post on <a title="Microsoft Smooth Streaming part 1" href="http://www.cognifide.com/blogs/technology/microsoft-smooth-streaming-part-1/"> Microsoft Smooth Streaming</a> I highlighted a problem we had when sharing videos recorded during our internal knowledge sharing sessions. Initially, we just uploaded them to an FTP location but the number of viewers was really low and it became hard to show them to our partners. That&#8217;s when, we decided to use Microsoft Smooth Streaming as a solution to our video transmission/ delivery problems.</p>
<p>In this post, I will focus more on the technical aspects – the installation and configuration of all necessary components and video conversion using the Transform Manager. In the next post, I will discuss how to encode a video using the Expression Encoder Object Model.</p>
<p><span id="more-813"></span></p>
<h2>Setting up a Microsoft Smooth Streaming server</h2>
<p>The base configuration needed to set up Smooth Streaming is Windows Server 2008 (or newer) with Web Server (IIS) role enabled. Next, you need to install IIS Media Services. You can download the installer from <a title="Smooth Streaming Home Page" href="http://www.iis.net/download/SmoothStreaming">here</a> or you can use Web Platform Installer to simplify the installation process. That&#8217;s it! Now all you need is an encoded video, the Microsoft Silverlight player and a web browser (Mozilla/ Chrome/ IE) to check if everything is working!</p>
<p><img class="aligncenter size-full wp-image-816" src="http://www.cognifide.com/blogs/wp-content/uploads/2012/01/mediaServices31.png" alt="Media Services in IIS Manager" width="650" height="631" /></p>
<p>You can download a sample video from <a title="Sample Smooth Streaming video" href="http://www.microsoft.com/download/en/details.aspx?id=18199">here</a> – it comes with a player and html file. Just extract the archive, create a virtual directory in IIS, point it to the video folder and open the html file in web browser. If you don’t have Microsoft Silverlight installed you will be prompted to install it and after a few seconds, you should be able to see the movie. You can also embed the Silverlight control on your existing page.</p>
<p>That’s the minimal setup required if you already have encoded videos or just want to play samples.</p>
<h2>Encoding videos</h2>
<p>There are several methods to change your movie format into the Microsoft Smooth Streaming enabled format. Here, let&#8217;s focus on the Transform Manager and later in the next part of this tutorial on Expression Encoder Object Model, of course there are more methods – for example you could use <a title="FFmpeg Home Page" href="http://ffmpeg.org/">FFmpeg</a>.</p>
<h3>Expression Encoder</h3>
<p>Since Transform Manager uses <a title="Expression Encoder Overview" href="http://www.microsoft.com/expression/products/EncoderPro_Overview.aspx">Expression Encoder</a> internally you need to install it first. You can download your copy from <a href="http://www.microsoft.com/download/en/details.aspx?id=27870">Microsoft directly</a> or use the Web Platform Installer. Installation is easy and no configuration is needed. The free version of Encoder supports DirectShow Filters and QuickTime (if installed) input video formats. If you want to run Expression Encoder on a Windows Server, you need to install Desktop Experience feature. Oh, if you accidentally forget this, don&#8217;t worry because a nice popup will remind you what to do.</p>
<p><img class="aligncenter size-full wp-image-817" src="http://www.cognifide.com/blogs/wp-content/uploads/2012/01/encoderError2.png" alt="Error - please install Desktop Experience feature" width="411" height="154" /></p>
<p>Of course, if you want you&#8217;d like to have play with the Expression Encoder UI, go ahead but I will stick to the requisites in the conversion scenarios below.</p>
<h3>Transform Manager</h3>
<p>Installation of Transform Manager is again straight forward – just open Web Platform Installer and install it. This software is still in beta, so not everything may work as expected (for example, I had a problem with setting up notifications) but apart from small glitches; Transform Manager does exactly what it should – transforms videos!</p>
<p>After you install Transformation Manager, a new node should appear in IIS Manager (if you don’t see it on your machine, close and open IIS Manager).</p>
<p style="text-align: center"><img class="aligncenter size-full wp-image-818" src="http://www.cognifide.com/blogs/wp-content/uploads/2012/01/transformManagerInstall21.png" alt="Transform Manager Installed" width="650" height="580" /></p>
<p>You should start by specifying the credentials of a user that the Transform Manager can use to log on. This user should have the rights to write to the directories where you want to store your encoded videos. Next step is starting the service.</p>
<p style="text-align: center"><img class="aligncenter size-full wp-image-819" src="http://www.cognifide.com/blogs/wp-content/uploads/2012/01/transformMInstall_first_step1.png" alt="Configuration of Transform Manager" width="650" height="588" /></p>
<p>Now, you need to enable Watch Folders. If you’re using a free version of Expression Encoder then only encoding to VC-1 Smooth Streams is possible so I will focus on that option. Actually you don’t need to change any predefined settings – just select “Video files to VC-1 Smooth Streams”, enable it and Start the Watch Folder. You should also create a virtual directory under your current web application pointing to the same path as Watch Folder. That way you’ll be able to play the video in the browser.</p>
<p style="text-align: center"><img class="aligncenter size-full wp-image-820" src="http://www.cognifide.com/blogs/wp-content/uploads/2012/01/transformMInstall_second_step1.png" alt="Configuration of Transform Manager" width="650" height="462" /></p>
<p>That’s it! The configuration part is over, now it’s time to encode the video. Just drop your file into a directory you just added to Watch Folders (C:\inetpub\media\Transform Manager\Smooth (VC1)\ if you didn’t change it) and observe the conversion process in the IIS Manager.</p>
<p style="text-align: center"><img class="aligncenter size-full wp-image-821" src="http://www.cognifide.com/blogs/wp-content/uploads/2012/01/transformMInstallConversion1.png" alt="Transform Manager - Job Monitor" width="650" height="528" /></p>
<p>Once it’s done you can check the encoded files under {your Watch Folder}\WorkQueue\Finished\{date_GUID}\EE4Output. The folder should contain manifest file (.ism), media streams (.ismv), Silverlight player and a sample html file. If you open it in your browser (using IIS not from the disk!) and you should be able to play your newly encoded video.</p>
<p><img class="aligncenter size-full wp-image-823" src="http://www.cognifide.com/blogs/wp-content/uploads/2012/01/files.png" alt="Encoded Vidoes with support files" width="615" height="412" /></p>
<p>As you can see, setting up the Microsoft Smooth Streaming Server and converting videos using Transform manager is very easy. The only time consuming part is performing the actual conversion. If you plan to have more control over the conversion process than Transform Manager can provide and you&#8217;re not afraid of writing some code then stay tuned for part 3 of this tutorial – Encoding videos using the Expression Encoder Object Model and I promise, it will come with a simple example as well.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cognifide.com/blogs/marketing-technology/microsoft-smooth-streaming-part-2/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Microsoft Smooth Streaming part 1</title>
		<link>http://www.cognifide.com/blogs/marketing-technology/microsoft-smooth-streaming-part-1/</link>
		<comments>http://www.cognifide.com/blogs/marketing-technology/microsoft-smooth-streaming-part-1/#comments</comments>
		<pubDate>Tue, 15 Nov 2011 15:30:42 +0000</pubDate>
		<dc:creator>Kacper Chomicz</dc:creator>
				<category><![CDATA[Marketing Technology]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Smooth Streaming]]></category>

		<guid isPermaLink="false">http://www.cognifide.com/blogs/?p=543</guid>
		<description><![CDATA[The problem A few times each year Cognifide hosts an internal conference where employees can share their knowledge and ideas giving short presentations. The form is similar to TED conferences so each person has about 15 minutes to present her or his topic. The last two events were recorded, giving people who couldn’t attend or [...]]]></description>
			<content:encoded><![CDATA[<h2>The problem</h2>
<p><img class="size-medium wp-image-559 alignright" style="margin-left: 10px;float: right" src="http://www.cognifide.com/blogs/wp-content/uploads/2011/11/presentation.jpg" alt="Teaser - presentation" width="196" height="255" />A few times each year Cognifide hosts an internal conference where employees can share their knowledge and ideas giving short presentations. The form is similar to TED conferences so each person has about 15 minutes to present her or his topic. The last two events were recorded, giving people who couldn’t attend or work in different locations an opportunity to participate.</p>
<p>The first time we put all the videos on a shared network drive, for everyone to download, but it turned out almost nobody did. Another problem was sharing those presentations with our clients or partners – sending a link to the video file didn’t actually encourage people to download and watch it.</p>
<p>Last time we decided that we need to do it better; that we need to give everyone who could be interested in those talks the best possible experience, best quality and do it as fast and as cheaply as we can.<span id="more-543"></span></p>
<h2>The solution</h2>
<p>For starters we had a Windows 2008 based server, about a day of free time and a group of really excited people. Our solution had to support all major browsers, iPhones and iPads, be easy to set up and give us an opportunity to learn something in the process.</p>
<p>We started by gathering requirements &#8211; our solution:</p>
<ul>
<li>Should be free or inexpensive,</li>
<li>Installation should be fast and easy,</li>
<li>Should offer the best possible quality,</li>
<li>Should work on all major browsers, iPhones and iPads.</li>
</ul>
<p>After initial investigation we decided to go with Microsoft Smooth Streaming mainly because it complies with our requirements and above that:</p>
<ul>
<li>Almost no configuration is needed,</li>
<li>Quality depends on client’s capabilities and network conditions (adaptive streaming),</li>
<li>HTTP based (easy to cache video fragments on edge servers),</li>
<li>This technology constantly evolves and new features are introduced in each release,</li>
<li>Encoding of videos can be done using Expression Encoder or any other software like ffmpeg,</li>
<li>Transform Manager, an IIS extension, can be used to automate the encoding process (works almost out of the box),</li>
<li>Videos work on all Silverlight enabled devices and on iPhone and iPad.</li>
</ul>
<p>After choosing the technology the rest was straight forward. We installed everything using Web Platform Installer and used Transform Manager (and Expression Encoder) to handle video conversion. A simple web application was set up using Cognifide’s HTML templates and we were ready to go.</p>
<p>Check below for a Smooth Streaming Demo and more technical details about this technology.</p>
<p>In the <a title="Microsoft Smooth Streaming part 2" href="http://www.cognifide.com/blogs/technology/microsoft-smooth-streaming-part-2/">second part of this article</a> I will show how to set up the server, encode files and experience Smooth Streaming.</p>
<h2>Demo site</h2>
<p>Microsoft prepared a great demo site for everyone to <a title="Experience Smooth Streaming" href="http://www.iis.net/media/experiencesmoothstreaming1080p" target="_blank">experience Smooth Streaming</a>. You can play with the player to check how this technology works in practice – just limit the Bit Rate and observe what happens with the quality of the video. The Bit Rate Graph will show you available bit rates and the one currently playing. Of course you can play, pause, seek and watch this video in full-screen mode.</p>
<p>For more advanced applications including multi-cam, presentation and an iPhone example check the new <a title="IIS Smooth Streaming Showcase" href="http://www.microsoft.com/silverlight/iis-smooth-streaming/demo/" target="_blank">IIS Smooth Streaming Showcase</a>.</p>
<h2>In-depth overview of Microsoft Smooth Streaming</h2>
<p>The idea behind Smooth Streaming is very simple – the encoded media file is split into small chunks by the IIS Server and those chunks (usually about 2 seconds long) are sent to clients over HTTP, thus enabling easy CDN usage, low cost caching on standard proxy servers near network edge and eliminating firewall problems. During the encoding process multiple streams are created for the client to choose from based on local conditions. This process happens in real-time, resulting in high quality glitch-free video playback, making true HD experience possible.</p>
<p style="text-align: center"><img class="aligncenter size-full wp-image-572" src="http://www.cognifide.com/blogs/wp-content/uploads/2011/11/overview_resized.png" alt="Smooth Streaming - overview" width="540" height="404" /></p>
<p align="center">Images courtesy: <a href="http://www.iis.net">http://www.iis.net/</a></p>
<p>For a more detailed description of Smooth Streaming including its historic background check out Alex Zambelli’s <a title="Technical Overview" href="http://download.microsoft.com/download/4/2/4/4247C3AA-7105-4764-A8F9-321CB6C765EB/IIS_Smooth_Streaming_Technical_Overview.pdf" target="_blank">technical overview</a>. All that is needed to benefit from Smooth Streaming on the client side is a device – PC, Mac or WP7, web browser and Silverlight plugin, iPhones and iPads are also supported. Unfortunately at the moment Silverlight isn’t supported on Android devices but in April on Mix 11 conference Moonlight team showed a <a title="Mono Silverlight port for Android based devices" href="http://jeffreystedfast.blogspot.com/2011/04/moonlight-on-android.html" target="_blank">working port</a>.</p>
<p>At this point you are probably thinking about setting everything up and encoding your own videos. In that case &#8211; stay tuned for <a title="Microsoft Smooth Streaming part 2" href="http://www.cognifide.com/blogs/technology/microsoft-smooth-streaming-part-2/">part two</a>!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cognifide.com/blogs/marketing-technology/microsoft-smooth-streaming-part-1/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
