logo
Menu
Build a UGC Live Streaming App with Amazon IVS: StreamCat Overview (Lesson 1.3)

Build a UGC Live Streaming App with Amazon IVS: StreamCat Overview (Lesson 1.3)

Welcome to Lesson 1.3 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 12, 2023

StreamCat Features

In this lesson, we'll look at an overview of the features included in StreamCat that we will be learning more about in subsequent lessons in this course.

Overview

StreamCat is a user generated content (UGC) application. This means that users can create an account and start live streaming to viewers around the world in less than 60 seconds. Let's take a look at what users can expect from the StreamCat application.
When a new user is created in StreamCat, the application creates dedicated Amazon IVS channel, chat room, and stage resources and stores data related to those resources in a database.

Broadcasting

StreamCat users can broadcast to their channel via third-party streaming software (like OBS, StreamLabs, etc) or directly from their web browser.
To stream from a third-party application, users can copy their ingest endpoint and private stream key and paste those values into the third-party application to begin streaming directly to their channel.
For web broadcast, StreamCat offers two options. The first option is a "solo" broadcast option for "talking head" style streams where users can stream their webcam, microphone, and optionally share their screen. The second option is a "multi-host" option that gives the streamer the ability to invite other streamers to join their stream for more conversational or "talk show" type streams.

Playback

Each user's stream is public. This means that anyone can view their stream by discovering it via the application homepage, category specific listings, or by direct link to the user's channel. While live streaming, each channel will display the current number of stream viewers.
Note: Amazon IVS supports private channels that utilize playback tokens to prevent unauthorized viewing, but this feature was not included in the StreamCat application. Refer to the Amazon IVS docs to learn more about setting up private channels for authorized playback.

Video On Demand (VOD)

When a user streams to their channel, the stream is recorded for on-demand playback at a future time.

Chat

Each user's channel includes a dedicated chat room where viewers can chat with each other and the streamer. Chat messages are logged to CloudWatch, eventually persisted to the application database, and replayed during VOD playback.
Chat messages are moderated via automated moderating (automatic profanity replacement) and can also be manually deleted by the streamer directly. Chatters who continue to post unwelcomed messages can be disconnected by the streamer.

Social Features

StreamCat includes several additional features that are familiar to users of UGC applications such as the ability to follow other channels. Channels that have recently gone live are listed on the application home page, and users can additionally discover live streams by category. Recent VODs are also displayed on both the home page and the individual user channels.

Stream Metrics and Analytics

Playback metrics like buffer size, latency, stream bitrate are collected during playback and persisted to the database. Browser specific data is also collected. This data is aggregated and is presented for analysis for the streamer.

Summary

In this lesson, we learned about the features included in the StreamCat application. In the next lesson, we'll look at an overview of the StreamCat application architecture.

Links

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

Comments