Skip to content

up-stream/mediumi

 
 

Repository files navigation

mediumi: A Media Toolkit

About this

mediumi is a media toolkit written from scratch in Rust. It provides the following features.

Features

  • Media container demuxer and muxer for the following containers
    • MP4 / Fragmented MP4
    • MPEG2-TS
  • Parser and Serializers and for the following codecs
    • AAC (ADTS)
    • AC-3 (A/52)
    • H.264 (AVC)
  • Encrypter
    • Common Encryption (CENC) for fmp4/cmaf: cenc (AES-128-CTR) and cbcs (AES-128-CBC, 1:9 pattern)

Crates

  • mediumi-aac
    • AAC (ADTS) bitstream parser and serializer
  • mediumi-ac3
    • AC-3 (A/52) bitstream parser and serializer
  • mediumi-crypto
    • Common Encryption (CENC) encrypter for fmp4/cmaf (H.264 video, AAC audio); cenc and cbcs schemes
  • mediumi-h264
    • H.264 (AVC) bitstream parser and serializer
  • mediumi-mpeg2ts
    • MPEG2-TS container demuxer and muxer

Build

$ make build-all     # Build all crates
$ make build-aac     # Build specific crate
$ make build-ac3
$ make build-h264
$ make build-mp4
$ make build-mpeg2ts

Test

$ make test-all     # Test all crates
$ make test-aac     # Test specific crate
$ make test-ac3
$ make test-h264
$ make test-mp4
$ make test-mpeg2ts

Specification

  • AAC (ADTS)
    • ISO/IEC 14496-3
  • AC-3 (A/52)
    • ATSC A/52
  • H.264
    • ISO/IEC 14496-10
  • MP4
    • ISO/IEC 14496-12
    • ISO/IEC 14496-15
  • MPEG2-TS
    • ISO/IEC 13818-1
  • CENC (Common Encryption)
    • ISO/IEC 23001-7

Status

This project is under active development. APIs may change without notice.

Contributing

Contributions are welcome.
If you find a bug, have a feature request, or want to improve the implementation, please open an issue or submit a pull request.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Rust 99.2%
  • Other 0.8%