Live Events

Broadcast an event (e.g., concert, sporting event, lecture, etc.) in near real-time by leveraging a live event.

If you require a continuous live stream, consider using a live channel instead.

Quick Start

Set up a live event by performing the following steps:

  1. Configure a Live Slicer for use with live events.
  2. Set up a live event configuration.
  3. Set up and distribute a media player.
  4. Broadcast the live event.
  5. Optional. Provide on-demand access to the completed live event.

Overview

Our live event service allows you to:

Key information:

Setting up a Live Slicer

An alternative to the Live Slicer is the CameraSlicer. It provides a simplified streaming solution when the full functionality and flexibility provided by the Live Slicer and the Live Events Dashboard are not needed.

To prepare the Live Slicer to stream a live event

  1. Verify that the latest version of the Live Slicer (231114.04.01) is installed.

    View Live Slicer release notes

  2. Verify that the system time on the computer hosting the Live Slicer is accurate.

    Use Network Time Protocol (NTP) to sync your Linux server's time with a public time server.

  3. Define the following settings in the Live Slicer configuration file (/etc/uplynk.conf):

    api_port: 127.0.0.1:65009

    preview: on

    livepreview_with_audio: on

    livepreview_max_viewers: 2

  4. Recommended: Secure the communication between the Live Slicer and the Live Events Dashboard through the use of SSL/TLS.

    If a Live Slicer is not configured to support TLS, then browsers may not properly load the Live Events Dashboard due to the page containing a mixture of HTTP and HTTPS content. Some browsers display a warning icon in the address bar to indicate this issue. An operator may then choose to accept this potential security threat by configuring the browser to allow insecure content.

SSL/TLS Setup

The Live Slicer may communicate with the Live Events Dashboard over SSL/TLS. The use of TLS secures all transferred data by encrypting it.

Setting up a Live Event Configuration

This section explains how to set up a live event for use with a Live Slicer. Live event setup is slightly different when using the CameraSlicer.

A live event may also be created or updated via the Live Events Integration API.

A live event must be scheduled before it may be broadcasted. At its core, setting up a live event consists of:

Default appropriate default live event configurations (e.g., slate, content expiration, the ability to resume a live event, etc.) from the Slate and Live Events pages located under the Settings tab.

To set up a live event

  1. Navigate to the Live Events page. ClosedHow?From the main menu, navigate to Events | Live Events.
  2. Click +Event.
  3. In the Event Name option, assign a unique name to the live event.
  4. Click Create. Tick the box to edit the event after creation.
  5. Optional. The following actions may be performed from the Details tab:

    • Schedule the Live Event: Assign the desired start and stop date/time through the Scheduled Start Time and the Scheduled Stop Time options.

      Configure the live event to automatically run according to this schedule by setting the Auto Start/Stop option to "Yes."

    • Define an External ID: Assign a unique ID to the live event through the External ID option.

      This external ID may be used to generate a playback URL.

  6. Optional. From the Config tab, define live event settings that determine how it will behave (e.g., assign an operator, determine the post-event playback experience for new viewers, determine whether a token will be required for playback, set up slate, and how long content generated from the live event will be kept).

    Playback Latency: Select the level of latency behind live for this event:

    • Default: ~60 seconds
    • Low: Low 20s, 5+ second buffering, Missing Content Slate (MCS) is possible

    • Lower: Upper teens, 2+ seconds buffering, MCS is possible

    To adjust latency, you must use two-second slices and encode slates must be encoded to 2 seconds.
    Playback latency options cannot currently be used with Time Shifting.
    Contact Support if you do not see the Playback Latency drop-down.

  7. From the Slicers tab, type the name of the desired Live Slicer in the Slicer ID option and then click + Add.

    The specified name must be a case-sensitive match to the value defined in the slicerID setting of the Live Slicer configuration file.

    For your convenience, suggested Live Slicers will be provided as you type.

  8. Optional. From the Pod Format tab, define the ad pods that will be associated with the live event.

    Learn more.

  9. Optional. From the Metadata tab, define the metadata that will be associated with the live event.

  10. The Playback tab contains a playback URL, test Flash/HTML5 players, and HTML embed code. Use this information to test your live event and set up a media player.
  11. Click Save.

To copy a live event

  1. Select the desired live events from the Live Events page.
  2. Click Duplicate n Events.
  3. If a live event selected in step 1 contains metadata, then you will be prompted to review the fields that will be added to the new live event.

    Exclude metadata from the new live event by clicking the icon that appears to the right of each desired field. Click Duplicate when finished.

    Clicking Close will prevent that live event from being copied.

A copy of each live event selected in step 1 will be created. Each new live event will be named Copy of Live Event.

Ad Pods

An ad pod defines an ad break window and associates metadata with it.

Use one of the following methods to take an ad break:

You may configure the Live Events Dashboard to alert the operator when a live event is in ad state for a specified number of minutes. Once enabled, a warning will be displayed 15 seconds prior to the specified number of minutes. Once the specified time limit has elapsed, a critical alert will replace the warning.

Set up a default alert configuration through the Default Ad Break Warning (min) option from the Live Events page. You may also override this default setting on a per live event-basis by opening the desired live event, clicking the Config tab, and then setting the Ad Break Warning (mins) option to the desired number of minutes.

Ad Pod CSV Setup

Quickly add multiple ad pods to a live event configuration by importing a CSV file. Define the following fields within that CSV file:

Field Description

Name

Required

Assigns a unique name to an ad pod.

Duration

Required

Assigns a duration to the ad pod.

Specify duration in seconds or the time formats defined below.

KeyName

Assigns a key/value pair to the ad pod.

Key information:

  • Add a field for each desired key.
  • Set the name of each field to the desired key name.
  • A key/value pair will only be associated with an ad pod when a value for that key has been defined.

Use a spreadsheet application (e.g., Excel or Google Sheets) to quickly create CSV files. Make sure that the first row in the spreadsheet contains the above fields.

Live Event Authorization

A live event may be created, viewed, and operated by either the owner of the account or any authorized user. Authorization may be granted to other users via the following permissions:

Permission Description

Read

Allows a user to view detailed information for each live event associated with your account.

Either the Write or the Assigned permission is required to operate a live event.

Write

Allows a user to modify and operate any live event associated with your account.

Assigned

Identifies a user as a potential operator for the live events associated with your account. In addition to this permission, authorization must be granted to this user on a per live event basis. After which, the user will be allowed to operate authorized live events via the Live Events Dashboard.

Permissions may be defined on a per user basis from the Account Access page. Navigate to this page by clicking the Settings tab and then clicking Account Access Settings from the side navigation tab.

To authorize a user as an operator

  1. Grant the Assigned permission to the desired user from the Account Access Settings page.

    If the operator requires the capability to view or make changes to a live event prior to its start, then grant the Read and Write permissions as well.

    Users that have been granted the Write permission may operate any live event and therefore do not require authorization on a per live event basis. Skip the following two steps for this type of user.

  2. Navigate to the Live Events page. ClosedHow?From the main menu, navigate to Events | Live Events.
  3. Select the desired live event to open it.
  4. Click the Config tab.
  5. From the Event Operator option, select the user identified in step 1.
  6. Click Save.

Content Expiration

A live event may generate the following type of content:

Define a default and/or a live event-specific retention period for the above assets.

Markers

Mark key events within your live event via markers. A marker is a custom tag that can be applied to a specific moment within your live event. Marking an event adds it to:

Each marked event logs the type of marker, the name of the marker, and the specific moment at which the live event was marked.

Marker Setup

Setting up markers requires:

  1. Creating a marker template that contains the set of markers that may be applied to your live event.
  2. Assigning the desired marker template to your live event.

    Assign a template by loading the desired live event configuration, verifying that the Details tab is active, and then selecting the desired template from the Marker Template option.

Once you have performed both of the above steps, your live event operator can mark key events using the set of markers corresponding to the marker template assigned to the live event.

To create a marker template

  1. Navigate to the Marker Templates tab of the Live Events page. ClosedHow?From the main menu, navigate to Settings | Live Events | Marker Templates .
  2. Click + Marker Template.
  3. From the Marker Template Name option, type the name that will be assigned to the new template and then click Add.
  4. Select the new template from the list.
  5. Add a marker category by performing the following steps:

    1. Click + Type.
    2. From the Type Name option, type the name of the marker category.
    3. Click Add.
  6. Repeat the previous step as needed.
  7. Add a marker to the template by performing the following steps:

    1. Select the desired marker type to expand it.
    2. From the Marker Name option, type the name that will be assigned to the marker.
    3. Click Add.
  8. Repeat the previous step as needed.
  9. Click Save.

To mark key events within a live event

  1. Verify that the desired marker template has been assigned to your live event configuration.
  2. Open the Live Event Dashboard and start your live event.
  3. From the Markers section, select the desired marker by performing the following steps:

    1. From the Type option, select the desired type of marker.
    2. From the Tag option, select the desired marker.

      If the desired marker is not listed, then you may type the name of the desired marker and then press ENTER. After which, it will be added to the list of available markers for the duration of your Live Event Dashboard session. Follow the instructions from the To create a marker template procedure to permanently add this marker for future live events.

  4. Wait until the desired moment in the live event and then click Mark to use the selected marker to add a marked event to your log data, live stream, and Live Event Status Reporting.
  5. Repeat steps 3 and 4 as needed.

Setting up Slate

Slate may either be:

To set a live event's slate configuration

  1. Navigate to the Live Events page. ClosedHow?From the main menu, navigate to Events | Live Events.
  2. Select a live event that has not yet started.
  3. Click the Config tab.
  4. View the default pre-event, post-event, ad, or missing content slate at the bottom of this page.
  5. Change the default pre-event, post-event, ad, or missing content slate by clicking Change that appears directly below the desired slate and then selecting the desired asset.

    You may only choose an asset from the default CMS library for the type of slate being configured.

  6. Optional. If you would like to include mid-event slate within the asset generated for VOD replay of your live event, then enable the Enable Slate in VOD Replay option.

    If you enable this option, then you should also select a CMS library that you own in the next step. If you select a shared CMS library instead, the live event operator will be unable to include mid-event slate within the VOD replay asset regardless of whether you have enabled this option.

  7. From the Mid Slate Library option, select the desired CMS library.

    All assets within the selected library will be available for selection as source content from within the Switcher pane of the Live Events Dashboard.

  8. Click Save.

To define a default slate configuration

  1. From the Content tab, organize assets that will serve as slate content into one or more CMS libraries.

    You may assign different libraries for each type of slate.

  2. Navigate to the Slate page. ClosedHow?From the main menu, navigate to Settings | Slate. 
  3. Click on the Slate Types tab.
  4. Ad Slate: Perform the following steps to set the default asset that will be broadcast as slate during an ad break when ad content is not being received:

    1. Set the Ad Slate Library option to the CMS library that contains assets that may be used as ad slate.
    2. Set the Ad Slate option to the desired asset.
  5. Missing Content Slate: Perform the following steps to set the default asset that will be broadcast as slate when content is not being received and the live event is not in an ad break:

    1. Set the Missing Content Slate Library option to the CMS library that contains assets that may be used as missing content slate.
    2. Set the Missing Content Slate option to the desired asset.
  6. Click on the Live Event Slates tab.
  7. Pre-Event Slate: Perform the following steps to set the default asset that will be broadcast as slate prior to the start of a live event:

    1. Set the Pre Event Slate Library option to the CMS library that contains assets that may be used as pre-event slate.
    2. Set the Pre Event Slate option to the desired asset.

    The asset that will serve as pre-event slate may be changed prior to the start of the live event from within the Live Events Dashboard.

  8. Mid-Event Slate: Set the Mid Event Slate Library option to the CMS library that contains assets that may be used as mid-event slate.

    All assets within the selected library will be available for selection as source content from within the Switcher pane of the Live Events Dashboard.

    An asset for your live event may be generated upon its completion. The option to include mid-event slate within that asset is only available when inserting slate using an asset that you own.

  9. Post-Event Slate: Perform the following steps to set the default asset that will be broadcast as slate after the live event has completed:

    1. Set the Post Event Slate Library option to the CMS library that contains assets that may be used as post-event slate.
    2. Set the Post Event Slate option to the desired asset.
  10. Click Save.

Post-Event Slate Duration

After the end of a live event, post-event slate will automatically play in one of the following modes:

The EXT-X-END tag will be included in the HLS manifest file to indicate the end of post-event slate. It is up to a media player to interpret this tag.
Learn more.

Set one of the above modes under the Post Event Slate Duration section of the Live Events page.

Setting up a Media Player

A single playback URL allows the playback of the live event as a live stream and on-demand content.

To set up a media player for use with a live event

  1. Generate a playback URL using either the live event's ID (i.e., GUID) or external ID.

  2. If the live event configuration requires a token for playback, then create a script that signs the playback URL.
  3. Point the media player to the live event using the above playback URL.
  4. Distribute the media player to the desired viewers.

If you are setting up a HLS player, you may add support for fast forwarding, rewinding, or pausing and resuming through the Live Timeshifting capability.

Latency

Latency measures the delay between the capture of the source video and when it is displayed to the viewer.

If you do not see the Playback Latency option, contact Support.

The following illustration provides an overview of components involved in the workflow from video capture to playback.

A short explanation of how each of the above components adds latency is provided below.

Component Latency Factors

Slicer

The amount of time it takes to slice and deliver processed media to our Streaming service. This may be exacerbated by using underpowered hardware or insufficient bandwidth for your encoding profile.

Streaming Service

The amount of time it takes to decode, encode, and package sliced media into an adaptive bitrate format.

Digital Rights Management (DRM)

The amount of time it takes to request and generate licenses for content protected by DRM.

Ad Decision Server

  • The amount of time it takes to request, bid, and deliver ads to our Streaming service. This may be exacerbated by complicated ad campaigns, a large waterfall, and slow responses by the ad decisioning server and third-party ad providers.
  • Ad breaks extending beyond their intended duration due to long ad creatives.
  • Delayed ad delivery due to a late notification of an upcoming ad break.

CDN

The amount of time it takes to cache and deliver your stream to the player.

Player

The amount of time it takes to initialize and then play your stream. This may be exacerbated by clients that use underpowered hardware or that have insufficient bandwidth.

Manifest Engine Decisioning logic that controls the timing and creation of individual manifests for playback by users.

Best Practices for Reducing Latency

Reduce latency by applying the following best practices:

The following optimizations are listed in descending order according to the degree to which they will reduce latency.

Type Optimization(s)

Playback Profile

Selectable, pre-figured control file that contains the parameters related to reduced-latency options. Used during manifest creation and driven by selectable latency options. Use the drop-down on the Channel's Details tab and the Live Event's Config tabs. See Selecting playback latency to choose latency options. Selecting a low latency playback option (other than default) may increase the probability of missing content slate and decrease the number of ad fills.

Contact our Professional Services Group for assistance on how to optimize this setting for your environment.

In addition to the selectable latency settings, a variety of factors, such as the hardware on the computer hosting the Live Slicer, ad workflow, encoding profile, and platform/ player affect the latency achieved, the quality of the customer viewing experience, and the ad monetization. Any latency numbers associated with settings are estimates, and your individual results may vary.

Chopping / Dropping Ads

Reduce ad-related latency by either chopping or dropping ads upon exceeding ad break duration. Use ad.flex to determine the number of seconds that an ad can extend beyond an ad break before being chopped or dropped.

Learn more.

Player

Client

Use a player (e.g., THEOplayer) that supports two second media segment files and fast startup times.

The HLS specification requires that a player wait for three media segments prior to initiating playback. DASH, on the other hand, can initiate playback immediately. This, in theory, allows DASH to offer lower latency than HLS, but in practice, testing has shown little difference between the latencies achieved by HLS or DASH. Different HLS players offer varying degrees of latency.

Different protocols and platforms may affect latency beyond the control of Edgio.

Encoding Profile

  • Two Second Media Segments

    Reduce the duration of the media segments generated for your content to two seconds. This allows the generation of a manifest file that is more responsive to changing conditions (e.g., ad break duration variability). Additionally, it reduces the amount of time that the player must wait before initiating playback. However, it may increase rebuffering for some players.

    Update your slate to use two second media segments before leveraging two second media segments for your main content. Using slate that has been encoded as four second media segments when your main content's media segment size is two seconds will cause playback issues.
    Learn more about slate.

    Please contact customer support to update your encoding profile to generate two second media segments.

  • B-frames and DRM

    Each of the above features add a small amount of additional latency. Reduce latency by only activating features required to meet your business needs.

    Use our recommended low latency encoding profiles to reduce latency.

    B-frames will only cause latency when they have been enabled on every ray.

Slate

Re-encode Slate (Two Second Media Segments)

A player may only switch from slate to your main content once it finishes playing the current media segment. Use slate that has been encoded in two second media segments to reduce the potential amount of time that the player must wait before switching to your main content.

This recommendation should be applied regardless of whether your account has been configured to generate two second media segments for your main content.

System slate has already been encoded using two second media segments.

Slicer

  • GPU

    We recommend the use of a Nvidia Tesla T4 GPU on the computer hosting the Live Slicer. The use of GPU hardware reduces missing content slate and overall latency.

    GPU hardware is required at higher resolutions.

  • CPU

    We recommend the use of Quad-core x86-64 (2GHz) or higher on the computer hosting the Live Slicer.

  • Memory

    We recommend 64 GB or more of RAM on the computer hosting the Live Slicer.

  • Upload Bandwidth

    Your upload bandwidth should exceed the bandwidth generated by the encoder for the top rayA stream with a specific quality configuration based on set bit rate and resolution targets. Each ray is divided into slices. by 25%. The amount of bandwidth generated by your encoder varies by encoding profile. For example, the default encoding profile (i.e., HD 720p25/30) requires 5 Megabits per second (Mbps).

    Insufficient bandwidth may affect performance and result in slate.

  • Build

    We recommend that you always use the latest Live Slicer build. This ensures that you can leverage our latest optimizations.

Ads

  • Chopping / Dropping Ads

    As noted above, reduce ad-related latency by either chopping or dropping ads upon exceeding ad break duration.

    Learn more.

  • Ad Slate

    All slate, including ad slate, should be encoded using two second media segments.

    Learn more.

Automation / Playout System

Ad Break Notifications

Ensure that upcoming ad breaks are added to the video stream (e.g., via SCTE triggers) with sufficient lead time to allow the ad decisioning server to provide ad creatives to our service.

Adaptive Bitrate Streaming

Format

Both DASH and HLS are supported.

Cloud

Network Connection

If streaming to a cloud-based slicer, ensure optimal egress for your encoded media. Leverage newer streaming protocols such as SRT and RIST, with settings that limit the latency to the recommended minimal values based on the network round-trip time.

Select the Playback Latency

Default latency for Live Channels and Live Events is 60+ seconds. To reduce latency to ~15 seconds, refer to the Playback Latency for channels and events for setup instructions.

Latency options:

Default: ~60 seconds

Low: Low 20s, 5+ second buffering, Missing Content Slate (MCS) is possible

Lower: Upper teens, 2+ seconds buffering, MCS is possible

Lowest: As low as 15 seconds, minimal buffering, no MCS

Different protocols and platforms may affect latency beyond the control of Edgio.

Important Considerations:

Broadcasting a Live Event

You should only allow a single operator to manage a live event. Using multiple operators on a single live event may lead to unexpected behavior.

If the live event has been scheduled and configured to automatically start/stop, then no additional actions need to be taken.

Override auto start/stop by turning it off from the live event and then saving your changes. Alternatively, an operator may override auto start/stop by opening the live event in the Live Events Dashboard and then clicking Cancel from the upper-right hand window. After which, the operator should start the following procedure from step 3.

To broadcast a live event

  1. Navigate to the Live Events page. ClosedHow?From the main menu, navigate to Events | Live Events.
  2. Select the desired live event to open it.
  3. Click Open Dashboard.
  4. Verify that a connection was established to the Live Slicer(s) associated with the live event configuration.

    A live event may be managed over the internet provided that a firewall does not prevent communication between the Live Events Dashboard and the Live Slicer. Otherwise, an operator should load the Live Events Dashboard from within the same network as the Live Slicer.

    Troubleshooting: If a connection to the Live Slicer cannot be established, verify that SSL support has been added to the Live Slicer. Alternatively, the operator should look for a warning icon in the browser's address bar. Click on that icon to accept the potential security risk of loading content via HTTP alongside HTTPS traffic. Eliminate this security risk by adding SSL support to the Live Slicer.

  5. Test the live event via the Live Events Dashboard.

    This step may be skipped by removing the live event testing requirement from the Live Events page.

  6. Monitor the live stream to identify the starting point of the live event and then start the live event from the Live Events Dashboard.

    Best Practices:

    If you are monitoring multiple live events, then consider performing the following steps to reduce CPU usage:

    • Launch the player in a separate window by clicking View in New Window.
    • Close the source and audience view by clearing the Slicer Live Preview and Audience View options from the View menu.
  7. Optional. Publish your live event to one or more social media platforms.
  8. From within the Switcher pane, insert ad breaks and slate content as needed.

  9. Monitor the live stream to identify the ending point of the live event and then stop the live event from the Live Events Dashboard.

It is possible to resume a live event after it has been stopped.
Learn more.

Verifying Live Slicer Connectivity

The Live Events Dashboard indicates a Live Slicer's status using the following indicators:

This status information is only designed to measure the connectivity between the Live Slicer and the Live Events Dashboard. Monitor Live Slicer health through the Live Slicer Health dashboard.
Learn more.

Testing a Live Event

The Live Events Dashboard contains a test mode that allows an operator to validate source content and replicate the viewing experience prior to the start of the live event.

Testing mode is designed to replicate the experience that a viewer will have when streaming a live event. However, viewers attempting playback prior to the start of the live event will only see pre-event slate.

Determine whether live event testing is mandatory through the Require testing before a live event can be started option which can be found under the Additional Configuration Settings section of the Live Events page.

To test a live event

  1. Load the live event in the Live Events Dashboard.
  2. Click Enter Event.
  3. Click Start Test.
  4. When prompted to confirm this action, click Start Testing.
  5. Optional. Once testing is complete, click Complete Test twice to exit this mode and to prepare for the start of the live event.

This mode allows the following tests to be performed:

Slicer Live Preview & Audience View

The Slicer Live Preview pane provides a real-time preview of the source selected in the Switcher pane, while the Audience View pane provides an approximation of a viewer's experience.

Key information:

Starting and Stopping a Live Event

Broadcast a live event to viewers by starting it. This will cause the following actions to take place:

Once the live event is over, it will need to be stopped. This will cause the following actions to take place:

To start and stop a live event

  1. Test the live event.
  2. Once testing has been completed, click Complete Test twice to exit testing mode and to prepare for the start of the live event.
  3. Once the live event is ready to be started, click Start Event. When prompted to confirm, click Start Event.
  4. Once the live event is complete, click End Event twice to switch the stream over to post-event slate content.

If multiple Live Slicers have been associated with a live event configuration, then the stream can be quickly failed over by selecting the feed for a different Live Slicer from the Slicers pane.

Viewing Live Event Details

The following live event information may be viewed at any time after entering the event by clicking the Event Details tab:

Resuming a Live Event

A live event may be resumed for a short window (i.e., 1 to 5 minutes) after it has been stopped. This capability allows an operator to undo a premature stop event action.

Key Information:

Syndication Publishing

Contact your account manager to activate Syndication Publishing.

In addition to streaming content directly to your consumers, you may also simultaneously distribute it to multiple social media and content distribution platforms with minimal effort.

Set up Syndication Publishing by performing the following steps:

  1. Create a publishing target for each desired social media or content distribution platform.
  2. Publish to the desired platform(s) by associating the desired publishing target(s) with your live event.

On-Demand Content

Upon the completion of a live event, an asset will be automatically added to the CMS library. This asset is described below.

Changing a Live Event's Asset

A live event may be assigned a different CMS asset. A common use case for this capability is to create a clip from a live event and then set it as the on-demand version of the live event.

Reassigning the asset associated with a live event will trigger the following actions:

To change the asset associated with a live event

  1. Load the configuration associated with the desired live event.
  2. Click Change VOD Asset from the notification bar.

  3. Set the Asset GUID option to the asset IDThis unique ID identifies an asset. View this ID by navigating to the Content tab, selecting the desired asset, and then viewing the GUID option from the Details tab. for the desired asset.
  4. Click Save.
  5. Verify that the label has been applied to the asset that best represents the on-demand version of the live event.

Playback of On-Demand Content

The playback URL associated with a live event may be used to stream it while the live event is in the Live (On Air) state. Once the live event is completed, the live event's VOD Replayable option determines whether that same URL may be leveraged to stream it as on-demand content.

The effects of this parameter on the user experience is described below.

An alternative method to stream the live event as on-demand content is to play back the CMS library asset that was automatically generated from the live event. This may be performed through the asset's playback URL.

Long Live Events

The behavior for a live event whose duration is 8 hours or longer will vary as described below.

Switching between the Live Slicer and ad breaks will not interrupt a temporary asset. Although the content of the ad break will be excluded from the temporary asset, markers will track each ad break. Leverage these ad break markers and the Preplay API to insert ads during on-demand playback.

The naming convention for temporary assets will be set to either of the following values:

Name Description

Test Primary

Test Backup

Primary

Backup

Each temporary asset generated from a live event will be assigned one of these names. The label(s) associated with each temporary asset describe it.

Each label is described below:

  • Test: Identifies temporary assets that were generated during the testing phase of the live event. If this label is missing, then the temporary asset was generated during the live event.
  • Primary: Identifies temporary assets that reflect the live event's viewing experience.
  • Backup: Identifies temporary assets that were generated from the content provided by backup Live Slicers. A backup Live Slicer identifies any Live Slicer associated with a live event that did not provide the content that was streamed to live viewers.

<Live Event Name>

Identifies the temporary asset that replicates the live viewing experience. A copy of this asset was imported into the CMS library.

To manually generate on-demand content

  1. Navigate to the Live Events page. ClosedHow?From the main menu, navigate to Events | Live Events.
  2. Select the desired live event to open it.
  3. Click the Assets tab.
  4. Play back each desired temporary asset by clicking the icon under the Actions column and then selecting Launch Test Player.
  5. Perform one of the following tasks:

    • Generate alternate on-demand content by importing each desired temporary asset into the CMS library. This may be accomplished by clicking the icon under the Actions column and then selecting Save as Asset. Once all of the desired temporary assets have been imported into the CMS library, generate a playback URL that combines all of the imported assets.
    • Create a highlight clip. Launch the Clipping Tool by clicking the icon under the Actions column and then selecting Clip Asset.

Please wait 150% of the live event's duration before attempting to delete temporary assets.

Live Event Status Reporting

Major events (e.g., creating, starting, and stopping a live event) are tracked for each live event. Our service can report these events as JSON data to a web server through HTTP POST requests. Your web server may then log this data and perform custom actions in response to specific types of events.

To post a live event's status information to your web server

  1. Navigate to the Live Events page. ClosedHow?From the main menu, navigate to Settings | Live Events.
  2. Under the Event Callback URL section, type the URL to which HTTP POST requests will be submitted.
  3. Optional. Choose how you will authenticate requests posted to your web server under the Webhook Secret Token section.

    • No Authentication: Verify that None is selected.
    • Token or Signature Authentication: Perform the following steps:

      1. Choose whether you will authenticate requests by checking for a token or verifying a signature of the request's payload.

        • Token: Select X-Edg-Auth-Token.

          This mode ensures that each live event status request sent from our service to your web server includes an X-Edg-Auth-Token header set to your secret key.

        • Signature: Select X-Edg-Signature-256.

          This mode ensures that each live event status request sent from our service to your web server includes an X-Edg-Signature-256 header set to an encrypted value that represents the request's payload.

      2. Click Generate Secret.
      3. Click Copy.
      4. Store your secret key in a secure location.

        Access to a secret key is limited to when it is generated. If you lose your secret key, then you will need to generate a new secret key and update your server-side authentication script to reference it.

      5. Click Ok.
  4. Click Test to submit a test request to your web server. Verify that your web server received the request.
  5. Click Save.

Authentication

Verify that a request came from our service through either of the following authentication methods:

View a sample Python 3 script that instantiates a sample web server and contains functions through which you authenticate a token or a signature.

Request Body

The HTTP POST request body will contain the following properties:

Property

Type

Description

event

String

Describes the event that took place.

A HTTP POST request will be submitted to your web server for each event.

Learn more.

event_desc

String

Identifies a live event by its description.

event_id

String

Indicates the system-defined ID for the event that took place.

external_id

String

Identifies the asset associated with this event by its external ID.

metatdata

Object

Contains a key-value pair for each metadata field associated with the event.

state

String

Indicates the state of the live event at the point in time at which the event took place.

Valid values are:

pre | live | resume | post | complete

Learn more.

testing_complete

Integer

Indicates the date and time at which live event testing was completed. A null value is reported when live event testing had not been completed at the point in time at which the event took place.

testing_start

Integer

Indicates the date and time at which live event testing was started. A null value is reported when live event testing had not been started at the point in time at which the event took place.

timestamp

Integer

Indicates the date and time, in Unix time (milliseconds), at which the event took place.

user_id

String

Indicates the system-defined ID associated with the user account that triggered the event.

username

String

Indicates the e-mail address associated with the user account that triggered the event.

State

Live event states are defined below.

Value Description

pre

Indicates that the live event had not started.

live

Indicates that the live event was in progress.

resume

Indicates that the both of the following conditions were true:

  • The live event had completed.
  • The capability to resume a live event via the Live Events Dashboard was available. This capability is controlled by whether a resume event buffer has been defined.

post

Indicates that the live event had completed and post-processing (e.g., creating on-demand content from a live event) was initiated.

complete

Indicates that the live event had completed and all post-processing tasks were completed.

Events

Events are defined below.

Value Description

Added Metadata

Indicates that metadata was added to a live event.

Added Slicer

Indicates that a Live Slicer was added to a live event.

Added Test Player

Indicates that a test player was added to a live event.

Auto Event Mode Cancelled

Indicates that a live event's auto start/stop mode was turned off.

Auto Event Schedule Cleared

Indicates that a live event's scheduled start/stop time was cleared.

Auto Event Slicer Scheduling Error

Indicates that there was an issue scheduling a Live Slicer for a live event that was configured to automatically start.

Completed Test

Indicates that an operator completed testing a live event.

Error Scheduling Slicers For Auto Stop

Indicates that there was an issue scheduling one or more Live Slicer(s) for a live event that was configured to automatically stop.

Event Copied from Event ID

Indicates that a live event was duplicated from an existing live event. The term Event ID identifies the ID of the live event that was copied.

Event Created

Indicates that a live event was created.

Event Deleted

Indicates that a live event was deleted. This deletion may have been performed manually or automatically upon its expiration.

Event Ended

Indicates that an operator ended a live event.

Event Ended: Resume Available

Indicates that an operator ended a live event that could have been resumed.

Event Marker Set: Marker Type:Marker Name

Identifies the marker that was applied to the live event.

Event Resumed

Indicates that an operator resumed a live event.

Event Started

Indicates that an operator started a live event.

Event Updated

Indicates that a live event was updated.

Event VOD over max duration (8 hours)

Indicates that a live event's duration exceeded 8 hours and therefore resulted in the creation of multiple CMS assets.

On-demand playback of a long live event requires that your media player(s) support multi-beam playback.

Started Test

Indicates that an operator started testing a live event.

Switched to Source

Indicates that the audio/video feed was switched over to different source content via the Switcher pane. The term Source identifies the live event's new source (i.e., Live Slicer, ad, and slate).

Non-Slate Syntax:

Switched to Source

Slate Syntax:

Switched to slate [in VOD] Mid-Event Slate Asset

The in VOD phrase indicates that slate was inserted using the Save to Replay option.
Learn more.

VOD Asset Auto-Expired

Indicates that an expired CMS asset was deleted.

VOD Asset Deleted

Indicates that a CMS asset was manually deleted.

VOD Available

Indicates that a CMS asset containing the audio/video feed for a completed live event was created.

Sample Request Body

Updating a live event configuration will trigger Live Event Status Reporting. A sample request body for this type of event is provided below.

{
    "username": "joe.smith@example.com",
    "user_id": "abcdefghijklmnopqrstuvwxyz123456",
    "external_id": "",
    "event_id": "1d6f7eb5fe474312947e73ccc1c57e32",
    "timestamp": 1572293065429,
    "event_desc": "My Live Event",
    "state": "pre",
    "testing_complete": null,
    "testing_start": null,
    "event": "Event Updated",
    "metadata": {
        "key2": "value2",
        "key1": "value1"
    }
}

Conflicting Scheduled Events

The following warning indicators will be triggered when overlapping events on the same Live Slicer are detected:

By default, overlapping events are detected via a live event's expected start/stop time. However, a live event may potentially start early or extend beyond the scheduled stop time. Account for these factors by setting before and/or after event buffers to pad live events.

Before and after event buffers are applied to all live events.

The Live Events Dashboard will only check whether a scheduling conflict will occur for scheduled live events. Before manually starting a live event, verify that it doesn't conflict with scheduled live events. Additionally, verify that the Live Slicer has not been associated with a live channel.

For example, let's assume that following conditions are true:

In this scenario, a warning will be generated if another live event is scheduled on the same Live Slicer that meets either of the following conditions: