How to Get Started with AWS Interactive Video Service (IVS) for Managed Live Streaming

AWS Logo

This week, AWS announced IVS, a managed solution for handling live video, likely based on some of the same software that powers streaming giant Twitch. It offers an easy way to integrate live video into existing apps without having to configure it yourself.

What is IVS?

Low latency live video content is quite difficult to do well, and even more difficult to scale to handle many simultaneous streams around the world. Running an infrastructure at this scale is extremely complicated, so you need a service like IVS.

The simple setup makes it especially useful for services looking to add live experiences to their platforms, and especially for businesses that want to host professional live streams on their own sites without resorting to streaming on an official channel. YouTube or Twitch.

IVS itself is pretty straightforward. You create a channel and get a feed key. You can stream content to IVS using standard software such as OBS or Streamlabs. On the client side, you can use third-party live video players, but AWS provides a client player SDK that can be easily integrated or customized as needed.

IVS has two hourly charges for video input and video output. Video input is the number of people actively streaming content, which is billed differently based on resolution. SD content streaming at a maximum of 480p costs $ 0.20 per hour per streamer. HD content in 1080p costs $ 2.00 per hour and per live stream, even if no one is watching it.

IVS fees

Video output replaces standard data charges. You don’t pay per GB like most AWS services; instead, you pay a fixed hourly rate per hour of video output, depending on the resolution. These fees are slightly reduced after 10,000 hours of viewing, but they are also significantly higher for regions like Taiwan and Korea.

Regional costs per hour.

Therefore, if you are planning to launch a streaming competitor to services like Twitch and YouTube, you should be prepared to shoulder the cost. Even streamers with relatively small audiences can rack up tens of thousands of hours of viewing time.

However, even if you wanted to do it yourself, you will still pay these fees. Video files are large and streaming high definition video for hours on end to many different clients will top up your bandwidth bill on any hosting platform.

Configure IVS

If you want to test it, go to the IVS console and click on “Create channel”. Of course, if you want users to be able to create their own channels, you’ll want to manage it for them and create channels using the AWS API or SDK.

Give it a name and select Standard or Basic for the channel type. For latency, you’ll probably want to keep it on the low latency option, unless interactivity doesn’t matter. You can, of course, also add standard AWS tags to make cost tracking easier.

Channel type configuration.

You will receive an Acquisition Server URL, Stream Key, and Play URL to an m3u8 stream file for custom players.

Stream and playback configuration.

Currently, OBS Studio does not support IVS by default. You will therefore need to select “Custom” and enter both the server URL and the stream key.

From there you can start the broadcast and you should see the live preview in the management console.

Live preview management console.

If you want to embed it on your own site, you will need to add the IVS player and initialize it with the read URL.

https://player.live-video.net/VERSION_NUMBER/amazon-ivs-player.min.js

if (IVSPlayer.isPlayerSupported) {
const player = IVSPlayer.create();
player.attachHTMLVideoElement(document.getElementById(‘video-player’));
player.load(PLAYBACK_URL);
player.play();
}

If you want more customization, IVS features integration with video.js, a popular library for customizing HTML5 video players.

For mobile platforms, you can use the SDK to ios or Android.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.