logo
Menu

Live Stream to Amazon IVS with the Videon LiveEdge Device

Unlock real-time live video experiences with Amazon IVS and Videon LiveEdge, a powerful and cost-efficient solution for interactive video streaming

Tony Vu
Amazon Employee
Published Jul 9, 2024
Amazon Interactive Video Service (IVS) is a managed live streaming service for creating real-time live video experiences. Amazon IVS supports the real-time ingestion of live video streams using the WebRTC-HTTP Ingestion Protocol (WHIP). WHIP is an IETF draft developed to standardize WebRTC ingestion. Using a WHIP-compatible encoder like the Videon LiveEdge device, you can publish real-time live video to Amazon IVS. The Videon LiveEdgeⓇ ecosystem is a powerful compute platform designed for the contribution edge, delivering both low-latency and cost-efficiency, all wrapped up in a surprising small package that’s easy to set up and always ready to evolve.  
In this article, we will walk you through the process of live streaming video to Amazon IVS using Videon LiveEdge.

What you will learn

  • How to live stream your video to Amazon IVS using LiveEdge
Amazon IVS and Videon Solution Overview Diagram
Amazon IVS and Videon Solution Overview Diagram

Solution Overview

This tutorial consists of three parts:
  • Part 1 - Setting up your Videon LiveEdge Device
  • Part 2 - Sending your live video stream to Amazon IVS
  • Part 3 - Viewing your live stream
Let's take a quick look at the high level solution overview in Figure 1.
Audio and video data is connected to LiveEdge Node or Max via HDMI or SDI. The LiveEdge Node and Max are Edge compute devices with embedded video encoders.  The Node is a single channel device, while the Max can support up to 2 independent 3840x2160P60 channels.  See videonlabs.com for more information.  These devices can add a graphics overlay and scale the video to the desired resolution. The audio is encoded using the OPUS codec, while the video is encoded using the H.264 codec. The OPUS codec is an open-source, lossy audio compression format designed for internet applications, offering high-quality audio at low bitrates, making it ideal for live streaming. After encoding, the data is packaged as WebRTC. The WHIP protocol is used to set up the WebRTC output to Amazon IVS. Alternatively, SRT or RTMPS can also be used to ingest audio and video to Amazon IVS.
Before getting started, you will need to create what’s known as an Amazon IVS stage in the Amazon IVS console. An Amazon IVS Stage is a virtual space where participants can exchange video in real time. You can follow these instructions to create a Stage.
After creating a Stage, you will then need to create two participant tokens. For testing purposes, you can follow these instructions to create participant tokens in the Amazon IVS console. One participant token will be used to authenticate your Videon LiveEdge device with the Amazon IVS Stage so that it contributes video to it. The other participant token will be used to join a Stage from your web browser as another participant so that you can see the video contributed by your Videon LiveEdge device. To create participant tokens in a more scalable and production environment, you can use the AWS SDK.

Part 1 - Setting up your Videon LiveEdge Devices.

You will first need to log in to your Videon account to configure your device to enable it to send its live video stream to WHIP.
  • Login to videoncloud.com
  • Select the device that you want to enable a WHIP output from
Videon LiveEdge Device Setup
Videon LiveEdge Device Setup
After selecting a device, you will then be presented with the device information
Device Information
Device Information
Next, click on the Configuration tab
Device Configuration
Device Configuration
Select Encoders from the Configuration tab
Videon Encoders
Videon Encoders
From here, we can either create a new H.264 encoder or edit one of the current ones. In this example, we will create a new encoder following these steps:
  • Name the Encoder (In this example: IVS Encoder)
  • Change the Video Scaling to 1280x720p (16:9)
  • Change the Video Bitrate to desired bitrate (for this example 6000 kbps)
  • Change the Quality/Latency to Lowest (this will create a stream that has no B-frames).  (B-frames (Bidirectional Predictive Frames) in H.264 video are frames that enhance compression efficiency by using both previous (P-frames) and future frames to predict and encode video data, reducing the overall bit rate while maintaining high video quality.)
  • Change the H.264 profile to Baseline or Main. Main will provide higher quality, but not all devices support it. If you wish you can use the High profile, but very few devices fully support High. If a device doesn’t support all the features it can lead to video pauses, skips or even crashes on the playback side.
Videon Create New Encoder Screen
Videon Create New Encoder Screen
Click Save after confirming you have filled out the encoder configuration screen as shown above. We will then be taken back to the Encoder Configuration tab.
The next step is to create an OPUS audio encoder. WebRTC does not support AAC audio encoding; it requires the OPUS audio codec. The OPUS audio codec is a versatile, high-quality codec designed for both speech and music transmission, offering low latency and efficient compression across a wide range of bit rates.
To create an OPUS audio encoder:
  • Click New Encoder
  • For the encoder type, select “Audio Encoder”
  • Name the encoder (In this example IVS OPUS)
  • Select the input (In this example 1080P Input)
  • Audio Encoding: OPUS
  • Encoding Mode: Variable
  • Audio Bitrate: 128kbps
  • Audio channel selections:  Channel 1 and Channel 2
Videon Create OPUS audio encoder
Videon Create OPUS audio encoder
After confirming you have filled out the add new encoder fields as show in the screenshot above, click “Create Encoder” and then click “Save”

Part 2 - Sending your live video stream to Amazon IVS

Now that we have set up our LiveEdge Device and the encoder configuration for it, the next step is to stream the video to Amazon IVS. We will be sending the video using WHIP so need to create a WHIP Output. The steps to do that are as follows:
Click on outputs tab of the Device configuration page
Outputs Screen
Output Screen
We will then be presented with the Output Configuration screen. From here, click the “New Output” button and fill out the configuration form as follows
  • Output Type: WHIP Output
  • Output Enable:  Selected
  • Name the output: In this example “IVS WHIP”
  • Video Encoder: IVS Encoder (The encoder that was created or modified in the previous section)
  • Audio Encoder: IVS OPUS
  • Streaming Provider:  Generic
  • Authorization Token: Use one of the two participant tokens created earlier in this article.  
  • Click on Create Output
  • Click on Save (to send configuration to device)
After saving the output configuration, the device should now show that the IVS WHIP output is running. 
Amazon IVS WHIP Output Example
Amazon IVS WHIP Output Example

Part 3 - Viewing your live stream

With the device setup, encoder configuration, and output configuration complete, we can now test if someone else joining our Amazon IVS Stage can see the video being streamed from our LiveEdge Device. Open the IVS Real-Time Streaming Simplified Basic Web Sample App in a browser window. This is a demo web app that can be used by anyone on the web to join the stage if they have a participant token. After opening the link specify the provide participant token that was created earlier in this article in the “Token” input field and click “Join”. We should now able to see the live feed that is being streamed from our Video LiveEdge device.
Live Feed Streamed Output
Live Feed Streamed Output
In the following screenshot, the bottom smaller display is the source. The larger top display is a browser window with IVS Real-Time Streaming Simplified Basic Web Sample App opened. The source (running at 60 frames per second) has a frame counter burned into the video (in this case the source is on frame 11759 while the player is on frame 11746.)
Glass to glass latency is 11759 - 11746 frames = 13 frames at 60 fps = 217ms

Conclusion 

Live streaming to Amazon IVS using Videon LiveEdge is a straightforward process that can be accomplished by following the steps outlined in this tutorial. By leveraging the power of Videon LiveEdge and Amazon IVS, you can create real-time live video experiences that engage and interact with your audience.

About the Authors

Tony Vu is a Senior Partner Engineer at Twitch. He specializes in assessing partner technology for integration with Amazon Interactive Video Service (IVS), aiming to develop and deliver comprehensive joint solutions to our IVS customers. Tony enjoys writing and sharing content on LinkedIn.
Paul C. Brown is the CTO and co-founder of Videon, where he spearheads R&D efforts and shapes the company’s technology roadmap. With over 30 years of experience in the video technology industry, Paul excels in collaborating with customers and partners to develop unique, high-performance, and cost-effective solutions.
 

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

Comments