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.
- On the host, the SDP file(s) need to be in the
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:
-
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
-
Connect to the unit via SSH and copy the files to
/var/mediakind/streams
:sudo mv /tmp/sdp-2110-20.scp /var/mediakind/streams
-
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
-
SSH onto the unit.
-
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
-
Edit the config file:
sudo vi /etc/ptp4l.conf
-
Go to the last line of the file (shift G).
-
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 typef0r3
to replace0
by3
. The last line of/etc/ptp4l.conf
will look like:[eth3]
-
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
-
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.
-
In the
ptp4l
configuration file,/etc/ptp4l.conf
, configure thedomainNumber
parameter in the global section:[global] : domainNumber 127 :
-
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