What to know about RTMP
Published: 2022-02-25 23:45:08

These four letters are used a lot in the video development world, but what does it mean and what is it for? In this article, we will go into the meaning of RTMP, its workflow and how it works in general.


RTMP or Real-Time Messaging Protocol is a type of transporting protocol also known as TCP or Transmission Control Protocol. Transporting protocols are responsible for delivering information from a media server to a user whether through the use of a CDN or directly to the video player. RTMP has been used more as a method of transporting data for a while due to being around for a long time. However, there is another transfer protocol called SRT that is gaining popularity. To learn more about SRT and Livepeer, read our article [Start Using SRT with Livepeer](https://livepeer.com/blog/livepeer-now-supports-srt).

Synonymous with Flash player, RTMP was developed by Macromedia and later acquired by Adobe, which they rebranded to Adobe Flash Player. Key features of RTMP include streaming at low-latency (~5 seconds) with minimal buffering and it being bi-directional, meaning that it can send and receive video data. There are other variations of RTMP such as RTMP, RTMPS, RTMPE, RTMPT, RTMPF.

Though the benefits are useful, it is no longer as supported or updated. Nor does it have much compatibility with most web browsers,  iOS or Android devices. Another shortcoming of RTMP is that it can only deliver two channels for audio. This means RTMP can not deliver audio with more than one language.

### RTMP delivery workflow

As a delivery protocol, RTMP takes the data and is able to break it down into smaller pieces of information known as chunks. It then determines the proper chunk size to send and does this in a continuous manner. This is how it is able to generate a constant connection for live streaming.


![RTMP delivery workflow chart](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/s3x2vh4mm7jrkl2ey6ye.png)

### RTMP ingest workflow

Nowadays, RTMP is often used more for transferring data from the encoder to the media server than for delivering from the media server to the CDN or video player. A main reason is because Adobe Flash Player is no longer supported and more adoption of HLS as the transfer protocol.


![RTMP ingest workflow chart](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4odat5z4u2uaa8b045sd.png)

Here is an outline of how the ingesting method works:

**Handshake** - data being exchanged between client and server (3 chunks of data)
- Chunk 1 - Informs server which variation of RTMP being used
- Chunk 2 - Contains the timestamp
- Chunk 3 - Confirms first two data chunks and then starts - connection

**Connection**
- Send information that contains the type of application, audio codec and video codec being used

**Stream**
- Send information on transaction ID, stream ID, and other parameters to create stream

### RTMP ingest with Livepeer

Livepeer offers a convenient way to get an ingest point and start streaming with ease. To learn more on how to do so, check out this article [New Dashboard for Livepeer.com's Streaming API](https://livepeer.com/blog/New-Dashboard).

For those who want to build Livepeer into their own applications for a more customizable experience to give to their users, visit [Streaming with RTMP](https://livepeer.com/blog/streaming-with-rtmp-api) for a more in-depth use of RTMP to stream with Livepeer with the API.

[Learn more about the Livepeer API](https://livepeer.com/docs/api-reference)