# tsduck/tsduck

MPEG Transport Stream Toolkit

Repository: https://github.com/tsduck/tsduck
Canonical: https://ross.abutalabs.com/products/tsduck
Homepage: https://tsduck.io
Language: C++
License: BSD-2-Clause
License Family: permissive
Topics: mpeg, dvb, mpeg-ts, dvb-ip, dvb-si, dvb-psi, teletext, dvb-simulcrypt, hls, atsc, digital-tv, srt, isdb, arib, epg, rist, scte-35, dektec, vatek, dvb-nip
Last push: 2026-08-31T16:12:10+00:00

## Health v2 (maintenance only)
Score: 86/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 100, release rhythm 61, longevity 100
- inputs: {"age_days": 3360, "days_push": 2, "days_rel": 103, "gap_med": 99, "n_releases_24m": 6}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1076, forks 239 (observed 2026-09-01T02:14:08.117320+00:00)

## What it is
TSDuck is an extensible C++ framework and toolkit of command-line tools for manipulating, analyzing, monitoring, and transforming MPEG transport streams. It supports DVB, ATSC, ISDB, SCTE, HLS, SRT, RIST, and professional hardware through a modular plugin architecture centered on the tsp transport stream processor.

## Use cases
- analyze an MPEG transport stream's PSI/SI tables, bitrates, and timestamps
- monitor a live DVB or IPTV stream and report TR 101 290 metrics to Grafana
- extract or inject EPG/EIT tables into a broadcast stream
- process SCTE 35 splice information for ad insertion
- transmodulate a transport stream between DVB, ATSC, ISDB, ASI, and IP multicast
- capture streams from a USB DVB tuner or Dektec hardware
- emulate a DVB SimulCrypt CAS head-end with ECMG/EMMG
- manipulate transport stream tables and descriptors via XML or JSON

## When to choose
- you need a comprehensive, scriptable command-line toolkit for MPEG-TS testing, debugging, or monitoring
- you work with broadcast standards like DVB, ATSC, ISDB, SCTE 35, or Teletext
- you need to interface with professional hardware such as Dektec or HiDes devices
- you want an extensible C++ library to build custom transport stream processing applications

## When to avoid
- you need a GUI-based video player or editor
- you only need general-purpose media transcoding (use FFmpeg instead)
- your content is not transport-stream based (e.g., plain MP4/WebM workflows)

## Facets
- artifact type: framework
- maturity: stable
- function: developer-tools, cli, monitoring, streaming, plugin-system, sdk
- domain: media, developer-tools, networking
- platform: windows, bsd, cpp, cross-platform
- tags: mpeg-ts, dvb, atsc, isdb, scte-35, hls, srt, rist, epg, teletext, dvb-simulcrypt, transport-stream, digital-tv, dektec, psi-si, video, broadcasting, command-line, linux, macos

## Member repositories
- tsduck/tsduck (main) score 86

## Provenance
- Observed fields: from GitHub, fetched 2026-09-01T02:14:08.117320+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T06:53:33.859335+00:00, confidence not recorded.
  - readme: https://github.com/tsduck/tsduck (fetched 2026-09-01T02:14:08.117320+00:00, sha d7be301761c6)
  - homepage: https://tsduck.io (fetched 2026-08-29T12:56:22.546006+00:00, sha 82af3c859996)
  - site_page: https://tsduck.io/docs/tsduck.html (fetched 2026-08-29T12:56:22.556265+00:00, sha 7535d7296ae7)
  - site_page: https://tsduck.io/docs/tsduck-dev.html (fetched 2026-08-29T12:56:22.564160+00:00, sha b72636c6f7a1)
  - site_page: https://tsduck.io/changelog (fetched 2026-08-29T12:56:22.572377+00:00, sha a6095458fe1a)
- Data as of 2026-08-30T08:39:29.467469+00:00.
