# rtmp v0.1.0 - Table of Contents

> A small, correct, hard-to-crash RTMP ingest server. Handles the handshake, chunk streams, AMF0 commands and FLV tag parsing (AAC, H.264), and hands timestamped frames to a behaviour you implement.

## Pages

- [RTMP](readme.md)
- [Example: FLV saver](example-flv-saver.md)
- [Changelog](changelog.md)
- [License](license.md)

## Modules

- [RTMP.ChunkStream.Message](RTMP.ChunkStream.Message.md): A fully reassembled RTMP message.
- [RTMP.Commands.Command](RTMP.Commands.Command.md): A decoded command message.
- [RTMP.Connection](RTMP.Connection.md): One process per RTMP connection (a `ThousandIsland.Handler`). Started by
`RTMP.Listener`; you don't use this module directly.

- Server API
  - [RTMP](RTMP.md): A small, correct, hard-to-crash RTMP ingest server.
  - [RTMP.Frame](RTMP.Frame.md): One audio or video frame, as delivered to `c:RTMP.Handler.handle_frame/2`.
  - [RTMP.Handler](RTMP.Handler.md): The behaviour you implement to receive RTMP publishes.
  - [RTMP.Limits](RTMP.Limits.md): Per-connection hard limits.
  - [RTMP.Listener](RTMP.Listener.md): Starts an RTMP server.
  - [RTMP.Telemetry](RTMP.Telemetry.md): Telemetry events emitted by the server.

- Protocol
  - [RTMP.AMF0](RTMP.AMF0.md): AMF0 encoding and decoding.
  - [RTMP.ChunkStream](RTMP.ChunkStream.md): The RTMP chunk stream layer: splits a byte stream into chunks and
reassembles them into messages (`parse/2`), and does the reverse for
outgoing messages (`encode/6`).
  - [RTMP.Commands](RTMP.Commands.md): RTMP command messages (`connect`, `createStream`, `publish`, ...) and data
messages (`@setDataFrame` / `onMetaData`).
  - [RTMP.ControlMessages](RTMP.ControlMessages.md): Protocol control messages (message types 1–6) and User Control events.
  - [RTMP.Handshake](RTMP.Handshake.md): The simple (non-digest) RTMP handshake, server side.

- FLV
  - [RTMP.FLV.AudioTag](RTMP.FLV.AudioTag.md): Parses the body of an RTMP audio message (an FLV audio tag body).
  - [RTMP.FLV.Metadata](RTMP.FLV.Metadata.md): Extracts `onMetaData` from RTMP data messages.
  - [RTMP.FLV.VideoTag](RTMP.FLV.VideoTag.md): Parses the body of an RTMP video message (an FLV video tag body).

