Skip to main content

Cloud

Azure Media Services: Live Streaming Video Experience

Did you watch the 2014 Sochi Winter Olympics online? Maybe you caught a bit of the 2014 FIFA World Cup from the office on your laptop? Perhaps you watch an occasional Sunday Night Football game from the in-laws on your tablet. If so, you’ve consumed Azure Media Services Live Channels Media Streaming. ams
This service powers all sorts of public live media streaming services from NBC, the NHL, NFL, FIFA and many other partners. It has been available to us for a while now, in preview mode, and we at Perficient have been unable to discuss it – until now. On Thursday, Microsoft announced the general availability of Live Channels! Here’s a link to Scott Gutherie’s blog.
Live streaming is a very very cool, and rather difficult to harness technology. There are limitless application possibilities in today’s ever mobile, and connected world for live streaming. And up until now, actually using that technology – at a reasonable price point – was difficult.
Azure removes the primary barrier. You no longer have to build your own internal server farm to support a streaming media solution. The amount of servers, processing power, and storage required to host your own streaming service is massive. With Azure Media Services, Microsoft has built and manages all that hardware for you. And provides the service at a very affordable price point.
At Perficient, we have a number of customers using Azure Media Services. We’ve built some great custom applications that service video from Azure to multiple different endpoints, including SharePoint. Our Architects are envisioning exciting new solutions with our customers everyday. We are very excited about the general availability of this technology and what possibilities that opens for our customers.
To get started with Azure Media Services and Live Channels Streaming, contact us at Perficient, and one of our certified Azure Architects can help envision your Live Streaming Solution!
Also, you’ll want to check out the Azure Media Services Page and the Live Streaming section on MSDN.
AMS Live Streaming
There are many components to the live streaming service, as described by Jason Suess, Principal Program Manager for Azure Media Services at Microsoft –
Azure Account and Subscription– If you don’t yet have a Microsoft Azure account you will first need to create one by going to http://azure.com, there is a free trial available if you want to try before you buy.
Azure Media Services Account– If you don’t yet have a Media Services account there are some instructions on how to create one at http://azure.microsoft.com/en-us/documentation/articles/media-services-create-account/
Video Camera– In my case I’ll use the web cam on my laptop but just about any camera will work.  If it has a digital output like USB you should be able to connect it directly to your PC to encode its output, if not you’ll need a video capture card.
Live Encoder– Currently Azure Media Services supports two live ingest protocols, fragmented MP4/Smooth Streaming and RTMP.  RTMP has become very pervasive and thus there are a large range of options including free encoders like Flash Media Encoder or FFMPEG, inexpensive encoders like Wirecast, high production value products like NewTek’s Tricaster, all the way up to professional grade encoders from Cisco, Elemental, Image, etc.  For the sample below I will use my laptop with a copy of Telestream’s Wirecast installed.  If you don’t have an encoder already you can download a copy of Wirecast from their site and they offer a trial license.  Note that video encoding is a very CPU intensive operation so since I’m doing the encoding on my laptop I’ve limited my encoding to three quality levels and relatively low bit rates.  If you’re going to be using a laptop or other PC with fairly low CPU horsepower you should monitor CPU utilization, if it is consistently above ~70% you should remove a quality level or lower the bitrates and resolutions of your encoding profiles.
High Speed Internet Connection– To push out live video you need an internet connection which has a fairly stable outbound speed at least 1.5x the bit rate of the video you want to send to us, to account for fluctuations in the bit rate of the encoder’s output.  So for example in the solution we build below I am using three quality levels (“renditions”) of my live stream, 400, 600, and 900 Kbps, combined the aggregate bitrate is 1900Kbps so I need to have at least 2850Kbps (2.85Mbps).
Azure Media Services Channel– Channels are the only thing new in Azure Media Services which enables live streaming.  They are the component within our service which provides you with an ingest point for the output of your encoder.
Azure Media Services Asset– An Asset in Media Services is the container for storing all audio and video as well as metadata associated with your stream.
Azure Media Services Program– A Program is an entity in Azure Media Services that you create on a channel in order to start writing the stream being received on the Channel to an Asset.
Azure Media Services Streaming Locator– You create a Locator on an Asset when you want to make it available for streaming.
Azure Media Services Streaming Endpoint and Streaming Units– A Streaming Endpoint provides you with a URL from which you can pull your live and VOD assets.  Streaming Endpoints also provide our dynamic packaging capabilities and secure the delivery of the streams.  Streaming Units are provisioned into Streaming Endpoints to provide it with a guaranteed maximum amount of throughput.  Each Streaming Unit provides 200Mbps of streaming egress capacity and you can add more to your Streaming Endpoint as needed to increase its capacity.
Azure CDN– In the very near future we will be directly integrating Azure CDN with Azure Media Services.  When done there will be a new setting on Streaming Endpoints that will allow you to specify if you want us to automatically provision a CDN endpoint connected to your Streaming Endpoint.  In the meantime you can stream directly from your Streaming Endpoint or contact us through Azure support to have us setup Azure CDN for your Streaming Endpoint.
Video Player– Azure Media Services Streaming Endpoints provide dynamic packaging capabilities which enables you to output your live stream using the streaming protocols needed for each of the devices you want to reach.  In the solution we’ll build below I will use an HTML5/DASH.js player with MPEG-DASH for all platforms (desktop browser, Android, and Windows Phone) other than iOS where I will use HLS version 3.    For more information on our dynamic packaging capabilities take a look at Nick’s Channel9 video and our MSDN documentation.
 

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Joe Crabtree

More from this Author

Follow Us
TwitterLinkedinFacebookYoutubeInstagram