View Source Membrane Stream Plugin
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.

Copyright and License
Copyright 2022, Software Mansion
Licensed under the Apache License, Version 2.0