×

First time here?

You are looking at the most recent posts. You may also want to check out older archives. Please leave a comment, ask a question and consider subscribing to the latest posts via RSS or email. Thank you for visiting!

Many have inquired if Silverlight Live Streaming had a replacement since the announcement of it being deprecated.  The SLS team blog pointed to Azure as a possible solution.  Since it doesn’t seem like anyone except James has really tried this, I decided to dust off my Azure account information and give it a try.

First, a note about SLS.  As I’ve said before I don’t think the offering was named very well from the start.  “Streaming” implies a specific technical connotation to most folks.  In fact, the media (or other files) hosted on SLS were never streamed as you might be thinking they were.  It was always a media file hosted on a content delivery network (CDN) and distributed delivered via basic progressive download…not streamed.  Now that we got that out of the way, let’s move on.

Setting up Azure

I’ll be honest.  I’m not sure how you go about getting an Azure token/invite at this point.  But you’ll need one.  Those who attended PDC08 already have access to one.  I believe MSDN subscribers will have access at some point but I don’t see it enabled on my account just yet either.  Bottom line is you’ll need an invitation token.  I cannot help you in this regard, so don’t even ask…I wish I could, but I can’t.

Once you have an Azure account, you want to create a Windows Azure Storage instance and give it a name.  I recommend not using special characters in the name as some of the tools I’m explaining below had problems with that.  I gave mine a simple name “timheuerblob1” and let it provision.

Azure Storage Account creation

Once you have that you’ll see a bunch of configuration screen details:

Azure configuration details

I’d recommend doing the following tasks first before you proceed.  In the bottom you’ll see an option to enable CDN.  For this purpose of hosting files/storage I recommend putting it on.  Additionally, this provisioning of CDN can take some time so do that first.  The next step is to configure your custom domain names (if you’d like) to map to the CDN and/or blob storage endpoints.  This is a simple/fast process but requires you to understand DNS entries and have the ability to modify your domain’s DNS information.  You can find step-by-step instructions at Steve Marx’s blog post here.  Without enabling this CDN feature, you really aren’t going to get the same level of scale as you did with SLS.

The key things you will need for the next part are the Primary Access Key and the Endpoints.  Make note of them.

Tools to upload content

Windows Azure blob storage is exactly what it says: storage.  Right now there aren’t any provided tools from Windows Azure to really manage the contents of the storage blob containers (unless I’m mistaken, and if so, please correct me).  There is an API for you to get access to and publish content, but if you’re wanting to use it like an SLS replacement you’re likely hoping for an easy tool to upload/manage the contents.

Enter two tools: Azure Storage Explorer and Cloud Storage Studio.  Both of these are Windows clients (WPF incidentally) and are installed on your machine.  Cloud Storage Studio actually has an online version if you wanted to use that offering.  I did not try that tool as I’m okay using a client tool.

Azure Storage Explorer is a CDDL licensed CodePlex project (which actually has no source code checked in at this point) provided by Neudesic – a Microsoft partner.  It is a simple UI that requires you to input your blob storage name, access key and endpoints in the Storage Settings dialog.  I initially had problems with this as my name had a special character in it.  I deleted my initial (and old) instance and recreated a new one in Azure and didn’t have problems after that.

Azure Storage Explorer screenshot

It was pretty simple to use and understand.  Create a container, upload stuff into it.  Done. 

Cloud Storage Studio is a commercial offering and unclear if it is going to be free always or just in CTP mode right now.  I couldn’t find information that jumped out at me on their site to let me know. 

Cloud Storage Studio screenshot

Cloud Storage Studio wouldn’t let me resize the window and that was frustrating.  Other than that it operated as expected, same thing – blob container select and upload.

While both tools were providing me basic blob container and upload capabilities, I felt the upload was slow (comparing to my Amazon S3 experience in creating a tool for content management).  I’m not sure if that was the app, Azure, or the nature of the API.  Also, neither tool seemed to enable me to set the content-type of the contents of the blob I was uploading.  I see this to be a problem for some.  The default of application/octet-stream isn’t going to work for all scenarios (for example I cannot use it to host XAPs and embed them because I would need to be able to set the content-type header).

Side note: Be sure to check out James Clarke’s CodePlex work on a Windows PowerShell script that will do encoding via Expression Encoder and then trigger a publishing plugin – such as one that will automatically upload to an Azure blob storage account.

Other than that, they served the need of filling the gap for a UI tool that already worked out the API stuff.

UPDATE: CloudBerry for Azure

I cannot believe I didn’t know about this one, since CloudBerry is what I use for my Amazon S3 storage and is AWESOME.  I was directed to CloudBerry for Azure Blob Storage (oddly by their competitor above) and I downloaded it immediately. 

CloudBerry Azure Blob Storage explorer

It met every expectation I had and has been the fastest client.  To me, the other clients must meet this bar of functionality *for blob storage interaction* to be considered for me to use.  The one thing it doesn’t have is custom CDN URI generation in its “WebURL” functionality – but I suspect this might be an Azure API limitation (I’m not familiar with the Azure API).

UPDATE 2: Cloud Storage Studio

Be sure to read the comments below from the team at Cloud Storage Studio.  They were kind enough to reach out to me to clarify some things above and listen to my feedback.  They are ACTIVELY looking to improve their product and provide value-add to Azure users/developers.  I sincerely appreciate when people reach out to their customers for feedback.  It’s been a great dialog with them helping them understand how I would use Azure and what my tools needs might be.

My Silverlight media test

Using my new found tools and some sample media files I uploaded a 720p high-def 30 second clip (30MB) to my blob storage account.  I then used put together a page with a simple player and pointed it to the Azure-hosted media.  I first pointed the media player to the basic blob endpoint.  The result of which is here: Non-CDN Hosted Media Playback.

Users who tested it with me said that the video buffered quite a bit and in remote areas (Australia) it took about 1.5 minutes to download the video.  This is again because this is still not streaming but just progressive download.

I then changed the media URL to the CDN version (after waiting 24 hours for propagation, etc. just to be sure) and have the CDN Hosted Media Playback.

I have to be honest and say that the CDN versions seemed to be better at consistent playback after the initial buffer of video (i.e., I received no more future buffering).  I’d be curious as to what other international people see on the CDN version as it would give a better view of how well the CDN delivers content globally.

Summary

I’m not sure if this will be a solution for everyone, but if you are looking for a Microsoft offering for cloud/CDN storage, give Azure a try.  NOTE: It is not a free service once it goes into production!  In fact, most CDN/cloud storage solutions you will find are not.  I’m currently using Amazon S3 for mine and have been for a long while.  It, too, is not free.  (Here’s the Amazon S3 CloudFront version of same media file.)  Again, here are the links to the three different video hosted locations/tests I did:

Either way, now that SLS is gone as a CDN/free hosted service where many were putting their media, you’ll have to look for another option.  Azure is one of those options.  Does it provide an automatic skin for a media player?  No.  You’ll have to do that yourself.  Is it streaming?  No, but neither was SLS.  Is there streaming/smooth streaming on the horizon?  I don’t know…but it would be cool if there was!

Hope this helps.


This work is licensed under a Creative Commons Attribution By license.


11/30/2009 10:58 AM | # re: Using Azure as a Silverlight Streaming replacement
Hopefully we'll see Azure supporting Smooth Streaming as well as progressive download before too long... the other alternative at the moment seems to be wait for EC2 to offer Windows Server 2008 and install the IIS Media Pack ourselves ... seems like overkill :)
12/1/2009 12:01 AM | # re: Using Azure as a Silverlight Streaming replacement
Nice walk thru!
12/1/2009 2:49 AM | # re: Using Azure as a Silverlight Streaming replacement
Thanks, this is a really good tutorial for hosting media files on Azure. It's so simple, anybody could do it.

I hope Microsoft will add some simple upload tools to the Azure web UI, that would really help with mainstream adoption. I did an experiment using a bit of a hack to host video files on SkyDrive and surface them on the web e.g. through SL2VideoPlayer -- I think you'd be surprised how much interest I had from others wanting that sort of solution.
12/1/2009 6:00 AM | # re: Using Azure as a Silverlight Streaming replacement
Ow that progressive download suck's on Brasil.

Nothing compared to Smooth Streaming.

Thanks Tim.
12/1/2009 9:06 PM | # re: Using Azure as a Silverlight Streaming replacement
Here in New Zealand, both the Azure hosted examples stopped to buffer about 5 times.
The Amazon S3 example played through after initial buffering with out stopping.

Thanks.
12/4/2009 7:13 AM | # re: Using Azure as a Silverlight Streaming replacement
This is nowhere near a replacement for AWS which I also use. But I like the little shove you're trying to give to Azure I really hope it blosoms.
12/4/2009 8:21 AM | # re: Using Azure as a Silverlight Streaming replacement
Rob -- I'm a long time user of AWS as well (you'll notice all my content on my site is delivered via cloudfront) -- but for my use describing above, how can you say Azure is 'nowhere near' AWS (assuming you mean S3)? It's distributed blob storage over a worldwide CDN in ~ 100 countries.
12/7/2009 11:33 AM | # Using Azure Storage + Smooth Streaming
Regarding your last comment about Smooth Streaming I was able to put the Big Buck Bunny demo in my Windows Azure Storage: http://www.aldentorres.com/video/big-buck-bunny/

In order to support it natively I think it is necessary another concept at the level of Blob, Table and Queue but Block and Page Blobs are close to VOB and Live streaming respectively.

Thanks for this illustrative example for progressive download.
12/7/2009 11:14 PM | # re: Using Azure as a Silverlight Streaming replacement
Alden -- wow. cool.
12/12/2009 2:53 AM | # re: Using Azure as a Silverlight Streaming replacement
Looks like Amazon EC2 just relaesed Windows 2008 images so that is going to be the way I'll setup streaming.

I think Azure are dropping the ball on not offering Streaming or at least outlining their plans for the future.
1/3/2010 6:10 PM | # re: Using Azure as a Silverlight Streaming replacement
Tim - With now streaming from CloudFront this is a step at least ahead.
Also with AWS all the tools and infrastructure are in place and proven in the market for years now.
I would really like the Azure application model to work because for standalone or small companies the beauty of passing all the complexity to AWS or Azure is a real winner. Until this is solid and proven in the field I really can't see a compelling reason to move from AWS which has worked like a charm in a live environment for years now.
1/26/2010 9:39 AM | # re: Using Azure as a Silverlight Streaming replacement
Thankyou tim good explanation was
1/27/2010 1:14 AM | # re: Using Azure as a Silverlight Streaming replacement
Is azure better than siverlight stream?
1/30/2010 3:39 PM | # re: Using Azure as a Silverlight Streaming replacement
Nice walk thru! Thanks..
10/1/2011 11:48 PM | # re: Using Azure as a Silverlight Streaming replacement
Over the past month, I received a couple of tips claiming that Apple was a Windows Azure customer.

At first, I just dismissed the tips as nothing but a crazy rumor. Then I got more serious and started asking around, to no avail.

But once Apple launched the beta of its iCloud iMessage service, the Infinite Apple site, along with a few other blogs, analyzed the traffic patterns and found that Apple appeared to be using both Azure and Amazon Web Services for hosting.

“We don’t believe iCloud stores actual content. Rather, it simply manages links to uploaded content,” according to an updated June 13 Infinite Apple post.

I asked Microsoft for comment and was told the company does not share the names of its customers. I asked Apple for comment and heard nothing back.

http://whatisthebestdogfood.org

 
Please add 1 and 2 and type the answer here:

DISCLAIMER:

The opinions/content expressed on this blog are provided "ASIS" with no warranties and are my own personal opinions/content (unless otherwise noted) and do not represent my employer's view in any way.