Draft:TSDuck
Review waiting, please be patient.
This may take 3 months or more, since drafts are reviewed in no specific order. There are 4,351 pending submissions waiting for review.
Where to get help
How to improve a draft
You can also browse Wikipedia:Featured articles and Wikipedia:Good articles to find examples of Wikipedia's best writing on topics similar to your proposed article. Improving your odds of a speedy review To improve your odds of a faster review, tag your draft with relevant WikiProject tags using the button below. This will let reviewers know a new draft has been submitted in their area of interest. For instance, if you wrote about a female astronomer, you would want to add the Biography, Astronomy, and Women scientists tags. Editor resources
Reviewer tools
|
Submission declined on 2 April 2026 by Lovelyfurball (talk).
Where to get help
How to improve a draft
You can also browse Wikipedia:Featured articles and Wikipedia:Good articles to find examples of Wikipedia's best writing on topics similar to your proposed article. Improving your odds of a speedy review To improve your odds of a faster review, tag your draft with relevant WikiProject tags using the button below. This will let reviewers know a new draft has been submitted in their area of interest. For instance, if you wrote about a female astronomer, you would want to add the Biography, Astronomy, and Women scientists tags. Editor resources
This draft has been resubmitted and is currently awaiting re-review. |
Comment: Requires more coverage in reliable sources, such as reviews and coverage of updates Lovelyfurball (talk) 17:39, 2 April 2026 (UTC)
| TSDuck | |
|---|---|
| Original author | Thierry Lelégard |
| Stable release | 3.44-4676[1] |
| Written in | C++ |
| Operating system | Various, including Windows, macOS, Linux, and FreeBSD |
| Platform | x86, ARM, and RISC-V; may be compiled for other desktop computers |
| Type | Multimedia framework |
| License | 2-clause BSD license |
| Website | tsduck.io |
| Repository | github.com |
TSDuck is a free and open-source software project consisting of a suite of libraries and programs for handling MPEG transport streams. At its core is the command-line tsp tool, the transport stream processor. Additional specialized commands are available.
TSDuck is used in digital television and video streaming systems for test, monitoring, integration, debug, lab, demo.
TSDuck is published under the 2-clause BSD license.
History
The project was started by Thierry Lelégard in 2005 for his own use in a research project on transport streams and was published as open source in 2016, with version 3.0.[2]
TSDuck is now used in television systems, either as a lab or production tool.[3]
Principles of operation
TSDuck processes MPEG transport streams (MPEG-TS), a common transmission format in digital television, broadcast or multicast, as well as video streaming services using HLS.
TSDuck uses concepts similar to FFmpeg. This is a command-line framework using specialized plugins for input, output, and packet processing[4]. It is therefore designed for scripting and automation. The project is described on its web site as targeted to "test, monitoring, integration, debug, lab, demo"[5]. It is also used in production environments.
TSDuck differs from FFmpeg in the manipulated data. FFmpeg is a video and audio processing tool (transcoding, multiplexing)[6]. TSDuck processes the transport stream container layer. Thus, TSDuck and FFmpeg are complementary and can be used together in the same scripts to perform precise transformations on a television stream[7].
Bindings are provided to use TSDuck plugins from Python or Java.
All features of TSDuck are exposed as C++ classes which can be used to build custom MPEG-TS processing applications[8].
Usages
Signalization processing
TSDuck has capabitilities to process MPEG-TS signalization, i.e. sections and tables as defined in ISO/IEC 13818-1 standard (Information technology - Generic coding of moving pictures and associated audio information; Part 1: Systems)[9].
Sections and tables can be extracted from the transport stream or injected into it. Tables can be manipulated in XML, or JSON formats[10]. These formats can be processed manually using text editors, or using simple applications. Specifically, the JSON format is easily manipulated in Python. Because TSDuck has direct Python bindings, it is possible to write MPEG tables processing tools in Python[11].
As an example, the Hybrid Broadcast Broadband TV (HbbTV) developer portal documents how to use TSDuck to build HbbTV's Application Information Tables (AIT) and how to inject them in transport streams[12].
Tables can be modified on the fly, without reinjecting a complete new table. TSDuck supports a custom "XML patch file" mechanism[13]. An XML patch file contains directives to filter, modify, insert, or delete elements in existing XML structures, leaving other parts of the XML file unmodified. Using such patch files, a table can be extracted from a stream, converted to XML, modified using the directives from the XML patch file, converted to binary section format, and reinjected in the stream in replacement of the original table. A tool named tsxml is available to experiment and test XML patch files.
A specialized plugin behaves as an Electronic program guide (EPG) generator. It receives descriptions of program events, either from files or in real time, and it generates and injects the Event Information Tables (EIT) in an ETSI TS 101 211 compliant manner.
Analysis and monitoring
Specialized plugins analyze the global transport stream or specialized information such as SCTE-35 sections or MPE datagrams.
Other plugins monitor bitrates and trigger alarm commands when appropriate, send bitrate and ETSI TR 101 290 metrics to InfluxDB and Grafana, or monitor Inter-packet Arrival Time (IAT) on datagram-based networks.
Hobbyist sites track the structure of all available TV channels over satellite broadcasting. Automating this analysis is a typical use case for TSDuck[14].
Conditional Access Systems and Digital Rights Management
TSDuck also has a focus on Conditional Access Systems (CAS) and Digital Rights Management (DRM).
Specialized plugins implement content scrambling, ECM injection, and EMM injection. Specialized TSDuck tools implement an EMM generator (EMMG) and an ECM generator (ECMG) as defined in ETSI TS 103 197 standard. Using these building blocks, TSDuck can be used to test and debug the integration between CAS head-end equipment and multiplexer systems[15]. In practice, TSDuck emulates a CAS to test a real MUX, or emulates a MUX to test a real CAS.
Supported data sources
The tsp tool receives a MPEG Transport Stream (TS) using an input plugin. The TS is modified or analyzed through a chain of packet processor plugins. The resulting TS is sent through an output plugin.
Input and output sources
The following data sources are supported by input and output plugins.
- MPEG transport stream files
- IPTV, multicast television over UDP/IP
- HTTP, Hypertext Transfer Protocol
- HLS, HTTP Live Streaming
- SRT, Secure Reliable Transport[16]
- RIST, Reliable Internet Stream Transport[17]
- DekTec professional receiver or modulator devices[18]
- Route TS from or to other applications
- Memory buffers, when the TSDuck library is used in custom applications (C++, Python, or Java)
Input-only sources
The following data sources are supported by input plugins only.
- Tuner/demodulator devices using DVB, ATSC, or ISDB standards
- Pcap files containing captures of IPTV or HTTP
- Null packet generator
- Specially crafted TS packets
Output-only sources
The following data sources are supported by output plugins only.
- HiDes modulator devices[19]
- VATek modulator devices[20]
- Play output TS on a media player
- Drop output packets, when all required actions were performed in intermediate plugins
See also
Notes
- ^ "Release 3.44-4676". 22 May 2026. Retrieved 23 May 2026.
- ^ "TSDuck, anatomy of a single-person open-source project" (PDF). Retrieved February 11, 2026.
- ^ "Sample TSDuck references in production". Retrieved February 11, 2026.
- ^ "TSP, the transport stream processor". Retrieved April 29, 2026.
- ^ "TSDuck web site". Retrieved April 29, 2026.
- ^ "A quick guide to using FFmpeg to convert media files". Retrieved April 29, 2026.
- ^ "Preserving EIT through ffmpeg processing". Retrieved April 29, 2026.
- ^ "TSDuck Programming Reference". Retrieved April 29, 2026.
- ^ "ISO/IEC 13818-1:2025". Retrieved April 29, 2026.
- ^ "The PSI/SI table compiler". Retrieved April 29, 2026.
- ^ "TSDuck sample programs in Python". GitHub. Retrieved April 29, 2026.
- ^ "Building a broadcast AIT". Retrieved April 29, 2026.
- ^ "XML patch files". Retrieved April 29, 2026.
- ^ "DVB satellite frequency list". Retrieved April 29, 2026.
- ^ "Configure DVB-C Lab Environment with cBR-8, TSDuck, and VLC". Retrieved April 29, 2026.
- ^ "SRT Cookbook: using TSDuck with SRT". Retrieved February 11, 2026.
- ^ "RIST Tested Products". Retrieved February 11, 2026.
- ^ "DekTec PCI Express cards". Retrieved February 11, 2026.
- ^ "HiDes DVB modulator adapters". Retrieved February 11, 2026.
- ^ "VATek Modulator Series". Archived from the original on 2024-10-06.
References
- Lung, Doug (July 1, 2023). "Open Source Software Dr DTV TS Measurements, Libdvbpsi and Libdvbtee, TSDuck, and Some SDR Experiments" (PDF). IEEE Broadcast Technology. IEEE Broadcast Technology Society. p. 39.
- Higgs, Paul; Lelégard, Thierry (March 1, 2023). "Tool support for AVS3 and VVC video" (PDF). DVB Scene. DVB. p. 13.
- Van Egroo, Tristan; Di Ciccio, Francesco (December 13, 2018). Configure DVB-C Lab Environment with cBR-8, TSDuck, and VLC (Technical report). CISCO. 214208.
- Maujean, Benoît (November 1, 2025). "Dans la cour des grands (TSDuck)". La Lettre de la CST (in French). Commission Supérieure Technique de l'Image et du Son. p. 46.
External links
Category:Free video software Category:Multimedia frameworks Category:Cross-platform free software Category:Free software for Linux Category:Free software for Windows Category:Free software for macOS Category:Free software programmed in C++ Category:Software using the BSD license Category:Command-line software Category:Free computer libraries
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.


- provide significant coverage: discuss the subject in detail, not just brief mentions or routine announcements;
- are reliable: from reputable outlets with editorial oversight;
- are independent: not connected to the subject, such as interviews, press releases, the subject's own website, or sponsored content.
Please add references that meet all three of these criteria. If none exist, the subject is not yet suitable for Wikipedia.