Skip to content

membraneframework/membrane_matroska_plugin

Repository files navigation

Membrane Matroska Plugin

Hex.pm API Docs CircleCI

Membrane plugin for muxing and demuxing files in the Matroska format.

It is part of Membrane Multimedia Framework.

  • Both muxer and demuxer support tracks encoded with VP8, VP9, H264 and Opus.
  • Opus tracks with more than 2 channels are not supported.
  • Demuxing of files containing laced frames is not supported.
  • Passing tag values is not supported

Installation

The package can be installed by adding membrane_matroska_plugin to your list of dependencies in mix.exs:

def deps do
  [
    {:membrane_matroska_plugin, "~> 0.6.1"}
  ]
end

Usage

Membrane.Matroska.Muxer

Matroska muxer requires a sink that can handle Membrane.File.SeekEvent, e.g. Membrane.File.Sink. For an example of muxing streams to a regular matroska file, refer to examples/muxer_h264.exs.

To run the example, you can use the following command:

elixir examples/muxer_h264.exs

Membrane.Matroska.Demuxer

For an example of demuxing streams, refer to examples/demuxer_h264.exs.

To run the example, use the following command:

elixir examples/demuxer_h264.exs

You can expect demuxing_output folder to appear and contain an audio file 2.ogg and a video file 1.h264.

Copyright and License

Copyright 2022, Software Mansion

Software Mansion

Licensed under the Apache License, Version 2.0

About

Matroska muxer and demuxer

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 9

Languages