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.0"}
  ]
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