View Source Membrane Stream Plugin

Hex.pm API Docs CircleCI

This repository contains Membrane Stream Plugin. It allows you to record a native stream of Membrane Buffers into a binary format and replay 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.

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 form of magic keyword repeated before every term

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

It is part of Membrane Multimedia Framework.

installation

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

usage

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

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