Know your streams

GigaTools is an application bundle. It contains:
smd(1) is an MPEG-TS (live) stream processing and analysis tool within GigaTools. A single instance handles a single stream. The tool scans data for anomalies, gathers statistics and issues reports in both human-readable and/or computer-friendly formats. smd(1) can also take snapshots of the stream (i.e. save a relevant stream portion into a file). One can visualize the reports by using such tools as Grafana. smd(1) uses sensors to identify alert situations; a sensor represents the logic to match stream data to a condition. When a sensor satisfies the required condition, an alert is recorded in the appropriate alert log. ftsa(1) tool allows to run the same analysis on MPEG-TS files (snapshots) that smd(1) does on a live stream.
AV-DELTA+ | delta between a video and and audio track’s PTS/DTS |
PCR-DELTA | delta between a PCR and a PTS/DTS of any track |
PCR-FREQ | delta between two consecutive PCR timestamps |
LOST-SYNC | cannot identify a packet as MPEG-TS |
CC-BRK | continuity counter sequence is broken |
CC-RST | continuity counter becomes zero out of order |
CC-MLR | multiple CC counters broken within a segment (possible packet loss) |
PAT-DIFF | new PAT differs from the last one |
PMT-DIFF | new PMT differs from the last one |
PID-NDAT | no data received for a track |
dbsink(1) tool continuously reads data from an alert log (or stdin) and updates a target database (supported: InfluxDB, more to come).
Please refer to the smd(1) brochure (PDF) for alert details or for technical info to the Man pages (PDF)
Supported platforms:
Any x86-64 CPU running FreeBSD: 10-11, Linux: CentOS 7, Debian 8-9, Ubuntu 14.04-16.04 LTS. Minimum RAM: 64 Mb. Support for other platforms is by demand.
Licensing:
GigaTools is commercial software. In order to get a license, please install GigaTools package and generate a system key by running smd -K on your server. Then email a license request with a brief into (company name, region) to the team. After receiving your license (in a tarball), copy the .lic file to /etc (Linux) or /usr/local/etc (FreeBSD). Enjoy!