Choosing the right AWS live streaming solution for your use case
In July last year, AWS launched Amazon Interactive Video Service (Amazon IVS), a managed live streaming platform for creating low latency interactive streaming services. While Amazon IVS is a great addition to the existing AWS Media Services for building live streaming experiences, I am often asked by customers which option is best for their given use case.
I first like to understand the customers’ business goals, core technical competencies, and application requirements. If I’m talking to a broadcaster, putting video technology together is likely something they have done before. They may already have some of the components in place and often desire the ability to pick and choose capabilities to deliver premium video quality along with a high degree of control. This makes the building block approach of the AWS Media Services ideal because they provide flexibility both in terms of how they are used to create a full video pipeline, and the level of control within each service (such as fine grained encode settings). Conversely, if an ecommerce provider wants to use live video to increase user engagement around product promotions, they may not have experience with video technology, as it isn’t core to their business. In this instance, Amazon IVS is a great choice because it handles all of the video processing and delivery functions, making it very easy to get started.
Many customers fall somewhere in between these use cases and the decision on which service to use is more nuanced. Before looking at the technical drivers for choosing one option over another, let’s look at the range of relevant AWS services from the perspective of their function within a live streaming architecture.
I like to begin by looking at either end of this video delivery chain. If you are planning to build a new live service, where and how are you creating the video? Are you contributing the source video from a remote location? If so, do you have or need technical resources there? AWS Elemental Link greatly simplifies the process of getting video from a camera into the AWS Cloud for processing. Just plug in SDI or HDMI from a camera, along with power and an internet connection, no on-site configuration or setup required. Elemental Link then becomes a source to AWS Elemental MediaLive and is centrally controlled via the AWS Management Console or APIs. Perhaps you are building an app based around user-generated live content, in which case you don’t have any control over where and when video streams are created. In this case, Amazon IVS is the perfect option, as it allows you to create channels that lay dormant until a user starts streaming video content and automatically stops them again when the input stream is stopped. This greatly simplifies orchestration and you are only charged for the time channels are active.
Now let’s jump to the other end of the video pipeline. Where is your audience located and what devices are they using? If you are delivering to web and mobile devices, Amazon IVS offers a player SDK for a consistent experience across web, iOS, and Android platforms. It maintains low latency and generates events when new interactive metadata arrives (more on that shortly). If you intend to deliver your live stream to a wider range of devices such as gaming consoles and connected TV’s, then AWS Media Services produce standards-compliant streams that can be consumed via a broad range of devices and third-party players.
For the other workflow components in the middle (for example transcoding through distribution), if you already have a product or service managing one or more of these functions that you are happy with and want to retain, AWS Media Services allow you to do that. They are standards-based and, with the exception to Elemental Link that functions in conjunction with MediaLive, can be used in isolation of each other. Amazon IVS on the other hand, manages these capabilities completely on your behalf, consumable via simple APIs.
Rather than stepping through the merits of each of the services in the preceding diagram, the following are a number of common functional requirements that come up in customer conversations:
Amazon IVS: This is obviously a cornerstone feature of Amazon IVS. Interactivity is enabled via a flexible metadata API used to insert interactive elements into the video stream. When used with the player SDK, it makes it easy to drive updates to your application based on what’s happening in each moment of the video. You can create polls, update product carousels, display viewer counts and much more.
Other AWS Media Services: While interactivity is technically possible using some of the other AWS Media Services, it requires more custom work on your behalf to trigger metadata insertion, pass this through the video pipeline, and to detect and trigger action within your application. As a possible alternative depending on your application, both Elemental Live and MediaLive support rendering on screen graphics from HTML5 locations. This technology can be used to insert scoreboards or other visual elements from external data sources as part of the video content.
Amazon IVS: Low latency is another core feature of Amazon IVS. The platform, combined with the player SDK, typically deliver glass to glass (camera to screen) latency under 5 seconds.
Other AWS Media Services: AWS Media Services are standards-based and are ideal when delivering services to native players such as Apple’s AVPlayer, Google’s Shaka player, or other commercial or open-source offerings. AWS Elemental Live supports low latency DASH. When it is paired with AWS Elemental MediaStore, Amazon CloudFront, and a player that supports DASH with chunked mp4 fragments, it is possible to achieve glass to glass latency as low as two seconds.
Amazon IVS: While Amazon IVS does not offer an option to encrypt content at this time, it does provide a mechanism to secure access to channels by authorizing playback sessions. For more instructions on how to restrict viewer access, refer to setting up private channels in the IVS user guide.
Other AWS Media Services: AWS Media Services offer a wide range of content protection options via the Secure Package Encoder Key Exchange (SPEKE) protocol. This means customers can protect their content across multiple formats using standard encryption methods (Apple Fairplay, Microsoft PlayReady, and Google Widevine) via a range of specialist third-party vendors.
Amazon IVS: Amazon IVS doesn’t currently offer the ability to monetize streams by injecting pre-roll or mid-roll ads.
Other AWS Media Services: AWS Media Services, however, provide comprehensive ad insertion functionality. MediaLive can prepare content for ad insertion by either passing through SCTE-35 ad markers from the input stream or inserting markers via the service APIs. MediaPackage offers additional controls and filters based on packaging types and AWS Elemental MediaTailor is a server-side monetization service for serving targeted ads to viewers at scale.
Automatic stream start
Amazon IVS: When you create a new channel in Amazon IVS, it is available for streaming within seconds. More importantly, a channel automatically starts streaming when it receives input video. This makes orchestration very easy and is great for user-generated content (UGC) applications where your users can begin streaming video at any time.
Other AWS Media Services: A MediaLive channel must be started and in a running state before you can begin pushing source content to it. It takes several minutes for a MediaLive channel to enter a running state and begin outputting content after receiving a command to start via the AWS Management Console or APIs.
Amazon IVS: Amazon IVS is targeted at event-based workflows. In my experience, customers streaming 24/7 channels are typically looking for control over redundancy architectures and failure scenarios.
Other AWS Media Services: MediaLive offers input failover options to cater for potential source or ingest network failures, in addition to the option to run fully redundant pipelines (standard mode) distributed across separate Availability Zones. AWS Elemental MediaPackage also supports input failover, which when coupled with MediaLive’s redundant pipeline, allows you to build a highly available video service without the need to manage multiple publishing URLs and handle failure logic within the player.
Live streaming is more popular than ever and is being used across industries to drive audience engagement, share new ideas and to stay connected with each other. I’ve only touched the surface of their capabilities in this blog, but AWS Media Services provide a suite of options for delivering great quality video experiences to your customers, whether you want control over the design and control your platform, or looking for friction free APIs to add live video to your app.