Skip to main content

DVR Configuration

info

As of 2023, Samsung states that Tizen TV's are not optimized for .NET applications. Samsung strongly recommends using JS/Web applications instead of C#/.NET applications for TVs. Please check the Lura Player Web SDK

Restart TV lets viewers pause a live stream and seek back inside an available DVR window. The seekable range can come from Akta Cloud event metadata, or from a fixed time window configured in the player.

Akta Cloud requirement

Restart TV requires Akta Cloud configuration before the player can expose DVR controls.

In Akta Cloud, configure DVR from Live Encoders > Edit Encoder > Settings tab > DVR or override it per event from Edit Event > Content Control > DVR. Events are created in Inherit mode by default. The event-level values are:

  • Inherit - Uses the encoder DVR setting.
  • Enabled - Enables DVR for the event, overriding the encoder.
  • Disabled - Disables DVR for the event, overriding the encoder.

In Play Configuration > Edit > Private > Custom, add and keep this block:

dvr:
enabled: true

Restart TV does not require a separate play configuration. Restart TV is fully compatible only with server-side ads stitched by Akta.

To enable DVR handling in Lura Player, use the following configuration.

AttributeTypeRequiredDescription
EnabledboolnoEnables DVR handling for live playback.
ModeContentDvrModenoEvent uses Akta event metadata. Window uses a sliding lookback window ending at the current time.
AvailabilityWindowfloatnoDVR window duration in seconds. Used when Mode is Window.

Event mode

Use event mode when Akta Cloud provides the Restart TV window from event or encoder metadata.

DVR Configuration
var config = new Configuration
{
Content = new ContentConfiguration
{
Type = ContentType.Live,
Dvr = new ContentDvrConfiguration
{
Enabled = true,
Mode = ContentDvrMode.Event
}
}
};

await player.SetConfig(config);

Window mode

Use window mode when the live stream should expose a fixed sliding DVR range.

DVR Configuration
var config = new Configuration
{
Content = new ContentConfiguration
{
Type = ContentType.Live,
Dvr = new ContentDvrConfiguration
{
Enabled = true,
Mode = ContentDvrMode.Window,
AvailabilityWindow = 7200
}
}
};

await player.SetConfig(config);

Start inside the DVR window

For Restart TV, StartAt is a UNIX timestamp in seconds, not a relative offset. The timestamp must be inside the DVR availability window.

DVR Configuration
var config = new Configuration
{
Content = new ContentConfiguration
{
Type = ContentType.Live,
StartAt = 1710528000,
Dvr = new ContentDvrConfiguration
{
Enabled = true,
Mode = ContentDvrMode.Event
}
}
};

await player.SetConfig(config);