Hero Image

Real-Time Messaging Protocol (RTMP)

Reliable First-Mile Ingest

Real-Time Messaging Protocol (RTMP)

RTMP (Real-Time Messaging Protocol) is the workhorse of live contribution. Nearly every software and hardware encoder supports it, and a single, persistent TCP connection carries the feed continuously without segment gaps or reconnection overhead. Today, RTMP is focused on first-mile ingest and providing a clean, low-latency path from the encoder into Wowza Streaming Engine.

RTMP Benefits Include:

  • Universal Encoder Support: Including OBS Studio, FFmpeg, Wirecast, vMix, and contribution units from Osprey, Teradek, and others, so your existing stack works as is. 
  • Low-Latency Contribution: Roughly 2-5 seconds of end-to-end latency, fast enough for interactive workflows when using a ultra-low latency playback protocol like WebRTC or RTSP. 
  • Predictable Integration: Automated, API-driven and multi-tenant pipelines with a well-understood URL and stream-key model. 
  • Codec Flexibility: H.264 video and AAC audio for classic RTMP, add HEVC, AV1, and VP9 support for bandwidth-efficient contribution with Enhanced RTMP. 
  • Secure Transport: RTMPS encrypts contribution across the public internet without changing the encoder workflow. 

Ingest & Republish RTMP with Wowza Streaming Engine 

RTMP workflow with Wowza Streaming Engine

Wowza Streaming Engine acts as a full RTMP server.

One ingest path feeds many delivery and republishing paths, all from the same media server:

  • Ingest an RTMP or RTMPS stream and repackage it for delivery over HLS, LL-HLS, MPEG-DASH, CMAF, or WebRTC, without building a second workflow.
  • Ingest a non-RTMP source (like RTSP, SRT, or WebRTC) and republish it out over RTMP to any RTMP-based platform.
  • Restream (push) a single RTMP ingest to multiple destinations at once, including YouTube Live, Facebook Live, third-party CDNs, or another Wowza Streaming Engine instance.

Wowza Streaming Engine’s RTMP server implementation includes:

  • Multi-Protocol Repackaging: Transmux a single RTMP or Enhanced RTMP ingest into HLS, LL-HLS, MPEG-DASH, CMAF, and WebRTC.
  • Stream Targets (Push Publishing): Forward a live source to any generic RTMP or RTMPS destination, social platform, or CDN, configured in Wowza Streaming Engine Manager or via the REST API.
  • Server-Side Transcoding: Run the Wowza Transcoder to generate adaptive bitrate renditions, normalize codecs, and produce HEVC/H.265 output for efficient delivery (Windows and Linux).
  • REST API and Automation: Create applications, manage stream targets, and configure ingest programmatically through the Wowza Streaming Engine REST API for repeatable, infrastructure-as-code deployments.
  • Deployment Flexibility: Runs on bare metal, virtual machines, Docker, or Kubernetes –  on-premises, hybrid, cloud, or at the edge – behind the same load balancers and gateways as the rest of your stack.

Applications of RTMP for Wowza

Wowza Streaming Engine takes RTMP ingest and turns it into whatever is needed downstream:

  • A reliable, low-latency contribution path from any standard encoder into your streaming infrastructure.
  • A single ingest that fans out to viewers over modern playback protocols without re-encoding.
  • A bridge between legacy RTMP-only systems and current HTTP-based and real-time delivery.

Wowza also extends RTMP across the workflows you already run:

  • Stand Up Multi-Tenant Ingest: Give every customer or event its own RTMP endpoint and stream key, provisioned on demand through the REST API.
  • Build Redundant Ingest Paths: Point primary and backup encoders at the same application so a live event keeps running if one contribution path drops.
  • Deliver Feeds To Any Endpoint: Convert an incoming RTMP feed to WebRTC for sub-second monitoring by operators, with HLS and DASH serving large audiences from the same ingest.
  • Control Who Can Publish: Whitelist specific IP addresses and enforce stream-key authentication so only approved encoders can push to your ingest endpoints, separate from the transport encryption RTMPS provides in-transit.
  • Pin Ingest to the Edge: Run RTMP ingest on containers close to the venue to keep the first mile short and controlled, then hand off to cloud or hybrid infrastructure for transcoding and muti-protocol delivery.

What is RTMP?

RTMP (Real-Time Messaging Protocol) is a TCP-based protocol for streaming audio, video, and data between an encoder and a media server. Originally developed by Macromedia and now owned by Adobe, it maintains a persistent connection and delivers low-latency contribution over the public internet. Browsers no longer play RTMP natively, so it is used today as an ingest and contribution protocol. Wowza Streaming Engine ingests RTMP, then transcodes, records, and repackages it for delivery over HLS, DASH, CMAF, and WebRTC.

What is RTMP latency?

RTMP contribution latency is typically in the two-to-five-second range end-to-end, depending on encoder buffer settings, network conditions, and the downstream delivery protocol. Because RTMP holds a persistent TCP connection and streams continuously rather than in large segments, it adds far less delay on the first mile than segment-based HTTP protocols. The total glass-to-glass delay a viewer experiences depends mainly on the delivery format Wowza Streaming Engine repackages the stream into.

How does RTMP streaming work?

RTMP opens a persistent TCP connection from the encoder to the server, usually on port 1935, and completes a handshake to establish the session. It then splits audio, video, and data into small chunks and multiplexes them over that single connection, keeping streams synchronized and ordered. The encoder publishes to a stream URL and key, and Wowza Streaming Engine receives the feed for transcoding, recording, repackaging, or republishing.

What is the difference between RTMP and HLS?

RTMP is a contribution protocol that carries video from an encoder to a server with low latency, while HLS is a delivery protocol that streams segmented video to viewers and scales easily over CDNs. Wowza Streaming Engine commonly ingests RTMP and repackages it into HLS for playback. This comparison shows where each protocol fits:

AttributeRTMPHLS
Primary roleContribution / first-mile ingestLast-mile delivery to viewers
TransportTCP persistent connection (port 1935); RTMPS (port 443)*HTTP / HTTPS, segmented files
Typical latency2-5 seconds end-to-end6-30 seconds (sub-2s with LL-HLS)
Browser playbackNot native (Flash retired)Native or via standard players
ScalabilityLow, point-to-point onlyHigh, CDN-friendly

* RTMP communicates over TCP, typically on port 1935, and RTMPS over port 443. Both ports are user-defined and can be configured to match whatever your network administrator requires.

Is RTMP free?

Yes. RTMP is an openly published protocol with no licensing fee, and the major open-source encoders that speak it (such as OBS Studio and FFmpeg) are free to use. Most production deployments pair RTMP with a commercial media server such as Wowza Streaming Engine to handle ingest, transcoding, recording, security, and multi-protocol delivery at scale.

Does RTMP support encryption?

Plain RTMP sends data unencrypted over TCP port 1935. For secure contribution, RTMPS wraps the connection in SSL/TLS over port 443, the same port used for HTTPS, and is the recommended configuration for any path that crosses the public internet. Wowza Streaming Engine supports RTMPS for both ingest and for stream targets, so republished feeds can stay encrypted to the destination.

What is Enhanced RTMP?

Enhanced RTMP (E-RTMP) is a set of backward-compatible extensions to the RTMP and FLV specifications that add support for modern video codecs, including HEVC (H.265), AV1, and VP9, along with HDR metadata and multitrack audio and video. Wowza Streaming Engine can ingest HEVC source streams delivered over Enhanced RTMP and transmux them to HLS, CMAF, or DASH so encoders that already support E-RTMP can take advantage of bandwidth-efficient contribution without changing the rest of the workflow.

How do you set up RTMP streaming in Wowza Streaming Engine?

RTMP streaming in Wowza Streaming Engine takes three steps:

  1. Create a live application and authentication scheme in Wowza Streaming Engine to receive the stream.
  2. Point an RTMP encoder such as OBS Studio, FFmpeg, or Wirecast at the application using the stream URL and key (rtmp://host/app/streamName).
  3. Configure playback and, if needed, add stream targets to republish the feed to CDNs or social platforms.

Administrators can complete the configuration in Wowza Streaming Engine Manager or programmatically through the Wowza Streaming Engine REST API. Step-by-step instructions live in the Wowza documentation.

Why does an RTMP stream fail to connect?

An RTMP stream usually fails to connect because of a source authentication mismatch, a firewall blocks TCP port 1935, the stream URL is incorrect, or the encoder is configured for the wrong application name. If source authentication is enabled in Wowza Streaming Engine Manager, make sure the encoder’s stream key matches exactly. Next, confirm the publish URL and application name are correct. If the stream still doesn’t connect, verify that the TCP port 1935 is open end-to-end. RTMPS can support encrypted contribution, but adds configuration complexity, so it is best approached once the RTMP connection is stable.

Is RTMP still used for live streaming?

Yes. RTMP remains the most widely supported contribution protocol in live streaming because nearly every encoder supports it and it delivers a stable, low-latency feed. Its role has shifted from playback to ingest. Browsers don’t play RTMP, so production deployments use a media server to transcode the stream and deliver it to viewers over HLS, DASH, CMAF, or WebRTC.

Request a Demo