Edgio

On Prem Slicer

The On Prem Slicer (aka Live Slicer) captures content from a live signal and sends it to the cloud for encoding. This tool runs as a daemon process on a Linux system. It is controlled using standard initctls Command.

Install the Live Slicer

Pre-requisites

Perform the following steps before installing the Live Slicer:
  1. Verify System Requirements: Ensure that the desired computer meets or exceeds the minimum system requirements:
    ComponentDescription
    CPUQuad-core x86-64 (2GHz)
    Memory6 GB
    Storage80 GB
    Upload BandwidthYour upload bandwidth should exceed the bandwidth generated by the encoder for the top ray 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.
    OSOptimized for:
    - Ubuntu Linux 14.04 LTS 64-bit or higher (tested on 14.04 LTS and 16.04 LTS)
    - CentOS 7 64-bit or higher
    Live FeedThe broadcasting infrastructure must transmit data to the Live Slicer using one of the following technologies:
    - UDP: Use either a UDP unicast or multicast MPEG2 transport stream.
    - SDI: Requires installation of one of the following Blackmagic DeckLink SDI cards: Decklink Duo 2 or Decklink Quad 2. Install Blackmagic DeckLink drivers from Blackmagic’s site.
    - RTMP: By default, the service expects your encoder to push the RTMP stream to a Live Slicer. You may configure a Live Slicer to pull the RTMP stream from your encoder through the enable_rtmp_pull setting.
    - SRT: Use a SRT MPEG2 transport stream.
    - TCP: Use a TCP MPEG2 transport stream. Ensure optimal data transmission rates by placing the source of the live feed in close proximity to the Live Slicer.
    PortsOutbound connections on ports 80 and 443
  2. Configure Firewall
    • Allow outbound connections on ports 80 and 443.
    • The Live Slicer relies on these ports to communicate with our services and to upload encrypted slices for encoding.
  3. Verify System Time
    • Ensure 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.

Install or Upgrade a Live Slicer

Perform these steps when installing or upgrading the Live Slicer to the latest version.
If you plan on using a Blackmagic DeckLink SDI capture card, then the Live Slicer must be installed on the computer where that card is housed.
  1. Live Slicer version 21092100 or higher: Install the libnl-3.200 library.
    Command: sudo apt install libnl-3-200
  2. Python and bzip2: Install the python bzip2 applications.
    Command: sudo apt install python bzip2
  3. Download the Live Slicer by clicking Downloads from the bottom right-hand corner of the CMS and then clicking on the desired OS.
  4. Extract the zip file to the desired directory.
    Command: $ tar -xvf uplynk_slicer_linux_64-231114.04.01.tbz2
    1uplynk_slicer_linux_64-231114.04.01-master/
    2
    3uplynk_slicer_linux_64-231114.04.01-master/slicebot.cfg.example
    4
    5uplynk_slicer_linux_64-231114.04.01-master/libfreetype.so.6
    6
    7uplynk_slicer_linux_64-231114.04.01-master/libavcodec.so.57
    8
    9uplynk_slicer_linux_64-231114.04.01-master/libcares.so.2
    10
    11uplynk_slicer_linux_64-231114.04.01-master/slicer
    12
    13uplynk_slicer_linux_64-231114.04.01-master/example.conf
    14
    15uplynk_slicer_linux_64-231114.04.01-master/libcrypto.so.1.0.0
    16
    17uplynk_slicer_linux_64-231114.04.01-master/libssl.so.1.0.0
    18
    19uplynk_slicer_linux_64-231114.04.01-master/liveslicer
    20
    21uplynk_slicer_linux_64-231114.04.01-master/font_i420.dat
    22
    23uplynk_slicer_linux_64-231114.04.01-master/libavfilter.so.6
    24
    25uplynk_slicer_linux_64-231114.04.01-master/ca-bundle.crt
    26
    27uplynk_slicer_linux_64-231114.04.01-master/install_live
    28
    29uplynk_slicer_linux_64-231114.04.01-master/libswscale.so.4
    30
    31uplynk_slicer_linux_64-231114.04.01-master/libswresample.so.2.4.100
    32
    33uplynk_slicer_linux_64-231114.04.01-master/libbeam-slicer.so
    34
    35uplynk_slicer_linux_64-231114.04.01-master/libopus.so.0
    36
    37uplynk_slicer_linux_64-231114.04.01-master/libopus.so.0.5.0
    38
    39uplynk_slicer_linux_64-231114.04.01-master/LICENSE.txt
    40
    41uplynk_slicer_linux_64-231114.04.01-master/slicebot
    42
    43uplynk_slicer_linux_64-231114.04.01-master/README.html
    44
    45uplynk_slicer_linux_64-231114.04.01-master/libavformat.so.57
    46
    47uplynk_slicer_linux_64-231114.04.01-master/libavformat.so.57.58.101
    48
    49uplynk_slicer_linux_64-231114.04.01-master/libavutil.so.55
  5. Navigate to the newly created directory.
    Command: $ cd uplynk_slicer_linux_64-231114.04.01-master/
  6. Run install_live.
    Command: $ sudo ./install_live

Configure the Live Slicer

Upon installing the Live Slicer, the following configuration file will be created: /etc/uplynk.conf
Use this file to configure the Live Slicer. View a sample configuration file.
Update the following settings in your Live Slicer configuration file:
SettingDescription
descriptionSet this to a description that will be assigned to new assets.
usernameSet this to the email address associated with your account.
apikeyIf missing, add a line for the apikey setting. Set it to your secret API key. Leverage our API to generate an API key that only authorizes slicer-related actions by creating a sub-owner that has only been granted the slice permission. Learn more. Find your API key via the Integration Keys page > Settings tab > Integration Keys from the side navigation. Your API key(s) are listed under the API Keys section.
Example: apikey: bcDEFghiJKLmnoPQRtuvWXYz123ABCdefGHIJKL
slicerIDSet this to a case-sensitive alphanumeric value by which this Live Slicer will be identified.
A Live Slicer may broadcast content via one or more live channels or live events.
Assign a Live Slicer to a live channel and/or a live event via the Slicer ID option. Information on how to find this option is provided below.
Live Channel:
Select the live channel and then verify that the Details tab is active.
Live Event:
Open the desired live event configuration and then click on the Slicers tab.
Verify the case of the Live Slicer’s ID when setting up your live channel or live event.
Once you have defined the above settings, the configuration file will need to updated to reflect your signal source (e.g., SDI, UDP, or RTMP).
If you plan on streaming over RTP, then you must process your audio/video feed using ffmpeg and serve it over UDP.
Instructions per your signal source:
  • SDI (Blackmagic DeckLink SDI card): Please review and/or update these Live Slicer configuration settings to reflect your installation. See Live Slicer Configuration File Settings for setting details.
    SettingDescription
    inputVerify that this setting is set to blackmagic.
    cardVerify that this setting is set to the card number corresponding to your Blackmagic DeckLink SDI card.
    SCTE104_DIDVerify that this setting correctly identifies the DID for SCTE104 triggers.
    SCTE104_SDIDVerify that this setting correctly identifies the SDID for SCTE104 triggers.
    captions_DIDVerify that this setting correctly identifies the DID for closed captioning.
    captions_SDIDVerify that this setting correctly identifies the SDID for closed captioning.
    ancillary_linesVerify that this setting accurately reflects the ancillary lines to be scanned.
  • UDP: Please update these Live Slicer configuration settings to reflect your installation. See Live Slicer Configuration File Settings for setting details.
    SettingActionDescription
    cardRemove/IgnoreThis setting does not apply to UDP streaming and will be ignored.
    SCTE104_DIDRemove/IgnoreThis setting does not apply to UDP streaming and will be ignored.
    SCTE104_SDIDRemove/IgnoreThis setting does not apply to UDP streaming and will be ignored.
    captions_DIDRemove/IgnoreThis setting does not apply to UDP streaming and will be ignored.
    captions_SDIDRemove/IgnoreThis setting does not apply to UDP streaming and will be ignored.
    ancillary_linesRemove/IgnoreThis setting does not apply to UDP streaming and will be ignored.
    inputModifySet it to udp.
    unicast or multicastAddAdd either a unicast or multicast setting to the configuration file. Set it to the IP address of the computer generating the UDP stream.
    portAddAdd this setting and set it to the port on which the Live Slicer will listen for the UDP stream.
    rtp_headersAddRTP Only: Add this setting and set it to 1.
    If you do not plan on using RTP and this setting is present in your configuration file, then either remove this setting or set it to 0.
    rtp_readahead_durAddRTP Only: Add this setting and set it to the number of seconds (e.g., 2.0) that the Live Slicer will wait before uploading the stream to the cloud.
    rtp_backlog_durAddRTP Only: Add this setting and set it to the number of seconds (e.g., 1.4) for which packet history will be preserved to reduce dropped packets.
    rtp_redundant_feedAddRTP Only: Add this setting and set it to a URL that points to a redundant RTP feed through which the original stream will be reconstructed.
    A redundant RTP feed requires the source computer to have two network routes (e.g., 2-port network card).
    Sample configuration: rtp_redundant_feed: rtp://stream.example.com:1234
    If you plan on streaming RTP over UDP, then use the Status endpoint of the Live Slicer API to monitor your RTP feeds and FEC status.
    Multiple Ethernet Adapters
    The Live Slicer listens for data on all interfaces. If multiple interfaces are available, then a packet may be received on one interface and then routed to a different one. This may cause the Linux kernel to apply reverse path filtering and therefore drop inbound packets that would have been routed to a different interface.
    Example:
    A packet is received from 239.0.0.0 on eth1. Sending a packet back to 239.0.0.0 would result in the packet being routed to eth0. This would trigger reverse path filtering and the inbound packet from eth1 would be dropped.
    Solution:
    The solution for this issue is to ensure that the desired multicast IP address is routable to the interface on which the Live Slicer will be listening.
    An alternative solution is to disable reverse path filtering. However, it is important to become acquainted with the security implications of this solution prior to its implementation.
  • RTMP
    Please do not publish your stream until after you have configured the Live Slicer to ingest RTMP, restarted it, and it is in the waiting for data state. Please restart stream encoding when your encoder cannot connect to the Live Slicer.
    The RTMP source is incompatible with SCTE, ad breaks, or Action Message Format (AMF).
    Please update these Live Slicer configuration settings to reflect your installation.
    SettingActionDescription
    cardRemove/IgnoreThis setting does not apply to the RTMP source and will be ignored.
    SCTE104_DIDRemove/IgnoreThis setting does not apply to the RTMP source and will be ignored.
    SCTE104_SDIDRemove/IgnoreThis setting does not apply to the RTMP source and will be ignored.
    captions_DIDRemove/IgnoreThis setting does not apply to the RTMP source and will be ignored.
    captions_SDIDRemove/IgnoreThis setting does not apply to the RTMP source and will be ignored.
    ancillary_linesRemove/IgnoreThis setting does not apply to the RTMP source and will be ignored.
    inputModifySet it to rtmp.
    See Live Slicer Configuration File Settings for setting details.
    rtmp_urlAddAdd this setting and set it to the URL for the RTMP stream that your encoder will push to the Live Slicer.
    You may configure the Live Slicer to pull the RTMP stream from your encoder through the enable_rtmp_pull setting.
    See Live Slicer Configuration File Settings for setting details.
  • SRT: Please update these Live Slicer configuration settings to reflect your installation.
    SettingActionDescription
    cardRemove/IgnoreThis setting does not apply to SRT streaming and will be ignored.
    SCTE104_DIDRemove/IgnoreThis setting does not apply to SRT streaming and will be ignored.
    SCTE104_SDIDRemove/IgnoreThis setting does not apply to SRT streaming and will be ignored.
    captions_DIDRemove/IgnoreThis setting does not apply to SRT streaming and will be ignored.
    captions_SDIDRemove/IgnoreThis setting does not apply to SRT streaming and will be ignored.
    ancillary_linesRemove/IgnoreThis setting does not apply to SRT streaming and will be ignored.
    inputModifySet it to srt.
    See Live Slicer Configuration File Settings for setting details.
    input_addrAddSet it to the IP address of the computer generating the SRT stream.
    See Live Slicer Configuration File Settings for setting details.
    portAddAdd this setting and set it to the port on which the Live Slicer will listen for the SRT stream.
    See Live Slicer Configuration File Settings for setting details.
  • TCP: Please update these Live Slicer configuration settings to reflect your installation.
    SettingActionDescription
    cardRemove/IgnoreThis setting does not apply to TCP streaming and will be ignored.
    SCTE104_DIDRemove/IgnoreThis setting does not apply to TCP streaming and will be ignored.
    SCTE104_SDIDRemove/IgnoreThis setting does not apply to TCP streaming and will be ignored.
    captions_DIDRemove/IgnoreThis setting does not apply to TCP streaming and will be ignored.
    captions_SDIDRemove/IgnoreThis setting does not apply to TCP streaming and will be ignored.
    ancillary_linesRemove/IgnoreThis setting does not apply to TCP streaming and will be ignored.
    inputModifySet it to tcp. See Live Slicer Configuration File Settings for setting details.
    input_addrAddSet it to the IP address of the computer generating the TCP stream.See Live Slicer Configuration File Settings for setting details.
    portAddAdd this setting and set it to the port on which the Live Slicer will listen for the TCP stream. See Live Slicer Configuration File Settings for setting details.
    The Live Slicer must be restarted for configuration changes to take effect.
    Additional settings may be added to define the audio/video tracks to be processed, define the language for audio tracks, and to specify a description for audio tracks. View a comprehensive listing of settings.

SCTE 35/104 Signal Processing

By default, the Live Slicer performs basic SCTE 35/104 signal processing. Specifically, it converts SCTE 104 to SCTE 35 and then applies SCTE 35 signal processing to it. This allows a single plugin to support SDI, UDP, and RTMP. If the SCTE processing provided by the baseline plugin is insufficient, use the Python plugin to add custom Python functions.
Disable SCTE processing
Define the following setting in your Live Slicer configuration file:
scte_type: none

Metadata

By default, metadata is not defined for assets generated by the Live Slicer. However, an asset’s metadata may be defined through any of the following methods:
  • Live Slicer Configuration File: Use the meta configuration parameter to define a key/value pair for the desired metadata field. By default, the metadata defined by this parameter will be assigned to assets generated by the Live Slicer.
    Define additional metadata fields by specifying this configuration parameter on a separate line for each desired field.
    Example:
    1meta MyField1=ValueA
    2
    3meta MyField2=ValueB
  • Live Slicer API: Assign metadata to a particular asset through the add_meta method.
    The add_meta method takes precedence when the same metadata field is defined by both methods.
Metadata may be defined when setting up a live channel. However, this metadata only applies to the live channel object. Assets generated from a live channel will not inherit metadata from that live channel.

Color Space

By default, the Live Slicer will automatically convert the input signal’s color standard to either HDR10 or SDR according to whether your encoding profile supports HDR.
Encoding ProfileColor Standard (Source)Color Standard (Output)
HDRHDR (including HLG) or SDR
All SDR source content, including ads, will be converted to HDR10.
HDR10
SDRHDR (including HLG) or SDRSDR

Custom Color Representation

Customize color representation conversion by assigning a lookup table (LUT) to the desired color space conversion. Define this mapping through the rgb_lut setting.
Key information
  • Verify that your LUT adheres to Adobe’s Cube LUT Specification 1.0. You may define multiple RGB LUTs to adjust for different input signals. The Live Slicer determines which configuration to use based on the output signal’s color standard (i.e., HDR10 or SDR). If multiple LUTs have been defined for that color standard, then it will use the configuration that best matches the input signal’s color space and range.
  • By default, the output signal’s color space uses a narrow (i.e., limited) range (16 - 235). You may define the desired range when configuring the rgb_lut setting.
    Example:
    The following configuration uses a custom LUT to generate an HDR 10 output signal with a full range when the input signal is HLG:
    rgb_lut from hlg to hdr10,full /path/mylut.cube
  • Alternatively, you may explicitly define a color space, a color primary, the transformation characteristics, and the range.
    Example:
    The following configuration is equivalent to the above sample configuration:
    rgb_lut from colorspace:bt2020nc,primaries:bt2020,trc:arib-std-b67,range:tv to colorspace:bt2020nc,primaries:bt2020,trc:smpte2084,range:pc /path/mylut.cube
See Live Slicer Configuration File Settings.

Audio

Audio Ingest

The Live Slicer’s behavior with regards to audio ingest varies depending on whether you are streaming over UDP, RTMP, or SDI.
  • UDP / RTMP / SRT / TCP
    You must specify each audio track that will be ingested via the pids parameter.

    Example

    The following configuration initializes the audio tracks that correspond to the packets with identifiers 308, 256, 257, and 258:
    pids: 308,256,257,258
  • SDI: The Live Slicer automatically ingests the audio tracks that correspond to SDI channels 0 - 15.

Audio Codec

By default, the Live Slicer encodes audio using the Advanced Audio Coding (AAC) audio codec. However, you may configure it to encode an audio track into Dolby Digital Plus (DD+) and AAC subtracks by passing the audio_dolby_# parameter.
Playback of DD+ audio subtracks requires the ddp playback URL parameter.
Sample Configurations
  • UDP: The following configuration will encode track 257 as DD+ and encode all of the other tracks (i.e., 257, 258, and 308) defined by the pids parameter as AAC:
    1pids: 308,256,257,258
    2audio_lang_256: eng
    3audio_desc_256: primary
    4audio_lang_257: eng
    5audio_desc_257: secondary
    6audio_dolby_257: 1
  • SDI: The following configuration will encode the audio track for SDI channel 7 as DD+ and encode all of the other tracks (i.e., SDI channels 0 - 6 and 8 - 15) as AAC: audio_dolby_7: 1

Audio Normalization

By default, assets are encoded at approximately the same level of loudness. This level may be adjusted via the gain setting. Use this setting to determine the gain or attenuation, in decibels, that should be applied to the live signal as it is encoded.
The Live Slicer logs the calculated gain value every ten seconds. Monitor /var/log/syslog to find the appropriate value for the gain setting.

Audio Channel Layout (SDI Signal)

The Live Slicer may be configured to use either Standard or Custom audio channel layouts.

Standard Layout (SDI Signal)

Configure a standard audio channel layout through the use of the audio_layout parameter.
Audio ChannelChannel Layout
stereo 1
  • 1: Left
  • 2: Right
stereo 2
  • 3: Left
  • 4: Right
stereo 3
  • 5: Left
  • 6: Right
stereo 4
  • 7: Left
  • 8: Right
stereo 5
  • 9: Left
  • 10: Right
stereo 6
  • 11: Left
  • 12: Right
stereo 7
  • 13: Left
  • 14: Right
stereo 8
  • 15: Left
  • 16: Right
5.1
  • 1: Center
  • 2: Left
  • 3: Right
  • 4: Rear Left
  • 5: Rear Right
  • 6: LFE (Sub)
CEA
  • 1: Left
  • 2: Right
  • 3: Center
  • 4: LFE (Sub)
  • 5: Surround Left
  • 6: Surround Right
7.1
  • 1: Center
  • 2: Left
  • 3: Right
  • 4: Rear Left
  • 5: Rear Right
  • 6: LFE (Sub)
  • 7: Surround Left
  • 8: Surround Right

Custom Audio Layout (SDI Signal)

A custom audio channel layout allows each audio track to be mapped to one or more channels. Additionally, a custom level may be assigned to each mapped channel.
Terminology
Before defining a custom audio layout, it is important to become acquainted with the following terminology:
  • SDI Channel: Identifies a single unit within a representation of an audio stream. For example, the left portion of a stereo feed may consist of one or more SDI channels.
  • Track: Identifies the set of channels required to produce a single representation of an audio stream. For example, an audio track for a stereo feed may consist of two or more SDI channels.
Setup
Setting up a custom audio channel layout requires replacing the audio_layout configuration setting with audio_custom_layout_{Track}. The configuration for this setting varies according to how audio should be mapped.
Use the following syntax to downmix audio to mono:
audio_custom_layout_{Track}: mono|X={SDI_Input_Channel}@{Level}
Use the following syntax to downmix audio to stereo:
audio_custom_layout_{Track}: stereo|L={SDI_Input_Channel}@{Level},R={SDI_Input_Channel}@{Level}
Use the following syntax to downmix audio to 5.1:
audio_custom_layout_{Track}: 5.1|C={SDI_Input_Channel}@{Level},L={SDI_Input_Channel}@{Level},R={SDI_Input_Channel}@{Level},RL={SDI_Input_Channel}@{Level},RR={SDI_Input_Channel}@{Level},LFE={SDI_Input_Channel}@{Level}
Set up a custom audio channel layout
  1. Replace {Track} with the ID of the audio track that will be assigned a custom audio layout.
  2. Set X or L and R (Left and Right) to an ampersand delimited list of SDI channels that will serve as the source for the specified audio track. The valid range for each channel is 0 - 15.

    The following sample mono configuration sets the source for audio track 0 to SDI channels 0, 1, and 3.
    audio_custom_layout_0: mono|X=0&1&3

    The level for each assigned SDI channel may be defined by appending the @ symbol followed by the desired value. Use the following formula to calculate level:
    {Volume %} * 10

    The following sample stereo configuration sets Left to SDI channel 0 at 70.7% and SDI channel 2 at 80%, while Right is set to SDI channel 4 at 20.2%.
    audio_custom_layout_0: stereo|L=0@707&2@800,R=4@202

    If the audio level is missing, then it will be set to 100%. The following sample stereo configuration sets Left to SDI channel 0 at 100% and Right is set to SDI channels 3 and 4 at 100%.
    audio_custom_layout_0: stereo|L=0,R=3&4
Multiple Track Setup
A custom audio layout may be defined for multiple tracks (e.g., language-specific tracks). This type of setup requires informing the Live Slicer as to the number of tracks that will be mapped via the audio_tracks configuration setting.
The Live Slicer will only generate audio for a single track when this configuration setting is omitted.
Although we support up to 31 audio tracks, your SDI capture card can only detect up to 16 audio tracks.
Use the following syntax to indicate the number of audio tracks that will be mapped: audio_tracks: {Quantity}
For example, use the following configuration to indicate that a custom audio layout for three audio tracks (e.g., English, French, and Spanish) will be mapped: audio_tracks: 3
Audio Channel Layout
For UDP / RTMP / SRT / TCP
By default, the Live Slicer uses the following channel layout for Dolby: C L R RL RR LFE

Log Data

The Live Slicer outputs verbose logging information to syslog. A default syslog configuration will send these messages to: /var/log/syslog
The syslog contains valuable information that will help us troubleshoot Live Slicer-related issues. Please send us a compressed version of the syslog when experiencing issues with the Live Slicer.

Verbosity

By default, the Live Slicer logs error conditions and informational messages. Configure the Live Slicer to also log debug messages by adding the following configuration to your Live Slicer configuration file: verbosity: 3
Learn more.
Alternatively, use the following syntax if you plan on starting the Live Slicer via the command line:
sudo systemctl start uplynk_liveslicer.service -v 3

Live Slicer Failover

Live Slicer failover minimizes the impact to your viewer’s playback experience when a Live Slicer’s performance is sub-optimal by automatically switching the live stream’s source to a different Live Slicer.
Set up Live Slicer failover through the following steps:
  1. Create a failover group and assign it Live Slicers and live channel(s).
  2. Instruct each desired Live Slicer to join this failover group by updating its configuration file. Learn more.

Administration (initcl Commands)

Use the following commands to start, stop, and restart the Live Slicer.
ActionCommand
Startupstart:
sudo start uplynk_liveslicer
systemd:
sudo systemctl start uplynk_liveslicer.service
Stopupstart:
sudo stop uplynk_liveslicer
systemd:
sudo systemctl stop uplynk_liveslicer.service
Restartupstart:
sudo restart uplynk_liveslicer
systemd:
sudo systemctl restart uplynk_liveslicer.service
An invalid Live Slicer configuration may prevent the Live Slicer from starting up.
Review the syslog file to check whether the Live Slicer is running.
The Live Slicer will automatically start whenever the server is restarted.

Configuration File Settings

A brief description is provided below for each setting that may be defined in a Live Slicer’s configuration file (i.e., /etc/uplynk.conf).
By default, the value assigned to a setting cannot contain a hashtag. Learn how to override this behavior.

SettingDescription
ancillary_linesSDI (Blackmagic) Only.
Defines the ancillary lines that will be scanned (0 to 31). Ignored with ancillary_scan set to on or input set to UDP/RTMP.
Syntax
ancillary_lines: #, #, ...
Example
ancillary_lines: 9, 13
ancillary_scanSDI (Blackmagic) Only.
Determines whether all ancillary lines will be scanned.
Valid values
  • on (scan all)
  • off (scan only defined lines)
Syntax
ancillary_scan: on|off
Example
ancillary_scan: off
api_portAPI
Defines the port for API calls. Omit IP to bind to any adapter.
Default
127.0.0.1:65009
Syntax
IP Address:Port or Port.
Example
api_port: 127.0.0.1:65009
apikeyRequired.
Requires Live Slicer version 17111500 or higher
Defines the secret API key for authentication.
Syntax
apikey: API Key
Example
apikey: abcDEFghiJKLmnoPQRtuvWXYz123ABCdefGHIJKL
audio_custom_layout_TrackSDI (Blackmagic) Only.
Defines a custom audio channel layout for the {Track} variable.
This custom audio channel layout allows audio to be downmixed to mono or stereo. This configuration setting is incompatible with audio_layout. Please remove audio_layout from the Live Slicer configuration file prior to including this setting. This parameter does not apply to AC-3 audio or audio transmitted via UDP or RTMP. Although we support up to 31 audio tracks, your SDI capture card can only detect up to 16 audio tracks. Learn more.
Syntax (downmix audio to mono)
audio_custom_layout_{Track}: mono|X=SDI Input Channel@Level
Syntax (downmix audio to stereo)
audio_custom_layout_Track: stereo|L=SDI Input Channel@Level,R=SDI Input Channel@Level
Syntax (downmix audio to 5.1)
audio_custom_layout_{Track}: 5.1|C=SDI Input Channel@Level,L=SDI Input Channel@Level,R=SDI Input Channel@Level,LR=SDI Input Channel@Level,RR=SDI Input Channel@Level,LFE=SDI Input Channel@Level
Example
audio_custom_layout_0: stereo|L=0@707&2@800,R=4
audio_desc_#Assigns a description to an audio track. Identify the source audio track by specifying its SDI channel or PID within this setting’s name. By default, audio tracks are assigned a description of unspecified.
Syntax
audio_desc_#: Audio Track Description
Example
audio_desc_12: My Track
audio_dolby_#Set to 1 to encode audio as Dolby Digital Plus (DD+). Identify the source audio track by specifying its SDI channel or PID within this setting’s name.
Syntax
audio_dolby_#: 1
Example
audio_dolby_12: 1
audio_lang_PIDUDP and RTMP Only.
Assigns a language to the audio track with the PID.
Syntax
audio_lang_PID: Language
Example
audio_lang_12: en
audio_layoutSDI (Blackmagic) Only.
Defines a standard audio channel layout. This parameter does not apply to AC-3 audio or audio transmitted via UDP. Alternatively, each audio track may be assigned a custom audio layout. Use a custom audio layout to downmix audio to mono or stereo.
Valid values
stereo #, 5.1, CEA, 7.1.
Syntax
audio_layout: Audio Channel Layout
Example
audio_layout: 5.1
authenticated_api_portAdvanced.
Exposes the authenticated API on a specific port. Syntax (IP address and port)
authenticated_api_port: IP Address:Port or Port
Example
authenticated_api_port: 88
autoexpire_ageDetermines asset retention time.
Valid values
0 (no deletion) or # hours (number of hours that assets will be retained before being deleted).
Syntax
autoexpire_age: 0|Hours
Example
autoexpire_age: 24
backupAdvanced.
Determines whether to store content on alternate cloud storage.
Valid values
true (The Live Slicer will upload content to an alternate path on an alternate origin storage) or false (The Live Slicer will upload content to the default origin storage.).
Syntax
backup: true|false
Example
backup: false
blankVideoSampleDelayAdvanced - UDP and RTMP Only.
Defines the delay before blank video is inserted. This setting should be modified with care. Setting it too low will add unnecessary blank audio/video frames to your stream, while setting it too high will impact time-behind-live performance and slice creation.
Default value
9600
Valid values
48000 (1 second) or 96000 (2 seconds, recommended).
Syntax
blankVideoSampleDelay: 48000|96000
Example
blankVideoSampleDelay: 96000
captions_DIDSDI (Blackmagic) Only.
Identifies the DID for closed captions.
Syntax
captions_DID: DID
Example
captions_DID: 0x61
captions_SDIDSDI (Blackmagic) Only.
Identifies the SDID for closed captions.
Syntax
captions_SDID: SDID
Example
captions_SDID: 0x01
capture_delayDetermines the delay in seconds for timecode matching.
Syntax
capture_delay: Seconds
Example
capture_delay: 5
capture_modeSDI (Blackmagic) Only.
Determines the capture mode for Blackmagic DeckLink SDI card. Run the following command to view valid values for this setting: $ uplynk_liveslicer -card CardNumber -list
The recommended value for this setting is auto. This configuration allows the Live Slicer to autodetect the video mode for BlackMagic cards that support signal detection.
Syntax
capture_mode: Mode
Example
capture_mode: auto
cardSDI (Blackmagic) Only.
Identifies the card number(s) for Blackmagic DeckLink SDI card(s).
Syntax
card: Card Number
Example
card: 1
cc#_descAdvanced.
Defines a description for the closed captioning channel.
Syntax
cc#_desc: CC Channel Description
Example
cc1_desc: English
cc#_langAdvanced.
Identifies the language for the closed captioning channel. Specify a language by its code (e.g., en).
Syntax
cc#_lang: CC Channel Language
Example
cc1_lang: en
cc_filterAdvanced.
Determines whether closed captions will be filtered.
Valid values
on (Disables filtering CEA-608/708 captions on all channels with the exception of channel 1) or off (Filters CEA-608/708 captions on all channels)
Syntax
cc_filter: on|off
Example
cc_filter: on
debugoverlayAdvanced.
Set to 1 to overlay debug information on the video. This setting should not be used for production traffic. The type of debug information to be overlaid onto the video may vary by Live Slicer version.
Example
debugoverlay: 1
descriptionRequired. Defines a description for new assets.
Syntax
description: Asset Description
Example
description: My Live Event
disable_slicer_config_uploadRequires Slicer version 22083100 or higher.
Determines whether to automatically upload configuration files. The Live Slicer excludes sensitive data when uploading your configuration file. Specifically, the uploaded configuration file will exclude the username and apikey settings.
Valid values
yes (The Live Slicer will not upload your configuration file) or no (Default. Allows the Live Slicer to automatically upload your configuration file to our service)
Example
disable_slicer_config_upload: yes
drm_modeRequires Slicer version 18052400 or higher. Determines the security level for CMS assets. Once Studio DRM is activated on your account, Studio DRM encryption is automatically applied to all new assets. This setting does not alter this behavior. It determines whether Studio DRM will be enforced and whether playback URLs must be signed.
Syntax
-drm_mode Mode
Valid values
none, regular (signed playback URL), studio (signed playback URL and Studio DRM)
Example
-drm_mode: studio
drop_expired_breaksDetermines how expired API requests are handled.
Valid values
on (ignore) or off (perform action defined within an API request once it has been retained for the duration defined within the future_break_expiration_minutes setting. This occurs regardless of whether the specified timecode has elapsed.).
Example
drop_expired_breaks: on
enable_remote_configRequires Slicer version 21071400 or higher. Set to 1 to allow reporting health status according to the criteria defined within a failover group.This setting may override settings that precede it in the configuration file. It is strongly recommended to define this setting after the failover_id setting.
Valid values
0 or 1
Example
enable_remote_config: 1
enable_rtmp_pullRTMP Only.
Requires Slicer version 22083100 or higher.
Determines if RTMP feed can be pulled.
Valid values
yes (Allows the Live Slicer to pull the RTMP feed) or no (Live Slicer will not pull RTMP feeds. Your encoder must push the RTMP feed to the Live Slicer)
Example
enable_rtmp_pull: yes
failover_idRequires Slicer version 20081700 or higher.
Assigns a failover group to the Live Slicer. Live Slicer failover also requires that you add this Live Slicer to the failover group identified by this setting. Learn more.
Syntax
failover_id: ID
Example
failover_id: 1232b8646dea4cd0a48f5e0ffaa4f8c7
future_break_expiration_minutesDetermines the number of minutes that the Live Slicer will retain an API request for a scheduled break before flagging it as eligible for expiration. The drop_expired_breaks setting determines how the Live Slicer handles expired API requests.
Syntax
future_break_expiration_minutes: {Minutes}
Example
future_break_expiration_minutes: 50
future_timecodesDetermines whether timecodes up to 12 hours in the future can be resolved.
Valid values
on (Allows timecodes up to 12 hours in the future) or off (Default. Requires the Live Slicer to resolve timecodes within the capture delay buffer)
Example
future_timecodes:on
gainAdjusts audio gain in decibels. Positive values increase gain, negative decrease.
Syntax
gain: Gain
Example
gain: 5.0
inputDetermines the signal’s input source.
Valid values
blackmagic (Indicates that the source is a Blackmagic DeckLink SDI card), rtmp (Indicates that the source is the RTMP stream identified by the rtmp_url parameter. The RTMP source is incompatible with SCTE, ad breaks, or Action Message Format (AMF).), srt (Indicates that the source is a SRT MPEG2 transport stream. This stream must originate from the IP address defined within the input_addr setting.), tcp (Indicates that the source is a TCP MPEG2 transport stream. This stream must originate from the IP address defined within the input_addr setting.), udp (Indicates that the source is a UDP unicast or multicast MPEG2 transport stream).
Syntax
input: blackmagic|rtmp|srt|tcp|udp.
Example
input: udp
input_addrSRT and TCP.
Defines the IP address for feed ingestion.
Syntax
input_addr: IP Address.
Example
input_addr: 192.0.2.1
livepreview_max_viewersDetermines max simultaneous viewers for Live Events Dashboard’s Slicer Live Preview. Each instance of a live preview consumes resources on the computer hosting the Live Slicer. This setting is designed to prevent performance issues by capping the number of simultaneous connections.
Default value
10
Example
livepreview_max_viewers: 10
livepreview_with_audioRequires Slicer version 22083100 or higher.
Enables audio for Live Events Dashboard’s Slicer Live Preview.
Valid values
on or off
Example
livepreview_with_audio: on
metaDefines metadata for assets. Add this setting for each desired metadata field. Each instance of this setting should be specified on a separate line.
Syntax
meta: Field=Value
Example
meta: My Field A=Value A
meta: My Field B=Value B
multicastUDP Only. Defines the IP address of the computer generating the UDP multicast stream. This setting must be defined when the signal’s input source is a UDP multicast MPEG2 transport stream.
Syntax
multicast: IP Address
Example
multicast: 100.100.55.22
nielsenAdvanced.
Set to 1 to scan for Nielsen audio watermarks. DASH Streaming Only: Please also set the nielsen customization parameter within the playback URL.
Example
nielsen: 1
nielsen_ad_modeAdvanced.
Defines Nielsen breakout code.
Default value
00
Syntax
nielsen_ad_mode: 00|03|07|09
Example
nielsen_ad_mode: 00
nielsen_distributorAdvanced.
Defines Nielsen distributor for watermarks and ID3 tags.
Default value
www.uplynk.com
Syntax
nielsen_distributor: Distributor ID
Example
nielsen_distributor: www.example.com
no_signal_imageAdvanced - UDP and RTMP Only.
Identifies an image to display when the signal is lost and black video is streamed. The no_signal_pad setting determines whether black or green video is streamed when the signal is lost.
Syntax
no_signal_image: Filename
Example
no_signal_image: lostsignal.png
no_signal_padAdvanced - UDP Only.
Defines time in seconds for solid black video when the signal is lost.
Syntax
no_signal_pad: Seconds
Example
no_signal_pad: 30
no_signal_shutdown_timeAdvanced - UDP Only.
Determines time in seconds before the Live Slicer shuts down after signal loss.
Syntax
no_signal_shutdown
parse_XDSAdvanced.
By default, uses XDS data to update asset’s title and rating information. Disable with parse_XDS: no.
pidsUDP and RTMP Only.
Identifies the set of audio/video tracks that will be consumed by the Live Slicer. Configure this setting to a comma-separated list of PIDs that correspond to the desired audio/video tracks. All other audio/video tracks will be ignored by the Live Slicer. By default, the Live Slicer will consume the first audio/video track when a progID and PIDs have not been specified.
Syntax
pids: PID 1, PID 2, PID n
Example
pids: 12, 14, 16.
portRequired for UDP
Identifies the UDP port.
Syntax
port: Port
Example
port: 1234.
previewDetermines if the Live Events Dashboard’s Slicer Live Preview will display a video preview. If the livepreview_with_audio setting is not enabled, then this preview will only consist of video. Valid values are on or off.
progIDUDP Only.
Identifies the program in a multi-program transport stream. Configure this setting to the ID of the desired program. If the pids setting has not been defined, then all audio tracks in the program will be consumed. By default, the Live Slicer will consume the first audio/video track when a progID and PIDs have not been specified.
Syntax
progID: Program ID
Example
progID: 128.
render_608Requires version 19022000 or higher.
Converts CEA-608/708 channels to WebVTT.
Example
render_608: cc1,cc2,cc3,cc4.
render_608_bufferRequires version 19022000 or higher.
Determines the maximum buffer duration, in seconds, for rending captions to video. Raw video frames will be buffered for the specified duration and therefore is memory intensive. Although memory usage will vary according to resolution and frames per seconds, we strongly discourage a buffer size greater than 5 seconds. This buffer is only relevant for pop-on captions. Roll-up and paint-on captions are rendered immediately and therefore do not require a buffer.
Syntax
render_608_buffer: {Seconds}
Example
render_608_buffer: 2.
render_teletextRequires version 20031300 or higher.
Converts DVB teletext pages to WebVTT. Use this parameter to assign a language track to a DVB teletext page number. Use a comma to delimit multiple DVB teletext configurations.
Syntax
render_teletext {Page Number 1}:{Language 1},{Page Number 2}:{Language 2},{Page Number n}:{Language n}
Example
Converts English DVB teletext from page 888, Italian DVB teletext from page 887, and Russian DVB teletext from page 886: render_teletext 888:eng,887:it,886:ru.
rgb_lutRequires version 20092800 or higher.
Customizes color representation conversion.
Syntax (Simple)
rgb_lut from {Color Standard},{Range} to {Color Standard},{Range} /{Absolute Path}/{Cube File Name}
Syntax (Extended)
rgb_lut from colorspace:{Color Space},primaries:{RGB Primaries},trc:{Transformation Characteristics},range:{Range} to colorspace:{Color Space},primaries:{RGB Primaries},trc:{Transformation Characteristics},range:{Range} /{Absolute Path}/{Cube File Name}
Example (simple)
rgb_lut from hlg to hdr10,full /path/mylut.cube.
Learn more.
rtmp_urlRTMP Only.
Identifies the RTMP stream URL. The enable_rtmp_pull setting determines whether the Live Slicer may pull the RTMP stream instead of monitoring this URL for a stream pushed by your encoder.
Example
rtmp://example.com:1935/live/mystream.
rtp_backlog_durRTP Only.
Determines the seconds for packet history preservation.
Syntax
rtp_backlog_dur: {Seconds}.{Deciseconds}
Recommended Configuration
rtp_backlog_dur: 1.4
rtp_headersDetermines RTP usage when streaming over UDP. Valid values are 0 (off) and 1 (on)
Example
rtp_headers: 1
rtp_readahead_durRTP Only.
Balance stream latency with tolerance to disordered packets and forward error correction (FEC) latency when configuring this setting. Set it higher than the average value reported by the skew_sec statistic reported by the Status endpoint of the Live Slicer API.
Syntax
rtp_readahead_dur: {Seconds}.{Deciseconds}
Default Configuration
rtp_readahead_dur: 2.0
rtp_redundant_feedRTP Only.
Identifies the URL to a backup SMPTE 2022-compliant RTP feed through which the original stream will be reconstructed. Packets missing from one feed will be taken from the other feed. A redundant RTP feed requires the source computer to have two network routes (e.g., 2-port network card).
Syntax
rtp_redundant_feed: rtp://{hostname}:{port}
Example
rtp_redundant_feed: rtp://stream.example.com:1234.
scte_moduleIdentifies the SCTE plugin for SCTE 35/104 signal processing. This parameter requires scte_type to be set to python. This parameter requires scte_type to be set to python. You may omit the absolute path to the desired Python file and its file name extension when it resides in the “plugins” subfolder of your Live Slicer’s installation directory. Valid values are scte_baseline or Python file path.
Python Syntax (default path)
scte_module: {File Name without Extension}
Example
scte_module: my_scte_plugin
Syntax (custom path)
scte_module: /{Absolute Path}/{File Name}
Example
/Users/joe/plugins/my_scte_plugin.py
Learn more.
scte_python_versionRequires version 20031300 or higher
Determines the Python version. Valid values are 2.7, 3.6, 3.6m. Default Configuration
scte_python_version: 2.7.
scte_typeDetermines how SCTE 35/104 signals are processed. Valid values are none (Disables SCTE 35/104 signal processing) or python (Allows SCTE 35/104 signal processing. The scte_module parameter determines the SCTE plugin that will process your SCTE 35/104 signal).
SCTE104_DIDSDI (Blackmagic) Only.
Defines the DID for SCTE104 triggers.
Syntax
SCTE104_DID: DID
Example
SCTE104_DID: 0x41.
SCTE104_SDIDSDI (Blackmagic) Only.
Defines the SDID for SCTE104 triggers.
Syntax
SCTE104_SDID: SDID
Example
SCTE104_SDID: 0x07.
slicerIDRequired.
Assigns a unique ID to a Live Slicer. Use this ID to identify this Live Slicer when setting up a live channel or a live event.
Syntax
slicerID: Live Slicer ID
Example
slicerID: SportsFeed1.
ssl_portExposes the authenticated API over SSL/TLS. Use this parameter to allow the Live Slicer to communicate with the Live Events Dashboard without causing mixed content blocking.
Syntax
ssl_port: IP Address:Port or ssl_port: Port.
Example
ssl_port: 443.
start_blackoutAdvanced.
Determines if the Live Slicer will start in blackout mode. Valid values are yes (Indicates that the Live Slicer will start in blackout mode) or sticky (Indicates that the Live Slicer will resume its previous mode upon being started. For example, if a Live Slicer was stopped in blackout mode, then it will resume blackout mode the next time that it is started.).
Syntax
start_blackout: yes|sticky
Example
start_blackout: sticky.
thumbnailAdds a thumbnail with specified dimensions. A default thumbnail will be created regardless of whether this option is passed. The upper-bound for a thumbnail’s dimensions is determined by the specified width and height. The thumbnail will fit within the specified dimensions, while maintaining the source video’s aspect ratio. A thumbnail’s maximum size cannot exceed any of the following dimensions: Your source video’s resolution; your encoding profile’s maximum resolution; 1280x720 or 720x1280. Add this setting for each desired thumbnail size. Each instance of this setting should be specified on a separate line. Generating additional thumbnails may incur additional storage costs.
Syntax
thumbnail: Prefix=WidthxHeight
Example
thumbnail: tiny=150x150
thumbnail: small=200x200
timecardAdvanced - SDI (Blackmagic) Only.
Determines whether the Live Slicer will load a dynamic library (i.e., libuplynk_timecode.so) that facilitates the integration of an external timecode generator. Enable this capability by configuring this setting to true.
Example
timecard: true.
timecodeAdvanced.
Adds an ID3 tag that defines the time for pic_timing data.
Syntax
timecode: hh:mm:ss:ff
Example
timecode: 11:22:11:03.
unicastUDP Only.
Defines the IP address for UDP unicast stream. This setting must be defined when the signal’s input source is a UDP unicast MPEG2 transport stream.
Syntax
unicast: IP Address
Example
unicast: 100.100.55.22.
upscaleRequires version 21070801 or higher.
Set to yes to upscale video feed to the highest quality. Your content’s frame rate is independent of resolution. Therefore, upscaling your video feed will not affect its frame rate. Ads are always upscaled regardless of this setting.
Example
upscale: yes.
usernameRequired.
Defines the user name for authentication. Typically, your user name is the email address associated with your account.
Example
username: joe@example.com.
useSystemClockAsTimecodeUDP (including RTP) and RTMP: Set to 1 to enable start_timecode parameter support.
verbositySets log data verbosity level. Valid values are 1 (default. Logs error conditions and informational messages) or 3 (Logs error conditions, informational messages, and debug messages).
Positive Values: The video will be forced ahead of the audio by the specified amount of time.
Negative Values: The video will be forced behind the audio.
Syntax
username: User Name
Example
verbosity: 3.
video_sync_msAdvanced - SDI (Blackmagic) Only
Sets audio/video sync offset in milliseconds.
Syntax
video_sync_ms: Milliseconds
Example
video_sync_ms: 55.
wallclockAdvanced.
Adds an ID3 tag based on timestamp to each slice. This setting relies on the system time of the computer hosting the Live Slicer.
Example
wallclock: true

Hashtags

By default, the hashtag symbol (i.e., #) indicates the start of a comment in a configuration file. Override this behavior by renaming the desired setting as indicated below.
verbatim_Setting
Please remove comments from settings to which the above workaround has been applied.
Most settings only support predefined values or integers. Do not apply this override procedure to those settings.
Example
In this example, the description setting is set to Live Capture and a brief description of this setting appears directly to the right of the hashtag symbol.
1description: Live Capture # A description that will be assigned to new assets.
2
3...
In order to set the description setting to a value that contains a hashtag, we will modify its name to include the prefix verbatim_ and we will remove the comment from that line.
1verbatim_description: #1 Videos by Genre
2
3...
The above configuration sets the verbatim_description setting to #1 Videos by Genre.

More Information