Skip to content

How to enable rewind or playback seeking for AWS IVS live streams

0

We are using AWS IVS (Interactive Video Service) with the following setup:

  • Channel type: Standard
  • Low latency enabled
  • Container format: MPEG Transport Stream (TS)
  • Recording configuration enabled to generate VOD assets

We use the Playback URL of the IVS channel to play the live stream on our frontend using the amazon-ivs-player. Live playback works correctly. However, we would like to enable rewind / playback seeking (for example, allowing a user to go back a few minutes during an ongoing stream).

Since our streams are being recorded, we also have a generated VOD URL, e.g.: https://foo.cloudfront.net/ivs/v1/xxx/xxx/2025/10/6/8/18/xxxxxxxxxx/media/hls/master.m3u8

From what I understand, the channel’s Playback URL does not provide the necessary timeline or manifest information for rewinding.

Questions:

  • Can the amazon-ivs-player be configured to switch between a live playback URL and a VOD URL seamlessly?
  • If not natively supported, what is the recommended AWS approach to allow a user to rewind or replay part of a live IVS stream?
2 Answers
0

The Amazon IVS player doesn't natively support seamless switching between live streams and VOD assets for rewinding during a live stream. The standard IVS live streaming setup you're using (Standard channel with Low latency and TS container format) doesn't provide built-in DVR-like functionality for seeking backward during a live stream.

For implementing rewind functionality in your application, you have a few options:

  1. Separate VOD and Live Players: You could implement two separate player instances - one for the live stream and another for VOD playback. When a user wants to rewind, you would switch to the VOD player using the recording URL that's being generated by your recording configuration. This would require your application to manage the transition between the two players.

  2. Single Player with URL Switching: You can use a single IVS player instance and switch the source URL between live and VOD. This approach would involve:

  • Using player.load(liveStreamUrl) for live playback
  • Switching to player.load(vodUrl) when the user wants to rewind
  • Managing the user experience for transitioning back to live

The implementation would look something like:

const ivsPlayer = IVSPlayer.create();
ivsPlayer.attachHTMLVideoElement(document.getElementById('video-player'));

// For live playback
ivsPlayer.load(liveStreamUrl);

// When user wants to rewind
function switchToVOD() {
ivsPlayer.load(vodUrl);
}

// When user wants to return to live
function switchToLive() {
ivsPlayer.load(liveStreamUrl);
}

Keep in mind that there will be a delay between the live stream and when the VOD asset becomes available, so there will be a gap between what's currently live and what's available for rewind. You'll need to handle this in your user experience design.

For a more seamless experience, you might consider using a different streaming technology that natively supports DVR functionality, but this would require changes to your current IVS setup.
Sources
Community | Build a UGC Live Streaming App with Amazon IVS: Video On Demand (VOD) Playback (Lesson 6.2)
IVS Composite Recording | Real-Time Streaming - Amazon IVS
Getting Started with the IVS Web Player SDK - Amazon IVS

answered 5 months ago
0

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.