LmCast :: Stay tuned in

TSDuck: Open-source toolkit for MPEG-TS analysis and manipulation

Recorded: May 27, 2026, 7:01 a.m.

Original Summarized

TSDuck – The MPEG Transport Stream Toolkit

Skip to content

Documentation

User guide
Developer guide
Programming reference

User guide (PDF)
Developer guide (PDF)

Change log
TSDuck presentation
MPEG-TS introduction
Project overview

Download

TSDuck binaries
Source archive
Nightly builds
Dektec drivers
HiDes drivers

Resources

Streams repository
Signal group
GitHub repository
Ask a question
Report a problem

Standards

ISO (MPEG)
ITU-T (H.2xx)
DVB

ETSI Standards
DVB Identifiers
DVB Metadata

ISDB

ARIB (ISDB)
ABNT (ISDB-Tb)
ISDB-S frequencies

ATSC
SCTE
IETF (RFC)
NIST
AVS (China)
AOMedia
UWA

About

Commands and plugins
Sample usages
TSDuck library

References
License
Contribute
Contact

Donate

Navigation Menu

Search for...

Navigation Menu

Documentation

User guide
Developer guide
Programming reference

User guide (PDF)
Developer guide (PDF)

Change log
TSDuck presentation
MPEG-TS introduction
Project overview

Download

TSDuck binaries
Source archive
Nightly builds
Dektec drivers
HiDes drivers

Resources

Streams repository
Signal group
GitHub repository
Ask a question
Report a problem

Standards

ISO (MPEG)
ITU-T (H.2xx)
DVB

ETSI Standards
DVB Identifiers
DVB Metadata

ISDB

ARIB (ISDB)
ABNT (ISDB-Tb)
ISDB-S frequencies

ATSC
SCTE
IETF (RFC)
NIST
AVS (China)
AOMedia
UWA

About

Commands and plugins
Sample usages
TSDuck library

References
License
Contribute
Contact

Welcome to TSDuck

The free and open-source reference framework for MPEG transport streams

Star

1030

TSDuck is used in digital television and video streaming systems for test, monitoring, integration, debug, lab, demo.
Use cases

Transport stream acquisition or transmodulation, including DVB, ATSC, ISDB, ASI and IP multicast.
Analyze transport streams, PSI/SI signalization, bitrates, timestamps.
On-the-fly transformation, extraction, or injection of content and signalization.

Manipulation of tables and descriptors using XML, JSON or binary formats.
Most standard tables and descriptors are supported, as defined by MPEG, DVB, ISDB, ATSC, SCTE.

Modify, remove, rename, extract services.
Analyze and inject SCTE 35 splice information.
Extract or inject Multi-Protocol Encapsulation (MPE) between TS and UDP/IP.
Generate Electronic Program Guide (EPG), inject EIT according to ETSI TS 101 211.
Monitor and report conditions on the stream (video and audio properties, bitrates, crypto-periods, signalization).
Send bitrate and ETSI TR 101 290 metrics to InfluxDB and Grafana for system monitoring.
Monitor Inter-packet Arrival Time (IAT) on datagram-based networks.
Work on live transport streams, DVB-S/C/T, ATSC, ISDB-S/T, ASI, IP-TV, HTTP, HLS, SRT, RIST or offline transport stream files and pcap captured files.
Receive from or send to specialized hardware such as:

Cheap DVB, ATSC or ISDB tuners (USB, PCI).
Professional Dektec devices, ASI, modulators (USB, PCI).
HiDes USB modulators.
AstroMeta-based USB modulators (formerly VATek) such as the Suntechtv U3.

Re-route transport streams to other applications.
Extract specific encapsulated data (Teletext, T2-MI, DVB-NIP).
Emulate a CAS head-end using DVB SimulCrypt interfaces to and from ECMG or EMMG.
And more…

Overview
TSDuck is developed in C++ in a modular architecture. It is easy to extend it through plugins. In fact, the primary requirement for TSDuck architecture was to be able to implement any new feature within a couple of hours, which happened to be the case most of the time.
To be easily extended, TSDuck needed to be simple. TSDuck is a collection of command line tools and plugins. There is no sophisticated GUI. Each utility or plugin performs only one elementary feature but they can be combined in any order. See some sample usages.
TSDuck is also a large library to manipulate MPEG transport streams. C++, Java and Python developers can use bindings in their languages.
In short, TSDuck shall be understood as a General-Purpose Toolbox for Digital TV Engineers and not as a specialized application for production operators.
And, by the way, TSDuck is Free and Open Source.
Availability
TSDuck is open source and released under the BSD license. It is developed in C++ and designed to be portable. TSDuck is built and tested for Windows, Linux, macOS and BSD systems.
Pre-built binary packages are available for Windows, Fedora, Ubuntu, RedHat, Debian (Intel x64 and Arm64). See the download section in the top menu.
TSDuck is also available through standard package managers. On macOS, use Homebrew. On Windows, use Winget. On FreeBSD, use Ports.
Rebuilding TSDuck, with or without its binary installers and packages, is documented here.
Support for DVB tuners, Dektec devices, HiDes modulators, is available on Windows and Linux only. AstroMeta-based modulators are supported on macOS as well as Windows and Linux.
Please report problems or ask questions using the issue tracker.
License
TSDuck is released under the terms of the license which is commonly referred to as 2-Clause BSD License or Simplified BSD License or FreeBSD License.
Copyright (c) 2005-2026, Thierry LelégardAll rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

This software is provided by the copyright holders and contributors “as is” and any express or implied warranties, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose are disclaimed. in no event shall the copyright owner or contributors be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including, but not limited to, procurement of substitute goods or services; loss of use, data, or profits; or business interruption) however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use of this software, even if advised of the possibility of such damage.

TSDuck is Free and Open-Source | Report a problem | Contact

TSDuck is presented as a free and open-source reference framework designed for MPEG transport streams. It serves primarily as a general-purpose toolbox utilized in digital television and video streaming systems for activities such as testing, monitoring, integration, debugging, laboratory work, and demonstrations. The toolkit supports a wide array of use cases, including the acquisition and transmodulation of various transport streams, such as DVB, ATSC, ISDB, ASI, and IP multicast. Its capabilities extend to the detailed analysis of transport streams, including the examination of PSI/SI signalization, bitrates, and timestamps. Furthermore, TSDuck enables on-the-fly transformations, extraction, or injection of content and signalization data, alongside the manipulation of standard tables and descriptors using XML, JSON, or binary formats, supporting tables defined by MPEG, DVB, ISDB, ATSC, and SCTE standards.

The framework facilitates complex stream manipulation by allowing users to modify, remove, rename, and extract services, analyze and inject SCTE 35 splice information, and manage the encapsulation of Multi-Protocol Encapsulation (MPE) between TS and UDP/IP. It also has functions for generating Electronic Program Guides (EPG) and injecting Event Information Tables (EIT) in accordance with ETSI TS 101 211. Monitoring capabilities include tracking video and audio properties, bitrates, crypto-periods, and signalization conditions, with the ability to report metrics to systems like InfluxDB and Grafana. TSDuck also monitors Inter-packet Arrival Time (IAT) on datagram-based networks.

The toolkit supports working with live transport streams from various sources, including DVB-S/C/T, ATSC, ISDB-S/T, ASI, IP-TV, HTTP, HLS, SRT, RIST, or offline transport stream files and pcap captured files. It is designed to interface with specialized hardware, capable of receiving data from or sending data to devices such as cheap DVB, ATSC, or ISDB tuners, professional Dektec devices, ASI modulators, HiDes USB modulators, and AstroMeta-based USB modulators. The framework also allows for the re-routing of transport streams to other applications and the extraction of specific encapsulated data, such as Teletext, T2-MI, or DVB-NIP. Advanced functionality includes the emulation of a CAS head-end using DVB SimulCrypt interfaces for interaction with ECMG or EMMG.

Architecturally, TSDuck is developed in C++ using a modular design that facilitates easy extension through plugins, allowing new features to be implemented rapidly. It functions as a collection of command line tools and plugins, deliberately eschewing a sophisticated graphical user interface. This modularity ensures that each utility or plugin addresses a single elementary feature, which can be combined in any sequence. In addition to its command-line utilities, TSDuck is a substantial library, offering bindings for C++, Java, and Python developers. The framework is explicitly positioned as a General-Purpose Toolbox for Digital TV Engineers rather than a specialized application intended for production operators.

The software is distributed under the 2-Clause BSD License, and the copyright is held by Thierry Lelégard for the period spanning 2005 to 2026. TSDuck is built and tested for Windows, Linux, macOS, and BSD systems, with pre-built binary packages available for various distributions. Support for specific hardware devices is available on Windows and Linux, while AstroMeta-based modulators are supported on macOS, Windows, and Linux. The project encourages community engagement through its issue tracker for reporting problems or asking questions.