Migrating Microsoft Smooth Streaming to Amazon CloudFront—a content delivery network (CDN) service built for high performance, security, and developer convenience—for video on demand (VOD) and live streaming is a conversation that we have had with many of our customers. During the past few years, several CDN providers have begun to remove support for Smooth Streaming. Customers tell us that Smooth Streaming continues to be an important delivery technique, and this represents a significant business challenge for many of them. Some customers have end-consumer devices, such as set-top boxes, that depend on Smooth Streaming. It’s not possible to update devices to use newer streaming protocols. Some customers are therefore choosing to take advantage of Amazon CloudFront for Microsoft Smooth Streaming. Other customers are looking at real-time packagers to provide VOD and live streaming using Amazon Web Services (AWS) solutions. One of these solutions is AWS Elemental MediaPackage, which creates video streams formatted to play on connected TVs, mobile phones, computers, tablets, and game consoles.

In this post we describe how to use the Amazon CloudFront CDN to provide Smooth Streaming support for your end consumers, including the best practices and overall considerations for successful migration.

We start with an overview of live and on-demand video workflows. For VOD we explain how you can either migrate your content or use Amazon CloudFront with your existing VOD origin. We then describe preparing, packaging, and encrypting your media assets. Finally, we show how to create an Amazon CloudFront distribution for Smooth Streaming and describe how Amazon CloudFront Origin Shield can simplify multi-CDN deployment.

Solution architecture

Architecture diagram showing live streaming and video on demand workflows feeding separate Amazon CloudFront distributions. VOD shows ready packaged assets and choice of S3 or Custom Origin

Figure 1: Live Streaming and VOD architecture for Smooth Streaming

VOD origin storage

The simplest way to create a VOD origin for Smooth Streaming is to store prepackaged content in Amazon Simple Storage Service (Amazon S3), an object storage service offering industry-leading scalability, data availability, security, and performance. If you need to retain your existing custom streaming server applications or third-party packager solutions, you can migrate these to Amazon Elastic Compute Cloud (Amazon EC2), which provides secure, resizable compute capacity in the cloud. AWS has a variety of solutions for migrating media content from your on-premises archive to AWS, including the following:

  • AWS VPN, which establishes secure connections between your on-premises networks, remote offices, client devices, and the AWS global network;
  • AWS Direct Connect, a dedicated network connection to AWS, with AWS DataSync, which simplifies and accelerates secure data migrations; or
  • AWS Snow Family, a family of highly secure, portable devices to collect and process data at the edge and migrate data into and out of AWS.

You can transcode your VOD content and package it for Smooth Streaming using AWS Media Services—a suite of services that make creating, transforming, and delivering digital content fast and easy—before uploading your content to the origin. AWS Elemental MediaConvert, a file-based video transcoding service with broadcast-grade features, can be used to transcode the video into Smooth Streaming and other formats. Depending on your access patterns, a just-in-time packager such as AWS Elemental MediaPackage can simplify operations and reduce your storage needs. Our AWS Partners also provide alternate transcoding products.

Diagram showing live streaming workflow for smooth streaming. The output of MediaLive is HLS, then MediaPackage is configured with a Smooth Streaming endpoint to deliver to CloudFront

Figure 2: Workflow for live streaming. Note the HLS output from MediaLive and the Smooth Streaming endpoint

VOD Smooth Streaming using Amazon CloudFront

You can deliver Smooth Streaming with Amazon CloudFront for VOD without providing your own Microsoft IIS layer by using built-in support from Amazon CloudFront for Smooth Streaming. This feature activates when you check the Smooth Streaming option in the steps below.

Note: If you prefer to build and maintain your own Microsoft IIS layer or intend to use AWS Elemental MediaPackage as the origin, you will need to create or use a CloudFront distribution without selecting this feature.

Let’s walk through how to deliver VOD Smooth Streaming using built-in support from CloudFront for on-demand Smooth Streaming:

  1. Begin with your already-transcoded video in the Smooth Streaming fragmented MP4 format, a collection of files: one MP4 (.ismv for video, or .isma for audio) file per bitrate, a server manifest file (.ism), and a client manifest file (.ismc). If you need to convert your content to Smooth Streaming, you can transcode it using AWS Elemental MediaConvert.
  2. Upload the files to an Amazon S3 bucket.
  3. Create an Amazon CloudFront distribution for the origin.
  4. Facilitate Smooth Streaming by creating a new cache behavior and checking Smooth Streaming:
Screen shot of CloudFront console for configuring cache behavior

Figure 3: Configuring cache behavior for Smooth Streaming

Screenshot of CloudFront console. Shows selecting Smooth Streaming

Figure 4: How to configure origin for Smooth Streaming (see text to understand if you need to select the Yes option)

  1. Embed a Smooth Streaming video player in your webpage or mobile app and reference the URL of the distribution and the name of the client manifest file.

Important:

If you specify a web server running Microsoft IIS as your origin, do not activate Smooth Streaming in the cache behaviors of your Amazon CloudFront distribution. CloudFront can’t use a Microsoft IIS server as an origin if you activate Smooth Streaming in the cache behavior.

See the Amazon CloudFront Developer Guide for more information on using the Smooth Streaming feature.

VOD and Live Smooth Streaming using AWS Elemental MediaPackage and Amazon CloudFront

You can use AWS Media Services with Amazon CloudFront to deliver live streaming content including Smooth Streaming. This is possible by using the following services:

Use either of these services to bring source feeds into AWS. Then use AWS Elemental MediaLive, a broadcast-grade live video processing service, to encode live video streams in real time.

First let’s look at live content delivery in AWS Elemental MediaPackage. AWS Elemental MediaPackage supports endpoints in multiple formats for different device types, including Smooth Streaming, HLS, CMAF, and MPEG-DASH. You can also run third-party packagers as origins on Amazon EC2.

AWS Elemental MediaPackage also provides VOD content delivery for Smooth Streaming. This is not required when migrating existing content for Smooth Streaming but might be something to consider in the future. For situations in which you have media assets in multiple different formats, we recommend using AWS Elemental MediaPackage to efficiently optimize storage and delivery.

Configure AWS Media Services and Amazon CloudFront for Live Smooth Streaming

  1. Create an AWS Elemental MediaLive channel to transcode the live video source and package your input into specific outputs. For more information, see https://docs.aws.amazon.com/medialive/latest/ug/creating-channel-scratch.html.
Screenshot of AWS console for AWS Elemental MediaLive. Shows configuration for channel details and HLS output group with ABR ladder

Figure 5: AWS Elemental MediaLive configuration

  1. Create a MediaPackage channel to start receiving content streams, and then add an endpoint to the channel. This endpoint is the access point for content playback requests. At this stage, the input stream into MediaPackage will be HLS, and the output will be in Smooth Streaming format. For more information, see https://docs.aws.amazon.com/mediapackage/latest/ug/channels-create.html.
Screenshot of AWS console for AWS Elemental MediaLive. Shows configuration for channel details and HLS output group with ABR ladder

Figure 6: AWS Elemental MediaPackage configuration

  1. Create a new Amazon CloudFront distribution, with the MediaPackage channel as origin. You should not activate the Smooth Streaming option in Amazon CloudFront. If you activated Amazon CloudFront distribution creation from the AWS Elemental MediaPackage console and this is your first endpoint on the channel, MediaPackage adds an origin to the distribution.

See the MediaPackage User Guide for more details.

Protect your content with digital rights management

When you package content, either live or VOD, you can add digital rights management (DRM), such as PlayReady, to prevent unauthorized use of your content. You can protect your live content with the encryption afforded by DRM key providers’ DRM technologies. This can be configured through AWS MediaPackage using Secure Packager and Encoder Key Exchange (SPEKE), which lets content providers to use a wide range of DRM key providers to protect their content.

Origin Shield (HTTP on-premises and multi-CDN)

Amazon CloudFront includes regional edge caches (RECs) to help protect origins from excessive origin load by providing regionalized midtier caching at no additional cost by default. The RECs automatically protect your origins and collapse requests within the region they cover.

Amazon CloudFront Origin Shield is an optional feature that provides a centralized caching layer that sits in front of your origin to help increase cache hit ratio from Amazon CloudFront and collapse simultaneous requests for the same object coming across multiple RECs. Amazon CloudFront Origin Shield can be used to protect your origin in a multi CDN deployment for individual origins within Amazon CloudFront distributions, and also supports origins outside AWS. Origin Shield must be activated in the AWS Region closest to your origin.

Conclusion

In this post you have learned about migrating Smooth Streaming workloads to Amazon CloudFront and now understand the preparation phase and how to create an Amazon CloudFront distribution for Smooth Streaming.

If you are ready to migrate your Smooth Streaming workloads to Amazon CloudFront, please talk with your AWS team or contact us.

Further Reading