A Go library for natively demuxing and muxing MPEG Transport Streams (.ts) files.
go-astits is a Go library for natively demuxing and muxing MPEG Transport Streams (.ts), a container format used in digital broadcasting and streaming. It enables developers to parse, inspect, and generate .ts files programmatically, handling packets, headers, and payloads directly. The library solves the need for a pure Go solution to work with transport streams without relying on external C libraries or tools.
Go developers building media processing applications, such as broadcast software, streaming servers, or video analysis tools that require low-level access to MPEG-TS files. It's also suitable for CLI tooling around media inspection and manipulation.
Developers choose go-astits because it's a native Go implementation, avoiding cross-language dependencies and simplifying deployment. It offers both demuxing and muxing capabilities in one library, along with CLI utilities for quick inspection and stream splitting.
Demux and mux MPEG Transport Streams (.ts) natively in GO
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
As a native Go library, it eliminates external C dependencies, simplifying deployment and cross-compilation for Go-based media tools, as emphasized in the project's philosophy.
Provides low-level access to transport stream packets including PAT, PMT, PES, and others, enabling detailed parsing and generation for custom media processing workflows.
Includes astits-probe for stream inspection and astits-es-split for elementary stream extraction, offering quick debugging and manipulation tools directly from the library.
Supports custom packet parsers via DemuxerOptPacketsParser, allowing developers to optimize performance or handle specialized packet types not natively supported.
The README explicitly warns that the library is not yet production ready, posing significant risks for critical applications due to potential bugs or instability.
The roadmap shows incomplete muxing for key packet types like EIT, NIT, SDT, and TOT, and no support for others like BAT or DIT, restricting full MPEG-TS compatibility.
Beyond basic code snippets, the library lacks comprehensive tutorials or advanced examples, which can hinder onboarding and complex implementation efforts.