ts-transformer reads, builds, and transforms MPEG-TS — mux + demux, typed MISB ST 0601 KLV encode/decode, H.264 / H.265 / H.266 / AV1 parsing — and, when you need a wire, streams it over UDP, TCP, RTP, SRT, or RIST (or publishes HLS) with reconnect, encryption, and typed metadata decoding handled. From a
.tsfile on disk to a live encrypted uplink in ~30 lines.Rust core. C, Python, and JVM bindings.
🆕 First time touching MPEG-TS, KLV, or SRT? Read start/concepts.md first — five minutes of plain-language explainers before anything else.
| 🆕 New to this domain Plain-English explainers before you read any API. → What is this? → MPEG-TS / KLV / SRT in 5 min → Quickstart |
🔍 Evaluating the library "Is this what I need?" → Overview → Feature matrix → Interop + soak evidence → What's not yet supported → License: MIT or Apache-2.0 |
⚡ Pick your language Drop-in for your app. → Rust → C → Python → Embedded (no_std) → Decision table (below) |
| 🔧 Build something real Deep guides and recipes. → Mux MPEG-TS → Demux MPEG-TS → KLV → HLS → Cookbook (40+ recipes) |
📚 Look up a type or error Reference and API lookup. → Architecture → Public API policy → API stability tiers → Conventions → STANAG 4609 / MISP conformance → Troubleshooting |
🧩 Port a binding / contribute Wrap ts-transformer for a new language. → Binding-authors guide → Public API policy → SRT cancel-handle → Security policy |
| Language | Surface | When to pick |
|---|---|---|
| Rust | Full Sender / Receiver + low-level primitives |
Embedding in a Rust app; want type-level guarantees |
| C | Full sender + receiver surface (cdylib + staticlib + tstrans.h) |
Embedded targets; cross-language linkage; maximum ABI stability |
| Python | Offline .ts inspect/build, typed KLV decode/encode, DataFrame adapters, and live UDP / TCP / RTP (incl. RTSP) / SRT / RIST transports + Pairer |
Notebooks; KLV-to-DataFrame ETL; offline processing; live ingest/egress |
JVM (tstrans-jvm / org.tstrans on Maven Central) |
Mirrors the Python surface: mux + demux, typed KLV, RTP (incl. RTSP) + SRT transports, pairing | JVM backend consumers |
| Embedded (bare-metal / RTOS) | no_std Rust core + C staticlib + FreeRTOS/lwIP/libsrt reference port, all QEMU-gated |
No-OS or RTOS firmware; MCU with no host runtime |
This site organizes content four ways. Knowing which kind you're reading helps you spot what you need:
- Tutorials — guided, end-to-end. Start at
start/quickstart.md. - How-to guides — recipes for specific problems. See the Cookbook.
- Reference — information lookup, structured. Lives under
reference/. - Concepts — explanations of the domain. Start with
start/concepts.md, then deep-dive inguides/.
(This is the Diátaxis framework. You don't have to learn it — just notice that the page you're on is one of those four.)