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:
-
Verify System Requirements: Ensure that the desired computer meets or exceeds the minimum system requirements:
Component
Description
CPU
Quad-core x86-64 (2GHz)
Memory
6 GB
Storage
80 GB
Upload Bandwidth
Your 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). <Warning>Insufficient bandwidth may affect performance and result in slate.</Warning>
OS
Optimized for:
- Ubuntu Linux 24.04 LTS 64-bit or higher (tested on 22.04 LTS and 24.04 LTS)Live Feed
The 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 website.
- 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 theenable_rtmp_pullsetting.
- 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.Ports
Outbound connections on ports 80 and 443
-
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.
-
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.
<Tip>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.</Tip>
-
Live Slicer version 21092100 or higher: Install the
libnl-3.200library.Command:
sudo apt install libnl-3-200 -
Python and bzip2: Install the
python bzip2applications.Command:
sudo apt install python bzip2 -
Download the Live Slicer by clicking Downloads from the bottom right-hand corner of the CMS and then clicking on the desired OS.
-
Extract the zip file to the desired directory.
Command:
$ tar -xvf uplynk_slicer_linux_64-231114.04.01.tbz2uplynk_slicer_linux_64-231114.04.01-master/ uplynk_slicer_linux_64-231114.04.01-master/slicebot.cfg.example uplynk_slicer_linux_64-231114.04.01-master/libfreetype.so.6 uplynk_slicer_linux_64-231114.04.01-master/libavcodec.so.57 uplynk_slicer_linux_64-231114.04.01-master/libcares.so.2 uplynk_slicer_linux_64-231114.04.01-master/slicer uplynk_slicer_linux_64-231114.04.01-master/example.conf uplynk_slicer_linux_64-231114.04.01-master/libcrypto.so.1.0.0 uplynk_slicer_linux_64-231114.04.01-master/libssl.so.1.0.0 uplynk_slicer_linux_64-231114.04.01-master/liveslicer uplynk_slicer_linux_64-231114.04.01-master/font_i420.dat uplynk_slicer_linux_64-231114.04.01-master/libavfilter.so.6 uplynk_slicer_linux_64-231114.04.01-master/ca-bundle.crt uplynk_slicer_linux_64-231114.04.01-master/install_live uplynk_slicer_linux_64-231114.04.01-master/libswscale.so.4 uplynk_slicer_linux_64-231114.04.01-master/libswresample.so.2.4.100 uplynk_slicer_linux_64-231114.04.01-master/libbeam-slicer.so uplynk_slicer_linux_64-231114.04.01-master/libopus.so.0 uplynk_slicer_linux_64-231114.04.01-master/libopus.so.0.5.0 uplynk_slicer_linux_64-231114.04.01-master/LICENSE.txt uplynk_slicer_linux_64-231114.04.01-master/slicebot uplynk_slicer_linux_64-231114.04.01-master/README.html uplynk_slicer_linux_64-231114.04.01-master/libavformat.so.57 uplynk_slicer_linux_64-231114.04.01-master/libavformat.so.57.58.101 uplynk_slicer_linux_64-231114.04.01-master/libavutil.so.55 -
Navigate to the newly created directory.
Command:
$ cd uplynk_slicer_linux_64-231114.04.01-master/ -
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:
Setting | Description |
|---|---|
description | Set this to a description that will be assigned to new assets. |
username | Set this to the email address associated with your account. |
apikey | If 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 |
slicerID | Set this to a case-sensitive alphanumeric value by which this Live Slicer will be identified. |
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).
<Info>If you plan on streaming over RTP, then you must process your audio/video feed using ffmpeg and serve it over UDP.</Info>
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.
Setting Description input Verify that this setting is set to blackmagic.card Verify that this setting is set to the card number corresponding to your Blackmagic DeckLink SDI card. SCTE104_DID Verify that this setting correctly identifies the DID for SCTE104 triggers. SCTE104_SDID Verify that this setting correctly identifies the SDID for SCTE104 triggers. captions_DID Verify that this setting correctly identifies the DID for closed captioning. captions_SDID Verify that this setting correctly identifies the SDID for closed captioning. ancillary_lines Verify 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.
Setting | Action | Description |
|---|---|---|
card | Remove/Ignore | This setting does not apply to UDP streaming and will be ignored. |
SCTE104_DID | Remove/Ignore | This setting does not apply to UDP streaming and will be ignored. |
SCTE104_SDID | Remove/Ignore | This setting does not apply to UDP streaming and will be ignored. |
captions_DID | Remove/Ignore | This setting does not apply to UDP streaming and will be ignored. |
captions_SDID | Remove/Ignore | This setting does not apply to UDP streaming and will be ignored. |
ancillary_lines | Remove/Ignore | This setting does not apply to UDP streaming and will be ignored. |
input | Modify | Set it to |
unicast or multicast | Add | Add either a unicast or multicast setting to the configuration file. Set it to the IP address of the computer generating the UDP stream. |
port | Add | Add this setting and set it to the port on which the Live Slicer will listen for the UDP stream. |
rtp_headers | Add |
|
rtp_readahead_dur | Add |
|
rtp_backlog_dur | Add |
|
rtp_redundant_feed | Add |
|
<Tip>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.</Tip>
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.
<Info>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.</Info>
-
RTMP
<Info>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.</Info>
<Info>The RTMP source is incompatible with SCTE, ad breaks, or Action Message Format (AMF).</Info>
Please update these Live Slicer configuration settings to reflect your installation.
Setting | Action | Description |
|---|---|---|
card | Remove/Ignore | This setting does not apply to the RTMP source and will be ignored. |
SCTE104_DID | Remove/Ignore | This setting does not apply to the RTMP source and will be ignored. |
SCTE104_SDID | Remove/Ignore | This setting does not apply to the RTMP source and will be ignored. |
captions_DID | Remove/Ignore | This setting does not apply to the RTMP source and will be ignored. |
captions_SDID | Remove/Ignore | This setting does not apply to the RTMP source and will be ignored. |
ancillary_lines | Remove/Ignore | This setting does not apply to the RTMP source and will be ignored. |
input | Modify | Set it to |
rtmp_url | Add | Add this setting and set it to the URL for the RTMP stream that your encoder will push to the Live Slicer. |
-
SRT: Please update these Live Slicer configuration settings to reflect your installation.
Setting Action Description card Remove/Ignore This setting does not apply to SRT streaming and will be ignored. SCTE104_DID Remove/Ignore This setting does not apply to SRT streaming and will be ignored. SCTE104_SDID Remove/Ignore This setting does not apply to SRT streaming and will be ignored. captions_DID Remove/Ignore This setting does not apply to SRT streaming and will be ignored. captions_SDID Remove/Ignore This setting does not apply to SRT streaming and will be ignored. ancillary_lines Remove/Ignore This setting does not apply to SRT streaming and will be ignored. input Modify Set it to srt.
See Live Slicer Configuration File Settings for setting details.input_addr Add Set it to the IP address of the computer generating the SRT stream.
See Live Slicer Configuration File Settings for setting details.port Add Add 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.
Setting Action Description card Remove/Ignore This setting does not apply to TCP streaming and will be ignored. SCTE104_DID Remove/Ignore This setting does not apply to TCP streaming and will be ignored. SCTE104_SDID Remove/Ignore This setting does not apply to TCP streaming and will be ignored. captions_DID Remove/Ignore This setting does not apply to TCP streaming and will be ignored. captions_SDID Remove/Ignore This setting does not apply to TCP streaming and will be ignored. ancillary_lines Remove/Ignore This setting does not apply to TCP streaming and will be ignored. input Modify Set it to tcp. See Live Slicer Configuration File Settings for setting details.input_addr Add Set it to the IP address of the computer generating the TCP stream.See Live Slicer Configuration File Settings for setting details. port Add Add 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. <Info>The Live Slicer must be restarted for configuration changes to take effect.</Info>
<Info>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.</Info>
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:
meta MyField1=ValueA meta MyField2=ValueB -
Live Slicer API: Assign metadata to a particular asset through the
add_metamethod.<Tip>The add_meta method takes precedence when the same metadata field is defined by both methods.</Tip>
<Info>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.</Info>
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 Profile | Color Standard (Source) | Color Standard (Output) |
|---|---|---|
| HDR | HDR (including HLG) or SDR All SDR source content, including ads, will be converted to HDR10. | HDR10 |
| SDR | HDR (including HLG) or SDR | SDR |
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 thepidsparameter.
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.
<Info>Playback of DD+ audio subtracks requires the ddp playback URL parameter.</Info>
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:
pids: 308,256,257,258 audio_lang_256: eng audio_desc_256: primary audio_lang_257: eng audio_desc_257: secondary audio_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.
For real-time audio normalization when encoding, the best way to do it with Uplynk is to use the enable_loudnormand target_loudness parameters which implement loudness normalization (loudnorm) according to recommendation EBU (European Broadcasting Union) R 128.
The enable_loudnorm is the actual enable for doing loudnorm, and target_loudness is the target loudness in LUFS (Loudness Units Relative to Full Scale). Historical default Uplynk platform loudness is -20 LUFS. Ads are encoded just-in-time at the same loudness as the content for compliance with the CALM Act.
There is a less CPU-intensive way to do audio normalization using the enable_dyn_gain parameter instead of enable_loudnorm. The enable_loudnorm will take precedence if both enable_loudnorm and enable_dyn_gain enabled at the same time, which is not recommended in any case.
Using PMT Instead of Specifying Individual Audio PIDs
Starting with the May 2025 Slicer Release (250516.01.01-rc1), the Live Slicer supports the ability to specify audio settings without knowing the individual audio PIDs. The Program Map Table (PMT) is read to determine the audio PIDs used by the input stream.
This is useful for a linear channel where the audio streams may change, such as when one program has a Spanish language audio track for a given audio PID, but then the next one doesn’t and has English on that audio PID.
This functionality is controlled via three Live Slicer parameters, one existing and two new:
progID(existing)use_all_audio_tracks(new, enabled by default whenprogIDis used)handle_pmt_changes(new, enabled by default)
The progID parameter specifies the program in a multi-program transport stream to be consumed by the Live Slicer. By default, specifying progID without specifying specific audio PIDs with the pids parameter, all audio tracks will be consumed by the Slicer (use_all_audio_tracks defaulted to yes).
Audio tracks will be sorted by PID, unless an explicit list of pids: is specified, in which case audio tracks will be ordered according to pids:.
Using optional_pids is not recommended regardless of handle_pmt_changes:
- Optional SCTE PID does not need to be specified as SCTE will be consumed if the SCTE plugin is enabled, regardless of the PID.
- Optional SCTE 2038 PID does not need to be specified as it will be consumed if
enable_smpte_2038: yeswas specified, regardless of the PID.
It must be specified if one or more audio tracks are not there on Slicer startup but expected later:
- HLS requires definition of all audio tracks on stream start.
- Therefore, if an audio track is not there upon stream start, it cannot be added later to the HLS stream so it must be specified before it is used.
A user can specify expected audio tracks using either the expect_audio_input or expect_audio_inputs parameter in the Slicer configuration file. There can be a sequence of expect_audio_input lines (each one is a JSON object) in the Slicer config file.
Alternatively, there can be one expect_audio_inputs (note the plural) line, containing a list of JSON objects. As well as what audio format to expect on input, the expect_audio_input or expect_audio_inputs reserve outputs in the manifest in the case that Dolby encoding in addition to AAC encoding is desired.
expect_audio_input is intended to replace the audio_lang_<pid>, audio_desc_<pid>, audio_dolby_<pid>, and audio_ac3_pass_through_<pid> options. expect_audio_input also makes the pids: option unnecessary -- both are supported, but shouldn’t be used together.
The expect_audio_input JSON object schema is:
{"lang": <string>, "desc": <string>, "dolby": <bool>, "ac3_pass_through": <bool>, "pid": <int>}
with schema members:
lang: Override for language similar toaudio_lang_<pid>usagedesc: Override for description similar toaudio_desc_<pid>usagedolby: Enable Dolby Digital Plus encoding similar toaudio_dolby_<pid>usageac3_pass_through: Enable original Dolby audio passthrough (AC-3 or EAC-3) similar toaudio_ac3_pass_through_<pid>pid: Tie this input to a particular Audio PID
All members are optional with the default values being empty string, false, and -1 for pid.
When expect_audio_inputs is used, it is a comma-separated list of these objects with the list being contained in square brackets ([ and ]). When using “dolby”: true in the above, ddp=1 must be specified in the URL to produce both AAC and Dolby audio from the input stream.
Example of expect_audio_input usage:
progID: 3
expect_audio_input: {"ac3_pass_through": true} # first audio PID != 52, output as AAC and original AC3/EC3 passthrough
expect_audio_input: {"dolby": true, "ac3_pass_through": true, "pid": 52} # bind to PID == 52, output as AAC, EC3, and AC3/EC3 passthrough
expect_audio_input: {"lang": "en", "desc": "no-such-track"} # second audio PID != 52, output as AAC, with specified language and description
Example of expect_audio_inputs usage mapping to above:
progID: 3
expect_audio_inputs: [{"ac3_pass_through": true}, {"dolby": true, "ac3_pass_through": true, "pid": 52}, {"lang": "en", "desc": "no-such-track"}]
If some expect_audio_input specifies a PID and others don’t, the ones that don’t will be mapped to any remaining audio PIDs after the explicitly specified PIDs are excluded.
For example, if you have these PIDs in Program 3: 51, 52, 53, 54, where 51 is video, and 52, 53, 54 are audio, then the above config would produce these output tracks: 53,52,54, because the 2nd expect_audio_input was bound explicitly to PID 52.
The only real use for specifying a PID in expect_audio_input is to be able to re-order tracks.
Example of expect_audio_input usage for :
progID: 3
expect_audio_input: {"lang": "en", "dolby": true} # AAC and Dolby EAC-3 outputs for first audio PID which happens to be English
expect_audio_input: {"lang": "es"} # just AAC output for second audio PID which happens to be Spanish
Example of expect_audio_inputs usage:
progID: 3
expect_audio_inputs:[{"lang": "en", "dolby": true}, {"lang": "es"}]
When using “dolby”: true in the above, ddp=1 must be specified in the URL to produce both AAC and Dolby audio from the input stream.
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 Channel | Channel Layout |
|---|---|
stereo 1 |
|
stereo 2 |
|
stereo 3 |
|
stereo 4 |
|
stereo 5 |
|
stereo 6 |
|
stereo 7 |
|
stereo 8 |
|
5.1 |
|
CEA |
|
7.1 |
|
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
- Replace {Track} with the ID of the audio track that will be assigned a custom audio layout.
- 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.
<Warning>The Live Slicer will only generate audio for a single track when this configuration setting is omitted.</Warning>
<Info>Although we support up to 31 audio tracks, your SDI capture card can only detect up to 16 audio tracks.</Info>
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
<Tip>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.</Tip>
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:
- Create a failover group and assign it Live Slicers and live channel(s).
- Instruct each desired Live Slicer to join this failover group by updating its configuration file. Learn more.
Administration
Use the following initcl commands to start, stop, and restart the Live Slicer.
Action | Command |
|---|---|
Start |
|
Stop |
|
Restart |
|
<Info>An invalid Live Slicer configuration may prevent the Live Slicer from starting up.</Info>
<Tip>Review the syslog file to check whether the Live Slicer is running.</Tip>
<Info>The Live Slicer will automatically start whenever the server is restarted.</Info>
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).
<Info>By default, the value assigned to a setting cannot contain a hashtag.
Learn how to override this behavior.</Info>
Setting | Description |
|---|---|
ancillary_lines |
|
ancillary_scan |
|
api_port |
|
apikey |
|
audio_custom_layout_Track |
|
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 |
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. |
audio_lang_PID |
|
audio_layout |
|
authenticated_api_port |
|
autoexpire_age | Determines asset retention time. |
backup |
|
blankVideoSampleDelay |
|
captions_DID |
|
captions_SDID |
|
capture_delay | Determines the delay in seconds for timecode matching. |
capture_mode |
|
card |
|
cc#_desc |
|
cc#_lang |
|
cc_filter |
|
debugoverlay |
|
description |
|
disable_slicer_config_upload |
|
drm_mode | Requires 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. |
drop_expired_breaks | Determines how expired API requests are handled. |
enable_dyn_gain | Enables dynamic gain adjustment of output audio with a less CPU-intensive, but less precise algorithm than using |
enable_loudnorm | Enables loudness normalization per EBU R 128 and takes precedence over |
enable_remote_config | Requires 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 |
enable_rtmp_pull |
|
expect_audio_input | Requires version 250516.01.01-rc1 or higher. |
expect_audio_inputs | Requires version 250516.01.01-rc1 or higher. |
failover_id |
|
future_break_expiration_minutes | Determines 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. |
future_timecodes | Determines whether timecodes up to 12 hours in the future can be resolved. |
gain | Adjusts audio gain in decibels. Positive values increase gain, negative decrease. |
handle_pmt_changes |
|
hwdec | Set to 1 to use hardware accelerated decoder (GPU), if available, to decode the incoming video signal. |
hwenc | Set to 1 to use hardware accelerated encoder (GPU), if available. This overrides the encoding profile's "GPU Encoding" setting for only the live slicer. |
input | Determines the signal's input source. |
input_addr |
|
livepreview_max_viewers | Determines 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. |
livepreview_with_audio |
|
meta | Defines metadata for assets. Add this setting for each desired metadata field. Each instance of this setting should be specified on a separate line. |
multicast | UDP 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. |
nielsen |
|
nielsen_ad_mode |
|
nielsen_distributor |
|
no_signal_image |
|
no_signal_pad |
|
no_signal_shutdown_time |
|
parse_XDS |
|
pids |
|
port |
|
preview | Determines if the Live Events Dashboard's Slicer Live Preview will display a video preview. If the |
progID |
|
render_608 |
|
render_608_buffer |
|
render_teletext |
|
rgb_lut |
|
rtmp_url |
|
rtp_backlog_dur |
|
rtp_headers | Determines RTP usage when streaming over UDP. Valid values are |
rtp_readahead_dur |
|
rtp_redundant_feed |
|
scte_module | Identifies the SCTE plugin for SCTE 35/104 signal processing. This parameter requires |
scte_python_version |
|
scte_type | Determines how SCTE 35/104 signals are processed. Valid values are |
SCTE104_DID |
|
SCTE104_SDID |
|
slicerID |
|
ssl_port | Exposes 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. |
start_blackout |
|
target_loudness | Target loudness when |
thumbnail | Adds 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. |
timecard |
|
timecode |
|
unicast |
|
upscale |
|
use_all_audio_tracks |
|
username |
|
useSystemClockAsTimecode | UDP (including RTP) and RTMP: Set to |
verbosity | Sets log data verbosity level. Valid values are |
video_sync_ms |
|
wallclock |
|
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
<Tip>Please remove comments from settings to which the above workaround has been applied.</Tip>
<Info>Most settings only support predefined values or integers. Do not apply this override procedure to those settings.</Info>
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.
description: Live Capture # A description that will be assigned to new assets.
...
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.
verbatim_description: #1 Videos by Genre
...
The above configuration sets the verbatim_description setting to #1 Videos by Genre.
Updated 15 days ago
