View Source Membrane Stream Plugin

Hex.pm API Docs CircleCI

Plugin for recording the entire stream sent through Membrane pads into a binary format and replaying it. This capability might be useful for creating snapshots of the stream at a given point in the pipeline for usage in tests, or for communication between two parts of the pipeline without using BEAM clusters.

The format used by Membrane Stream Plugin features:

  • header with version information, allowing for backwards compatibility
  • self delimitation, so buffers sent out of Membrane.Stream.Serializer are suitable to be saved to a file or sent over UDP
  • Consistency checks in the form of a magic keyword repeated before every term

As of version 1, Membrane Stream Format supports buffers, stream formats and events. Dynamic pads are not supported.

It is part of Membrane Multimedia Framework.

Installation

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

def deps do
  [
	{:membrane_stream_plugin, "~> 0.4.0"}
  ]
end

Usage

For usage example, please refer to examples/split_pipeline.exs. To run it, simply execute:

$ elixir examples/split_pipeline.exs

The example demonstrates a simple pipeline playing the H264 file using SDL Player, split in half using Membrane Stream Plugin capabilities.

Credits

This plugin has been built thanks to the support from dscout and Software Mansion.

dscout Software Mansion

Copyright 2022, Software Mansion

Software Mansion

Licensed under the Apache License, Version 2.0