st2110-toolkit icon indicating copy to clipboard operation
st2110-toolkit copied to clipboard

ST-2110 software toolkit

This toolkit provides scripts and config to test, monitor and transcode SMPTE ST 2110 streams. Features:

  • setup network (routes, firewall) and Mellanox NIC (Rx buffer size, checksum, timestamping)
  • capture streams described by SDP file fetched from Embrionix encapsulator
  • transcode st2110-to-h264 from live feeds described by same SDP
  • integration resources for EBU-LIST
  • misc pcap tools
  • analyse stream content like PTP clock

Sponsored by:

logo

Tested distros:

  • Centos 7
  • Dockerized Centos 7
  • Ubuntu > 18.04

Install

Install everything (tools, FFmpeg and all the dependencies) using the install scrip:

$ ./install.sh
Usage: ./install.sh <section>
sections are:
    * common:       compile tools, network utilities, config
    * ptp:          linuxptp
    * transcoder:   ffmpeg, x264, mp3 and other codecs
    * capture:      dpdk-based capture engine
    * ebulist:      EBU-LIST pcap analyzer
    * nmos:         Sony nmos-cpp (deprecated)

Configuration

Both capture and transcoder scripts have default parameters but they can be overriden by a config file to be installed as /etc/st2110.conf. See the sample. This config also provisions an EBU-LIST server in live mode, i.e. connected to a ST 2110 network.

Capture

Instructions includes network interface configuration.

Transcode

It is required to go through the capture process before in order to validate all the underlying layers that fowards a stream to an application. Then one can use our FFmpeg-based transcoder following this instructions.

EBU-LIST

Integration guide for a complete capture and analysis system.

NMOS

README shows a POC for a NMOSisfied transcoder.

Pcap tools

Pcap script folder contains helper scripts which operate on PCAP files:

  • ancillary editor: insert different types of failure in SMPTE ST 291-1 payload
  • pkt drop detector: count packets and drops for every (src/dst) IP pair found in a given pcap file
  • video yuv extractor: convert RFC4175 payload into raw YUV file

Dependencies:

Todos

  • deal with transcoder Dockerfile *nanoseconds ebu-list: fix ptp lock test "The rms value reported by ptp4l once the slave has locked with the GM shows the root mean square of the time offset between the PHC and the GM clock. If ptp4l consistently reports rms lower than 100 ns, the PHC is synchronized." check_clock.c
  • rework./capture/nic_setup.sh
  • nmos-poller: display ffmpeg status

Troubleshoot

Additional resources