VideoLAN, a project and a non-profit organization.


biTStream is a set of C headers allowing a simpler access to binary structures such as specified by MPEG, DVB, IETF, SMPTE, IEEE, SCTE, etc.

biTStream vs. libdvbpsi

libdvbpsi converts binary structures to C structures. Lists are implemented with chained lists of C structures.

biTStream is lower level, and more efficient: fewer memory allocations, fewer memory copies. It also features a better separation between layers and specifications.

Current features

biTStream currently implements the following specifications:

In particular it supports the following MPEG and DVB structures (parsers and writers):

Get biTStream

The latest biTStream release is version 1.5.

biTStream is available through git at:

git clone

All releases can be found by browsing the releases.

The source code can browsed at

Extending biTStream

A lot of MPEG and DVB tables and descriptors are not implemented yet, or are incomplete. Patches are very welcome.

Though biTStream is originally targeted at video applications in general and MPEG-2 transport stream in particular, the same principle can be followed with other binary data types, and patches are welcome here too. Just try to follow a coherent directory naming.

biTStream is released under the MIT license because since it is a direct application of standards, there is no added value. The MIT license doesn't require you to contribute back your changes, and you can use biTStream in proprietary applications. However, if you add new structures, or fix bugs in current structures, you'd be very nice to contribute them (again, there is no point in concealing this). Thanks.

Contributions can be sent as pull requests in our github repository.

Mailing list

There is a mailing-list dedicated to biTStream development. Subscribe here.