User Tools

Site Tools


split_abr_encoding_with_appliances

Split ABR Encoding with Appliances

Feb 2019



Note


This document is for using split encoding when you have appliances (boxes with Controller and EL) for distributed/compact instructions, please check here.

As of v11 (v11.0.1.4) it is possible to do Split ABR Encoding using both IP TS and SDI inputs.

Overview


When encoding ABR Profiles, there can be times when the number and complexity of profiles exceeds the capabilities of a single server, for example:

3840x2160p50@20Mbs
1920x1080p50@6Mbs
1920x1080p50@3Mbs
1280x720p50@2Mbs
1280x720p50@1.5Mbs
720x576p50@1Mbs
544x576p50@800Kbs
384x576P50@300Kbs

This profile list could not be produced by a single server (at the time of writing) and so two or three servers might be required, but as this is ABR, and all the profiles need to be I-Frame aligned, we need a way to achieve this.

To overcome this we can use Split ABR encoding, where we can use several servers to encode different parts of the profile list, but still aligned in time. For this to work we need the following:

Requirements


Servers must be time synchronised

A multicast is used for synchronisation, if using the MGMT port the MGMT switch must support multicasts.

Interfaces on all servers must be identical in name and operation (so if eth1 is the IP input, all servers must use the name eth1 for the interface, and it must be the input interface)

While it is possible to do this on appliances, it is much simpler to do this on a distributed system with a centralised Controller




This guide assumes you know how to create a standard ABR output service




Configuration




General Tab


On the PRIMARY Encoding Live Add a new service as normal.


Set the following in your new Service:



Name (SplitABRDemo in this example)

Synchronization
Select Activate
Mode All
Network Interface for sync (eth0) (normally management interface) (switch has to support multicasts)
Address (239.1.1.1) (unique address for sync messages)
Port 1234


Server Variant Configuration

You can think of server variants as groups. Normally we would use something like UHD, HD and SD

Add two or three variants (HD and SD in this example)


Input Tab


There is nothing special to set on the input tab, just configure this as you normally would, either SDI or IP input will work.




Encoding Tab


Again this is fairly standard, couple of things to look out for:


General Parameters Export Type Internet TV
Video Encoding Create your desired UHD/HD/SD profiles (all of them, not just the ones for this server)
Audio Create your desired audio config
Create any other configs such as subtitles etc.


Output Tab


Create your General and Common MPEG-2 TS parameters as you normally would.



Now you can start to add your outputs, these are the same as you would normally do, but with one exception, you have to configure an extra field called Subset.



The Subset names come from the Server variant configuration names set earlier in this process (under the General Tab).


Advanced Parameters Tab


We need to add one Advanced Parameter, under the Advanced Parameters tab click Add.


Parameter name synchronizer.poolname.prefix
Value SplitABR (Can be any name you like)
Variants Tick ALL Variants


Export Configuration


Before we make any more configuration settings, we need to export the configuration. This will make setting up the other servers in the system much simpler.

From the services page, find the service you just created.


Under Services you should see your config, click the Export button to save. The file will be downloaded to your local computer (Downloads folder if you are using Windows).

Locate the file you just downloaded.



The exported config file is a .json file, its plain text to easy to work with. We need to do two things with this file:

1. Make a copy (we need one file for each server we are using)

2. Edit each copy (we need to edit the UUID of the file, the UUID appears in two places in the file, remember only edit the copy(s)

The filename contains the UUID, and you need to find this in the .json file, here is an example:

live_encoding_165246ce57984ca0adc505c97315ba2d_20200205_config_01.json So in this example the UUID is 165246ce57984ca0adc505c97315ba2d.

Open the file to edit (you can use Notepad) and change one of the numbers/letters in the UUID.



In the above example I changed 165246ce57984ca0adc505c97315ba2d to 265246ce57984ca0adc505c97315ba2d

Save the file and close your text editor.

I renamed my .json files so it was obvious which file was for which Encoding Live.



Repeat these steps for each Encoding Live in your Split ABR system.


Upload Config to Encoding Live


Now that you have created some copies of the config from the primary Encoding Live server, you can upload each copy to your other Encoding Live servers.

In this example I am using two servers, so only need to upload one file.

Web browse to your second Encoding Live server.

From the Services page, click Import Service.


Select the file you just edited and import it.

The second Encoding Live Service page will now look identical to Encoding Live Server 1.


All we have to do now is to set the server allocation.


Allocate Servers


The final part is to assign a server to each of the Server Variants (UHD/HD/SD) so that we force each Encoding Live server to only encode the profiles in their assigned Variant.


On the Primary Encoding Live, set the server (standalone is the standard name for an appliance) standalone in the top variant/sever (HD). Set the standalone server in the bottom SD variant/server.

Now start the service on both Encoding Live server, and if all is well, you will have a Split ABR system with no errors.




Sync Alarm


If you see this alarm, or similar
Timestamps synchronization messages are not being received or are not synchronize for service=2f73015aa94040ceb39b3cbffa37d2e3;;sdt=SplitABRTest
If everything is configured okay, and you are using SDI input, SDI sync is not supported before around v10.3, so check your Encoding Live version.

split_abr_encoding_with_appliances.txt · Last modified: 2023/03/09 22:35 by 127.0.0.1