# Membrane RTMP plugin v0.29.5 - Table of Contents

> RTMP Plugin for Membrane Multimedia Framework

## Pages

- [Membrane RTMP Plugin](readme.md)
- [LICENSE](license.md)

## Modules

- [Membrane.RTMPServer](Membrane.RTMPServer.md): A simple RTMP server, which handles each new incoming connection. When a new client connects, the `handle_new_client` is invoked.
New connections remain in an incomplete RTMP handshake state, until another process makes demand for their data.
If no data is demanded within the client_timeout period, TCP socket is closed.
- [Membrane.RTMPServer.ClientHandler](Membrane.RTMPServer.ClientHandler.md): A behaviour describing the actions that might be taken by the client
handler in response to different events.

- [Membrane.RTMP.Messages.Anonymous](Membrane.RTMP.Messages.Anonymous.md): A catch-all module for all the messages that don't have a dedicated module, eg. `onBWDone`, `onStatus`, `_result`.

- [Membrane.RTMP.Messages.Connect](Membrane.RTMP.Messages.Connect.md): Defines the RTMP `connect` command.

- [Membrane.RTMP.Messages.OnExpectAdditionalMedia](Membrane.RTMP.Messages.OnExpectAdditionalMedia.md): Defines the RTMP `onExpectAdditionalMedia` command that is related to Twitch's RTMP additional
media track message.
- [Membrane.RTMP.Messages.OnMetaData](Membrane.RTMP.Messages.OnMetaData.md): Defines the RTMP `onMetaData` command (sent by nginx client).

- [Membrane.RTMP.Messages.Publish](Membrane.RTMP.Messages.Publish.md): Defines the RTMP `publish` command.

- [Membrane.RTMP.Messages.ReleaseStream](Membrane.RTMP.Messages.ReleaseStream.md): Defines the RTMP `releaseStream` command.

- [Membrane.RTMP.Messages.SetDataFrame](Membrane.RTMP.Messages.SetDataFrame.md): Defines the RTMP `setDataFrame` command.

- [Membrane.RTMP.Sink](Membrane.RTMP.Sink.md): Membrane element being client-side of RTMP streams.
It needs to receive at least one of: video stream in H264 format or audio in AAC format.
Currently it supports only:
  - RTMP proper - "plain" RTMP protocol
  - RTMPS - RTMP over TLS/SSL
other RTMP variants - RTMPT, RTMPE, RTMFP are not supported.
Implementation based on FFmpeg.
- [Membrane.RTMP.Source](Membrane.RTMP.Source.md): Membrane Element for receiving an RTMP stream. Acts as a RTMP Server.
This implementation is limited to only AAC and H264 streams.
- [Membrane.RTMP.Source.ClientHandlerImpl](Membrane.RTMP.Source.ClientHandlerImpl.md): An implementation of `Membrane.RTMPServer.ClienHandlerBehaviour` compatible with the
`Membrane.RTMP.Source` element.

- [Membrane.RTMP.SourceBin](Membrane.RTMP.SourceBin.md): Bin responsible for demuxing and parsing an RTMP stream.

## See Also

- [Membrane Framework AI Skill](https://hexdocs.pm/membrane_core/skill.md)
- [Membrane Core](https://hexdocs.pm/membrane_core/llms.txt)
