Build a UGC Live Streaming App with Amazon IVS: Intro to Real-Time with Amazon IVS (Lesson 4.1)

Build a UGC Live Streaming App with Amazon IVS: Intro to Real-Time with Amazon IVS (Lesson 4.1)

Welcome to Lesson 4.1 in this series where we're looking at building a web based user-generated content live streaming application with Amazon IVS. This entire series is available in video format on the AWS Developers YouTube channel and all of the code related to the sample application used in this series can be viewed on GitHub. Refer to the links at the end of the post for more information.

Todd Sharp
Amazon Employee
Published Dec 15, 2023

In this lesson, we'll introduce real-time streaming with Amazon IVS. You'll learn some new terminology, and after this lesson you will understand the difference between traditional low-latency streams and real-time streams.

Prior to real-time streaming, live streams on Amazon IVS relied on HLS to deliver high quality video with low-latency. Depending on how the Amazon IVS channel is configured, and the device and network capabilities of the viewer, HLS is capable of delivering up to 1080p quality video with usually under five seconds of latency. For most streams, this much latency is perfectly acceptable. However, more and more customers and use-cases are demanding real-time latency from their live streaming platform, which simply isn’t possible with traditional HLS delivery. One such use case is social user generated content (UGC) live streaming applications like StreamCat.
Low-latency diagram
Low-Latency (HLS) Live Streaming

To give broadcasters the ability to host a stream with real-time latency, we can use Amazon IVS real-time streaming which uses WebRTC instead of HLS for broadcasting up to 720p video from multiple hosts to thousands of viewers with as low as 300ms latency.
Real-Time Live Streams
Real-Time Live Streams

The introduction of real-time live streams on Amazon IVS comes with a set of new terminology that is used throughout the AWS console and documentation. Let's define these terms so that you're familiar with them when you hear them in future videos in this course, or when reading through the Amazon IVS documentation.
  1. A stage is a virtual space where participants can exchange video in real time.
  2. A host is a participant that sends local video to the stage.
  3. A viewer is a participant that receives video of the hosts.
  4. A participant is a user connected to the stage as a host or viewer.
  5. A participant token is a JWT token that authenticates a participant when they join a stage.

Real-time live streams can be configured as a full "end-to-end" real-time stream. This means that your broadcast can include multiple hosts, and users can participate in the real-time stream in a "viewer" capacity.
Another option with real-time streaming is to have a host utilize a stage to communicate with other hosts in real-time, but broadcast to viewers over traditional HLS where real-time latency is not required for the viewers.
The configuration that you choose depends on your application's needs. In the following lessons, we'll learn how StreamCat offers both of these options to users by utilizing the Web Broadcast SDK.
💡Note: StreamCat uses Web Broadcast for real-time streams. There is also full support for real-time live streams available via the Amazon IVS iOS Broadcast SDK, and the Amazon IVS Android Broadcast SDK. Refer to the documentation for further information.

In this lesson, we introduced real-time streaming with Amazon IVS. In the next lesson we'll see how to generate a participant token which is needed for all real-time stream participants.

Any opinions in this post are those of the individual author and may not reflect the opinions of AWS.