EBML parser
A pure decoder for rfc-8794. Use this library to parse Extensible Binary Meta Language ebml, webm and mkv file format.
Overview
The main goal of this project is to enable serving a webm stream by splitting the initialization segments from the media segments.
Implemented features:
- Basic data types (binary, text, int)
- Unknown-sized element
- Pretty printer
- Incremental stream parser
- WebM track informations
- Float and date types
- Schemas validation
- Encoder
- Property tests
Usage
Check the Codec.EBML module for documentation. Or try the executable demo:
$ cabal run exe:haskell-ebml -- ./data/firefox-mrec-opus.webm
[pretty print the EBML elements]
Without a parameter, the command process the stdin as a webm stream, for example:
$ gst-launch-1.0 pulsesrc ! audioconvert ! opusenc ! webmmux ! fdsink fd=2 2>&1 >/dev/null | cabal run
[print the stream cluster]
Contribute
Contributions and bug reports are welcome!
Run the ./bin/run-tests
script to validate a commit.