In this blog we will see the Live Streaming capability of Windows Azure Media Services (WAMS) which has recently been released under preview on Sep 10th.
Prior to this capability there were other ways to provide live streaming like using IIS Media Services, but its configuration turns complex when the need is to provide a scalable and reliable (backup & failover paths) solution. Now with WAMS, "you now have everything you need to quickly build great, extremely scalable, end-to-end media solutions for streaming on-demand video to consumers on any device.
Architecture:
At a high level, the Live Streaming architecture consists of three components: Channel/Program, Storage and Streaming Endpoints.
Channel/Program- Channels enable live streaming. They include the ingest point for your live encoder. As of today RTMP and Fragmented MP4 (Smooth Streaming) are the supported ingest protocols. A program is the logical component inside a channel. Program publish the received data for streaming and also archive the content.
Streaming Endpoint and Streaming Units- a Streaming Endpoint provides you with a URL from which you can pull your live assets. Streaming Endpoints also provide dynamic packaging capabilities and secure the delivery of the streams.
Storage- Programs use Azure storage for storing live archives. On-demand streaming and encoding services also use storage.
How to configure Live Streaming:
Steps:
- Create a new Media Service by clicking New -> Media Service -> Quick Create
- Once the service is created click the service name which will show the screen as below. There are new tabs like Streaming Endpoints and Channels. Let’s see what are these individually
Note:
- While you create your media service a default streaming endpoint is already created for you but you can add more and configure it
- The default streaming endpoint cannot be deleted
To configure the streaming endpoint click on the default endpoint (or the new one you just added). Under the configure tab “Streaming allowed IP addresses” you can add a rule which IP’s can access the published streaming endpoint. If no rule is provided the endpoint has public access.
For Scaling details can be referred here
Once you have configured Streaming Endpoint make sure the status of the endpoint is running .
Channels: A Channel is used to stream live content from an Origin over HTTP. For example, you can stream a sporting event to an audience that is using various devices such as a phone, tablet, computer, or XBox. The stream employs adaptive bit rate streaming to allow clients to request different bitrates on a moment to moment basis. The stream must be encoded with a live encoder. The encoder must be configured to connect to the Ingest URL.
Ingest URL - When the Ingest URL is available, copy it and connect your encoder to the URL.
Preview URL - Once a video source is connected through the Ingest URL, you can monitor the live stream using the Preview URL. The event does not start streaming until you push Start Streaming.
Start Streaming - The following actions occur after clicking Start Streaming
- A new Program is created
- A new Asset is created and associated with the Program
- The Channel starts
- The Publish URL is created and appears in the UI
- Click on the “Create New Channel”
- Once created, the ingest and preview URL’s will be shown
- Copy the Ingest URL and paste it in the input encoder (example: I am using Expression Encoder here)
- Now we are almost ready to start/send live streams just need one more extra step to publish these live streams to users.
Go to Azure Portal and select the Media Service -> Channels -> click Start Streaming button
- Using the smooth streaming player live streaming can be viewed on the player.
Live Streaming Video Snapshots:
Below image shows the encoder pushing live streams and it automatically plays on the azure website.
I have created a video log which can be found here.
Pricing Details:
Pricing information for Live Streaming can be found here.















