Management

Overview

This section covers live streaming features from the perspective of management and operations.

Event-based streams and 24/7 streams are managed differently and various features apply to one or the other. For example an even-based stream can be replayed as live at a later time, but this feature doesn’t apply to 24/7 streams.

General Settings

Live streams are configured with a ‘retention period’. Typically event-based streams are configured with a retention period covering the entire event (for example a 4h event should be configured with a retention period of at least 4h), while 24/7 streams are normally configured with a retention period of 1 to 2 hours. The recorded live stream data is no longer available after the retention period expires, so most features will no longer be available at that point.

Make sure to configure the live stream retention period long enough to allow the desired operations on the stream.

When a live stream is stopped and restarted, it creates what we call ‘recording periods’. This is common when recording an event with multiple performances, for example an event that spans one or several days. Some of the management commands will allow you to operate on a ‘recording period’, for example when downloading the raw live stream recording.

Playout Features

Live to VoD

Converting a live stream to a regular VoD object is available for both event-based and 24/7 streams. This is a core feature of the content fabric protocol and is very efficient (‘zero-copy’). You can create as many VoD copies as desired from a single live stream object.

Using the Livestream Manager App

The Livestream Manager app supports Live to VoD from a running or previously recorded stream. Only recording periods that have not expired will be able to be copied to VoD, by default the TTL for expiration is 1 week.

Below are the steps for creating a VoD on a running stream, these same steps apply to a previously recorded stream and apply to any stream type (SRT, RTMP, MPEG-TS).

NOTE: Streams MUST be in the “running” or “stopped” state in order to run Live To VoD.

  1. On the Stream Listing page, click the name the name of the stream that will you will run live to VoD on. You will be taken to the stream detail view.

  2. On the Stream Detail View there will be 2 tables present:

    • In the middle of the page is the “Live Recording Copies”, these are previous recordings that have been converted to VoD.
    • The bottom table is the “Recording Periods”. These are the elements of a live stream which can be copied to VoD. A Recording period gets added to the table each time the stream stopped and started. These recording periods are what get copied to VoD objects. Rows that have existed longer than the stream TTL (1 week) will be marked as “Not Available” and cannot be copied to VoD.
  3. To create a VoD we will select a period with an “Available” status from the “Recording Periods” table.

  4. After selecting a period click on the the “Copy to VoD” to begin the process.

  5. You will be presented with a modal to enter a name for the VoD.

  6. After clicking “Copy” the VoD process will begin. This can take 20 seconds per hour of content.

  7. On successful completion a notification will be displayed on the top right of the screen.

  8. Additionally, there will be an added entry to the “Live Recording Copies” table of the newly created VoD Object.

  9. Clicking on the arrow icon will open a new browser tab to the VoD object in the “Fabric Browser” App.

    On this page you also can preview the entire VoD by clicking on the “Display” tab.

  10. You can repeat this process for as many recordings as needed.

Using elv-live-js

The elv-stream copy_as_vod command updates an existing object (when specified with –object).

Requirements

  1. The VoD object must be of Title type and must have Editable permissions enabled.
  2. The stream object must have DRM Initialized.
$ ./elv-stream copy_as_vod
 copy_as_vod <stream>

Copy the stream to a new VoD object.

Positionals:
  stream  Stream name or QID (content ID)                    [string] [required]

Options:
      --version   Show version number                                  [boolean]
  -v, --verbose   Verbose mode                                         [boolean]
      --help      Show help                                            [boolean]
      --object    Copy to an existing object instead of creating a new one
                                                                        [string]
      --event_id  Optional SCTE35 program or chapter event ID           [string]

Examples:

./elv-stream copy_as_vod iq__3Xu6UtDcGAnwJz8e48UjXM92ybog --object iq__4AgZa3z1asibHreiWxfVTzKAZ7BA

./elv-stream copy_as_vod iq__3Xu6UtDcGAnwJz8e48UjXM92ybog --object iq__4AgZa3z1asibHreiWxfVTzKAZ7BA --event_id 1500201

Play as VoD

Once a live stream is stopped, it can be enabled for playout as VoD. This playes the exact recording of the stream and may not be the best option for end-user consumption (alternatively you could copy the live stream as VoD and then trim and clean up the VoD object before making it available to consumers). But it is certainly a useful feature for stream operators.

Configuring live stream object

Configure the live stream object metadata to enable or disable playout as VoD:

    "playout_config": {
      "vod_enabled": true
    }

Using elv-live-js

This feature is not yet available in elv-live-js

Replay as Live

Once a live stream is stopped, it can be replayed as live at a future time. This can be done repeatedly. This feature is useful when rebroadcasting an event in multiple time zones or for different tiers of consumers.

Configuring live stream object

Configure the live stream object metadata to specify the start time of the live replay.

    "playout_config": {
      "rebroadcast_start_time_sec_epoch": 1702014828,
    }

Using elv-live-js

This feature is not yet available in elv-live-js

Download the Raw Live Stream Recording

At any point during a live stream, whether it is still running or it is stopped, you can download any portion of the live recording as an MP4 file.

Using elv-live-js

./elv-stream download
 download <stream>

Download the live stream recording and creates and mp4 file.

Positionals:
  stream  Stream name or QID (content ID)                    [string] [required]

Options:
      --version  Show version number                                   [boolean]
  -v, --verbose  Verbose mode                                          [boolean]
      --help     Show help                                             [boolean]
      --start_time Optional start time
      --end_time   Optional end time
      --period   Download a specific recording period (instead of the last one)