Skip to main content
← Back to Quickstart Guides

RTMP Streaming

Industry-standard streaming via Cloudflare Stream

10 minutes
Beginner
Universal Compatibility
TLS Encrypted
275+
Global Ingest Points
Cloudflare edge locations
2-5s
Typical Latency
End-to-end delivery
25 Mbps
Max Bitrate
Per stream input
99.99%
Uptime SLA
Enterprise guarantee

RTMP Overview

The universal standard for live streaming

RTMP (Real-Time Messaging Protocol) is the industry-standard protocol for live streaming ingest. It works with virtually all streaming software including OBS, vMix, Wirecast, hardware encoders, and mobile apps. WAVE provides secure RTMPS ingest endpoints powered by Cloudflare's global edge network with 275+ points of presence worldwide.

Universal

Works with all encoders

Secure

TLS encrypted (RTMPS)

2-5s Latency

Standard live streaming

Global CDN

275+ edge locations

When to Use RTMP

Compare with other streaming protocols

ProtocolLatencyReliabilityCompatibilityBest For
This Guide
RTMP/RTMPS
3-10sGoodUniversalGeneral streaming, maximum encoder support
SRT
100-500msExcellentGoodProfessional broadcasts, unreliable networks
WebRTC (WHIP)
50-200msGoodBrowsersUltra-low latency, interactive streams
OMT
<16msExcellentLimitedReal-time production, live events

Choose RTMP when: You need maximum encoder compatibility, are using OBS/vMix/Wirecast, or latency under 5 seconds is acceptable. For lower latency, see SRT or WebRTC.

Step 1: Get Your RTMP Credentials

Create a stream and retrieve your ingest URL and stream key

// Get RTMP ingest credentials
const response = await fetch('https://api.wave.online/v1/streams', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_API_KEY',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    title: 'My Live Stream',
    protocol: 'rtmp',
    recording: { enabled: true },
    // Optional: Configure transcoding
    transcoding: {
      profiles: ['720p', '480p', '360p'],
      adaptive_bitrate: true
    },
    // Optional: Set up webhooks
    webhooks: {
      on_connect: 'https://yourapp.com/webhooks/stream-start',
      on_disconnect: 'https://yourapp.com/webhooks/stream-end'
    }
  })
});

const stream = await response.json();

// Your RTMP credentials
console.log('RTMP URL:', stream.ingest.rtmp.url);
console.log('RTMPS URL:', stream.ingest.rtmps.url);  // Recommended!
console.log('Stream Key:', stream.ingest.rtmp.stream_key);
console.log('HLS Playback:', stream.playback.hls);
console.log('DASH Playback:', stream.playback.dash);

// Example response:
// {
//   "id": "stream_abc123xyz789",
//   "title": "My Live Stream",
//   "state": "created",
//   "ingest": {
//     "rtmp": {
//       "url": "rtmp://live.cloudflarestream.com/live",
//       "stream_key": "abc123def456ghi789..."
//     },
//     "rtmps": {
//       "url": "rtmps://live.cloudflarestream.com:443/live",
//       "stream_key": "abc123def456ghi789..."
//     }
//   },
//   "playback": {
//     "hls": "https://customer-xyz.cloudflarestream.com/abc123/manifest.m3u8",
//     "dash": "https://customer-xyz.cloudflarestream.com/abc123/manifest.mpd",
//     "iframe": "<iframe src='...'>"
//   },
//   "created_at": "2024-01-15T10:30:00Z"
// }

Step 2: Configure Your Encoder

Select your streaming software and follow the setup guide

🎬

OBS Studio

70%+ market share

Free, open-source streaming software for Windows, macOS, and Linux. The most popular choice for streamers worldwide.

Download

Setup Steps

  1. 1Open Settings → Stream
  2. 2Service: Select "Custom..."
  3. 3Server: Enter your RTMP ingest URL
  4. 4Stream Key: Paste your stream key from the API
  5. 5Click "Apply" then "Start Streaming"

Recommended Settings

encoder:x264 or NVENC/AMD (hardware)
bitrate:4500-6000 kbps
keyframe:2 seconds
preset:veryfast (CPU) or Quality (GPU)
profile:High
tune:zerolatency (for lowest delay)

Pro Tips

  • Enable "Network Optimizations" in Advanced settings
  • Set "Max Bitrate" to 80% of upload speed
  • Use CBR (Constant Bit Rate) for consistent quality
  • Enable "Dynamic Bitrate" for unstable connections

Quality Settings Reference

Choose settings based on your content and available bandwidth

QualityResolutionFramerateBitrateUpload RequiredBest For
4K60
3840x216060 fps20000-25000 kbps35+ MbpsPremium productions, 4K displays
1080p60
1920x108060 fps6000-9000 kbps12+ MbpsGaming, fast motion, sports
1080p30
1920x108030 fps4500-6000 kbps8+ MbpsTalking head, presentations, podcasts
720p60
1280x72060 fps4000-5000 kbps7+ MbpsGaming with limited bandwidth
720p30
1280x72030 fps2500-4000 kbps5+ MbpsStandard streaming, mobile viewers
480p30
854x48030 fps1500-2500 kbps3+ MbpsLow bandwidth, developing markets

Security Best Practices

Protect your streams and credentials

Use RTMPS (TLS encrypted)

Required

Always use rtmps:// instead of rtmp:// to encrypt your stream in transit. This prevents eavesdropping and MITM attacks.

Rotate stream keys regularly

Recommended

Generate new stream keys weekly or after any potential exposure. Old keys are invalidated with a grace period.

Enable IP allowlisting

Enterprise

Restrict ingest to specific IP addresses or ranges for production streams. Prevents unauthorized use of your key.

Monitor ingest health

Recommended

Set up alerts for unexpected connections, quality drops, or geographic anomalies that might indicate key theft.

Use webhook authentication

Required

Verify webhook signatures to ensure events are genuinely from WAVE, not spoofed by attackers.

Implement backup keys

Recommended

Generate backup stream keys in advance so you can quickly switch if primary key is compromised during live broadcast.

Troubleshooting Guide

Common issues and how to resolve them

Success Stories

How teams use WAVE RTMP in production

🎮

GameStream Pro

Gaming & Esports

2M+
streams
50M
viewers
99.97%
uptime
Challenge

Needed reliable RTMP ingest for 500+ concurrent streamers with automatic failover.

Solution

Implemented WAVE RTMP with multi-region ingest, automatic key rotation, and real-time health monitoring.

Results
99.97% ingest uptime
45% reduction in dropped streams
3x faster stream start times
$180K annual savings vs. previous provider
WAVE's RTMP infrastructure handles our peak tournament traffic without breaking a sweat. The automatic failover saved us during a major competition.
Marcus Chen, Head of Infrastructure

FaithConnect Media

Religious Broadcasting

12K+
churches
500K/yr
services
47
countries
Challenge

Churches worldwide needed simple RTMP setup with minimal technical expertise.

Solution

Custom RTMP configuration wizard integrated with WAVE API, automatic quality optimization.

Results
12,000+ churches streaming weekly
85% reduction in support tickets
Average setup time: 4 minutes
Automatic quality adjustment for varying bandwidths
Our volunteers can now start streaming in minutes, not hours. WAVE made professional broadcasting accessible to every congregation.
Pastor David Williams, Director of Digital Ministry
🏢

Corporate Events Live

Enterprise Events

5K+/yr
events
10M+
attendees
85
fortune500
Challenge

Fortune 500 clients required secure RTMP ingest with compliance certifications.

Solution

WAVE Enterprise RTMP with IP allowlisting, audit logging, and SOC 2 compliance.

Results
SOC 2 Type II certified
Zero security incidents
100% audit trail coverage
Reduced setup time from days to hours
The security features and compliance certifications were non-negotiable for our enterprise clients. WAVE delivered everything we needed.
Sarah Martinez, VP of Technology
WAVE - Enterprise Live Streaming Platform