How to
Set up the SMPTE ST 2110 input operation

Set up the SMPTE ST 2110 input operation

Limitations and Considerations for ST2110 and PTP

The following limitations apply to the current version (as stated in the Release Notes):

  • ST 2110 streams are carried over RTP. RTP header extension is not supported and should be turned off on the source, as described here: https://datatracker.ietf.org/doc/html/rfc3550#section-5.3.1 (opens in a new tab). This will be supported in future releases.

  • PTP domain of value 0 is the only domain supported. A workaround is to manually set the value in a file. Other PTP domains will be supported in future releases.

  • ST 2110 support is limited to HD resolutions.

Configure SDP files on CE1

ST 2110 can be configured using SDP files on the Input tab of the Live Encoder component (see Configure an SMPTE ST 2110 input).

The SDP files can be entered either as:

  • A URL where the SDP files can be retrieved from.
  • A path to the location of the file stored on the server:
    • On the host, the SDP file(s) need to be in the /var/mediakind/streams directory.
    • When configuring the Encode service, use the /tmp/streams directory to specify the SDP file location.

To ensure you have write access to the directories above, please use the following credentials:
User: mfeng / Password: 2u4y&C

To configure the SDP files when stored on the server, follow these steps:

  1. Copy the files to the server via SCP. For example, using Mobaxterm:

    scp /cygdrive/c/sdp-2110-20.scp mfeng@192.168.1.1:/tmp
  2. Connect to the unit via SSH and copy the files to /var/mediakind/streams:

    sudo mv /tmp/sdp-2110-20.scp /var/mediakind/streams
  3. Configure the SDP file on the user interface using the following path: /tmp/streams/sdp-2110-20.scp

Setup the PTP for ST 2110

PTP is required for ST 2110 operation.

To configure PTP, follow these steps:

Disable chronyd

  1. SSH onto the unit.

  2. Run the following commands:

    sudo systemctl stop chronyd
    sudo systemctl disable chronyd

Disable NTPD in case it was enabled

sudo systemctl disable ntpd.service
sudo systemctl stop ntpd.service

Stop PTP service, in case it is running

sudo systemctl stop ptp4l.service

Set the interface

  1. Edit the config file:

    sudo vi /etc/ptp4l.conf
  2. Go to the last line of the file (shift G).

  3. To configure a single port for PTP, change eth0 to the required interface.
    For example to change eth0 to eth3, ensure you are on the line and type f0r3 to replace 0 by 3. The last line of /etc/ptp4l.conf will look like:

    [eth3]
  4. To configure two PTP ports, please amend the previous step so the last two lines of the /etc/ptp4l.conf file shows the two ports as followed:

    In the example below, 2 x PTP are received, one in port eth2 and one in port eth3.

    [eth2]
    boundary_clock_jbod 1
    [eth3]
    boundary_clock_jbod 1
  5. Save the file (for example by using the command ZZ).

Set the PTP domain

In some cases, the PTP domain is not zero and needs to be amended manually:

  • The PTP domain is specified in the last number in the ts-refclk:ptp setting of an SDP file (127 in the example below):

    a=ts-refclk:ptp=IEEE1588-2008:00-90-56-FF-FE-08-1A-F1:**127**
  • The PTP domain is configured in the following systemd services:

    • ptp4l: systemd service that implements the PTP clock.
    • phc2sys: systemd service that synchronizes the system clock to the PTP clock.
  1. In the ptp4l configuration file, /etc/ptp4l.conf, configure the domainNumber parameter in the global section:

    [global] 
    : 
    domainNumber 127
    :
  2. In the phc2sys configuration file,/etc/sysconfig/phc2sys, configure the -n option:

    sudo vi /etc/sysconfig/phc2sys 
    # -a -r syncrhonise to ptp4l 
    # -l log level (max 6) 
    # -n domain number (default 0) 
    # The front panel controls this file so be careful if manually changing it 
    OPTIONS="-a -r -l 5 -n 127 -E linreg"

Start PTP services

sudo systemctl start ptp4l.service
sudo systemctl start phc2sys.service

Make change persist over reboots (but not software upgrades)

sudo systemctl enable ptp4l.service
sudo systemctl enable phc2sys.service

Check services are running (loaded and active)

  • systemctl status ptp4l.service

    ptp4l.service - Precision Time Protocol (PTP) service
    Loaded: loaded (/usr/lib/systemd/system/ptp4l.service; enabled; 
    vendor preset: disabled)
    Active: active (running) since
  • systemctl status phc2sys.service

    phc2sys.service - Synchronize system clock or PTP hardware clock (PHC) 
    Loaded: loaded (/usr/lib/systemd/system/phc2sys.service; enabled; 
    vendor preset: disabled) 
    Active: active (running) since

Check grand master

Check that grand master is detected: gmPresent is true).

In the example below, PTP domain 0 is used (-d 0): modify the “-d” option to specify a different PTP domain.

sudo pmc -u -b 0 -d 0 'GET TIME\_STATUS\_NP'
sending: GET TIME_STATUS_NP
  043f72.fffe.ff60cb-0 seq 0 RESPONSE MANAGEMENT TIME_STATUS_NP
         master_offset 13 
         ingress_time 1620380188201784144 
         cumulativeScaledRateOffset +0.000000000 
         scaledLastGmPhaseChange 0 
         gmTimeBaseIndicator 0 lastGmPhaseChange 0x0000'0000000000000000.0000 
gmPresent true 
         gmIdentity b8599f.fffe.60ffc8