====== Split ABR Encoding ====== Sept 2018\\ Updated Oct 2019 \\ \\ ---- ==== Note ==== \\ As of v11 (v11.0.1.4 is what is being used in this document) 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 ==== ---- Create an ABR service as normal, but don't assign any servers to the configuration. \\ {{:splitabr005.jpg?900|}} \\ \\ Once created, edit the configuration, and on the General Tab, add a Variant for each server you will use (so if you require 3 servers to cover all your profiles, add three variants) \\ {{:splitabr001.jpg?900|}} \\ While on the General Tab, under Synchronisation, click the Activate check box, and fill out the multicast details: Mode: All Network Interface: (up to you, I use eth0) Address: Use a unique Multicast Port: Multicast Port {{:splitabr001b.jpg?900|}} Navigate to the OUTPUTS page, where you created the streams for each multicast output \\ {{:splitabr02a.jpg?900|}} \\ Edit the first output, and add the Variant name for this output. Depending on how you will group your outputs, you will add a Variant for that server, so if your first three outputs will be encoded by the first server, you will add the Variant name for that server. {{:splitabr003.jpg?900|}} Lets say I create three Variant names, because I have three servers, and I call them UHD, HD, SubHD.Then I would use the following table to split my profiles across the three servers. 3840x2160p50@20Mbs UHD 1920x1080p50@6Mbs HD 1920x1080p50@3Mbs HD 1280x720p50@2Mbs HD 1280x720p50@1.5Mbs HD 720x576p50@1Mbs SubHD 544x576p50@800Kbs SubHD 384x576P50@300Kbs SubHD Note, this does not assign the server, you do that somewhere else. Once all of the profiles have been assigned a Variant, you will see that Variants are listed in all of the outputs. {{:splitabr002.jpg?900|}} Navigate back to the Service level, where you normally assign a server, and from here each Server can be assigned to each Variant. Remember, a Variant may cover several profiles, so your Variant list will only be as long as the number of servers that are being used. {{:splitabr006.jpg?900|}} In the following example, I have two Servers, a G6 and a G8. The G8 will do a single UHD Profile, and the G6 will do my HD Profiles. Two Servers means I only need two Variants. All I have to do is map the right server to the right Variant. {{:splitabr007.jpg?600|}} \\ \\ \\ \\ ---- ==== 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. \\ \\