manager_software
Live services configuration tutorial

Table of contents

  1. Introduction
  2. "Live Manager" function creation
  3. Live tasks configuration
    1. Preset creation
    2. Custom variables
    3. Preset instances configuration
    4. Services
  4. Deployment
    1. Computing clusters
    2. Groups assignement
    3. Services deployment
    4. Services startup
  5. Operations
    1. Line-up extension
    2. Redundancy
  1. Introduction

    The objective of this tutorial is to configure manager_software to handle simplified Live services line-up detailed in the table below.
    Channel name Source format Source IP address Source UDP port Source program number Video encoding preset Audio encoding preset Packaging mode Publication server IP Publication server path
    Movie Channel HD H.264 HD + AC3 226.0.1.1 1000 100 H.264 HD profiles AC-3 HLS 10.1.1.1 /movie_channel_hd
    Movie Channel SD MPEG2 SD + MPEG1 Audio 226.0.1.2 2000 200 H.264 SD profiles AAC HLS 10.1.1.1 /movie_channel_sd
    News Channel HD H.264 HD + AC3 226.0.1.3 3000 300 H.264 HD profiles AC-3 HLS 10.1.1.2 /news_channel_hd
    News Channel SD MPEG2 SD + MPEG1 Audio 226.0.1.4 4000 400 H.264 SD profiles AAC HLS 10.1.1.2 /news_channel_sd
    Sports Channel HD H.264 HD + AC3 226.0.1.5 5000 500 H.264 HD profiles AC-3 HLS 10.1.1.3 /sports_channel_hd
    Sports Channel SD MPEG2 SD + MPEG1 Audio 226.0.1.6 6000 600 H.264 SD profiles AAC HLS 10.1.1.3 /sports_channel_sd

  2. "Live Manager" function creation

  3. Live tasks configuration

    1. Preset creation

      • Concepts

        In manager_software, a live task is composed of several configuration blocks:
        • Input: Source settings (among them "Source IP address", "Source UDP port", "Source program number")
        • Video processing: Cropping, color enhancement, logo/slate insertion
        • Video: Video encoding settings (among them "Video encoding preset")
        • Audio: Audio encoding settings (among them "Audio encoding preset")
        • Output: Output stream settings (among them "Packaging mode", "Publication server IP" and "Publication server path")

        From the Line-up table above, it is possible to deduce several instances of presets:
        • Input/Output: "TS to HLS"
        • Video: "H.264 SD" and "H.264 HD"
        • Audio: "AC-3" and "AAC"
      • Preset creation

        From "Live Manager" > "Presets", click on "Add preset" button and add 3 presets as described in the screenshot below.
      • Preset instances creation

        Select desired preset and click on "Add preset instance" button to add instances as described in the screenshot below.
    2. Custom variables

      • Concepts

        The concept of "custom variable" allows to set dynamic values to instances parameters.

        For example, "Source IP address" column in Line-up table can be mapped to a custom variable "sourceIPAddress" having following values:
        • 226.0.1.1
        • 226.0.1.2
        • 226.0.1.3
        • 226.0.1.4
        • 226.0.1.5
        • 226.0.1.6

        And "Publication server IP" column in Line-up table can be mapped to a custom variable "publicationServerIP" having following values:
        • 10.1.1.1
        • 10.1.1.2
        • 10.1.1.3

      • Custom variables creation

        • From "Presets" click on "Add preset" button to create a new preset. Disable all configuration parts expect "Custom Variables".
        • Select "Custom variables" and add custom variables as described in the screenshot below.
        • Create custom variables preset instances corresponding to the services in the Line-up table.
        • Edit custom variables preset instances and set custom variables values for each instance.
    3. Preset instances configuration

      • Static preset instances

        A static preset instance is composed of values which are static and don't contain custom variables.
        For example, in this case study, "H.264 SD", "H.264 HD", "AC-3" and "ACC" preset instances are static. At the contrary "TS to HLS" instance is composed of a mix of static and custom variables (Source IP address, Source UDP port, Source program number, Publication server IP and Publication server path).

        Configure "H.264 SD", "H.264 HD", "AC-3" and "ACC" preset instances.
        Example of configuration of "H.264 HD" preset instance
      • Dynamic preset instances

        A dynamic preset instance is composed of values which are static and composed of custom variables. Custom variables are declared with "$${myCustomVariableName}" syntax in the preset instance.

        Configure "TS to HLS" preset instance.
        "TS to HLS" preset instance configuration ("Input" part)
        "TS to HLS" preset instance configuration ("Output" part)
    4. Services

      • Concepts

        A "service" can be summarize as a line of the Line-up table. A service is a combination of preset instances. This composition is called a "Definition".
        Services having the same definition are grouped in a "Services Set"

        In this case study, all services can be grouped into two "Services Set":

        • HD services composed of:
          • TS to HLS
          • H.264 HD
          • AC-3
          • Custom variables: Movie Channel HD, News Channel HD and Sports Channel HD

        • SD services composed of:
          • TS to HLS
          • H.264 SD
          • AAC
          • Custom variables: Movie Channel SD, News Channel SD and Sports Channel SD
      • Services configuration

        • Click on "Services" > "Service Sets" and create two Service sets.
        • Click on "HD services" services set. In "Definition" panel, add 4 preset masks (Input/Output, Video, Audio, Custom Variables). For each mask, add following preset instances.
        • Follow the same procedure for "SD services" services set.
        • 6 services are created.
  4. Deployment

    1. Computing clusters

      • Concepts

        A computing cluster is a pool of machines having the same hardware characteristics (same CPU power, amount of memory, number of ethernet interfaces...).

        In this case study, we are considering two types of servers:
        • Type A: Dual Intel Xeon E5-2680v4 Server for pure Sotware encoding (2 devices)
        • Type B: Intel E3-1275v5 server with support of Intel Quick Sync hardware acceleration (1 device)

        "HD services" will be deployed on "Type A" servers. "SD service" will be deployed on "Type B" servers.
      • Computing clusters configuration

        • Select "Computing Clusters" and add two new clusters.
        • Add 2 devices to cluster "Type A" and one device to cluser "Type B".

          If "Device state" is "Unreachable" with "Could not reach Live Task Node API" error, add and enable "Live Task Node" function on the device used in the cluster.

    2. Groups assignement

      Each device in a cluster is linked to a "Services group". (i.e a group of services the device is able to process).
      • HD services deployment

        On the assumption that "Type A" device is able to process 2 Live "HD services" simultaneously. All groups of "Type A" must be composed of up to 2 "HD services".

        • In "Services" > "Service settings", select the two first HD services. Click on "Assign to Group" button and select Cluster "Type A", Group 0 (i.e the first device available in the cluster to process the services).
        • In "Services" > "Service settings", select the third HD services. Click on "Assign to Group" button and select Cluster "Type A", Group 1 (i.e the second device available in the cluster to process the services).
        • "HD services" are now assigned to groups.
      • SD services deployment

        On the assumption that "Type B" device is able to process 5 Live "SD services" simultaneously. All groups of "Type B" must be composed of up to 5 "SD services".

        • In "Services" > "Service settings", select SD services. Click on "Assign to Group" button and select Cluster "Type B", Group 0 (i.e the first device available in the cluster to process the services).
        • "SD services" are now assigned to groups.
    3. Services deployment

      In "Services" > "Service Settings" panel, select all services and click on "Enable" button.
    4. Services startup

      In "Services" panel, select all services and click on "Play" button. Live transcoding services are started.
  5. Operations

    1. Line-up extension

      Considering the fact to add two new services (highligted in red) to the current line-up:
      Channel name Source format Source IP address Source UDP port Source program number Video encoding preset Audio encoding preset Packaging mode Publication server IP Publication server path
      Movie Channel HD H.264 HD + AC3 226.0.1.1 1000 100 H.264 HD profiles AC-3 HLS 10.1.1.1 /movie_channel_hd
      Movie Channel SD MPEG2 SD + MPEG1 Audio 226.0.1.2 2000 200 H.264 SD profiles AAC HLS 10.1.1.1 /movie_channel_sd
      News Channel HD H.264 HD + AC3 226.0.1.3 3000 300 H.264 HD profiles AC-3 HLS 10.1.1.2 /news_channel_hd
      News Channel SD MPEG2 SD + MPEG1 Audio 226.0.1.4 4000 400 H.264 SD profiles AAC HLS 10.1.1.2 /news_channel_sd
      Sports Channel HD H.264 HD + AC3 226.0.1.5 5000 500 H.264 HD profiles AC-3 HLS 10.1.1.3 /sports_channel_hd
      Sports Channel SD MPEG2 SD + MPEG1 Audio 226.0.1.6 6000 600 H.264 SD profiles AAC HLS 10.1.1.3 /sports_channel_sd
      Documentary Channel SD MPEG2 SD + MPEG1 Audio 226.0.1.7 7000 700 H.264 SD profiles AAC HLS 10.1.1.4 /documentary_channel_sd
      Cartoon Channel SD MPEG2 SD + MPEG1 Audio 226.0.1.8 8000 800 H.264 SD profiles AAC HLS 10.1.1.4 /cartoon_channel_sd

      • In "Custom variables" > "Instances" panel, clone "Sports Channel SD" instance two times. Rename them to "Documentaty Channel SD" and "Cartoon Channel SD".
      • Edit "Documentaty Channel SD" and "Cartoon Channel SD" instances and set custom variables.
      • Edit "SD services" definition and add "Documentaty Channel SD" and "Cartoon Channel SD" instances.
      • Assign "Documentaty Channel SD" and "Cartoon Channel SD" service to Type B, Group 0. Enable and start the services.
    2. Redundancy

      In the event of hardware failure on a device inside a Computing Cluster, manager_software will automatically re-deploy services on a free device.

      1. A computing cluster with 3 devices. Device #1 (10.3.53.57) and #2 (10.3.54.57) have services deployed (Services Groups 0 and 1). Device #3 (10.3.55.57) is available (no Service Group deployed).
      2. Device #1 fails, Services Group 0 is automatically deployed on Device #3.
      3. Device #1 is repaired or replaced and back in the cluster. It is available (no Services Group assigned).