TSDuck – The MPEG Transport Stream Toolkit
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
1028
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égard<br>All 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...