Best setup to broadcast live stream (video+chat) from webcam


I'm looking to build out web-based live streaming capabilities & video chat client for my application, similar to the twitch but not as heavy or highly trafficked. While I've looked at some of the many services offered by AWS, there's just so many (MediaLive, IVS, Kinesis etc) that it's hard to know which service or combo of services would be the best fit and so I'm looking for some general guidance from anyone who has experience setting this up, or if there are existing guides that may be of help.

In general, here are my requirements

  • Broadcasters should be able to broadcast via their webcam/media device in the browser (ie. via getUserMedia)
  • Broadcasts will be 1 to many, with only the broadcaster streaming video and likely an average of 20-30 audience members consuming the stream
  • Audience members would use a separate front end client, which should also be web based
  • I would like to be able to include a user/chat function, so that users can chat globally, thus will need live 2-way data stream capabilities, but not sure if this is best handled by the media streaming service itself, web sockets, WebRTC etc

I could possibly utilize existing JS libraries to capture media as well as a viewing/chat application or even develop my own, but I'm also wondering if there are AWS recommended JS libraries or guides that can aid in this as well.

hope someone can help me get started, thanks!

1 Answer

I'd recommend giving the Amazon Interactive Video Service (IVS) a try to see if it meets your needs. The other services you mentioned are lower-level building blocks that could be used to create such a streaming service, but would require a lot of heavy lifting from you to implement all the functionality that IVS already provides. IVS is meant to be a more complete, turn-key solution. (A "managed" solution in AWS lingo.)

If you haven't already, check out the examples on The "Simple Chat" example in particular seems relevant to what you described. You can download the source code for that example from GitHub (linked further down the page).

profile picture
answered 10 months ago

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions