Industry-standard streaming via Cloudflare Stream
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
Compare with other streaming protocols
| Protocol | Latency | Reliability | Compatibility | Best For |
|---|---|---|---|---|
This Guide RTMP/RTMPS | 3-10s | Good | Universal | General streaming, maximum encoder support |
SRT | 100-500ms | Excellent | Good | Professional broadcasts, unreliable networks |
WebRTC (WHIP) | 50-200ms | Good | Browsers | Ultra-low latency, interactive streams |
OMT | <16ms | Excellent | Limited | Real-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.
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"
// }Select your streaming software and follow the setup guide
Free, open-source streaming software for Windows, macOS, and Linux. The most popular choice for streamers worldwide.
Choose settings based on your content and available bandwidth
| Quality | Resolution | Framerate | Bitrate | Upload Required | Best For |
|---|---|---|---|---|---|
4K60 | 3840x2160 | 60 fps | 20000-25000 kbps | 35+ Mbps | Premium productions, 4K displays |
1080p60 | 1920x1080 | 60 fps | 6000-9000 kbps | 12+ Mbps | Gaming, fast motion, sports |
1080p30 | 1920x1080 | 30 fps | 4500-6000 kbps | 8+ Mbps | Talking head, presentations, podcasts |
720p60 | 1280x720 | 60 fps | 4000-5000 kbps | 7+ Mbps | Gaming with limited bandwidth |
720p30 | 1280x720 | 30 fps | 2500-4000 kbps | 5+ Mbps | Standard streaming, mobile viewers |
480p30 | 854x480 | 30 fps | 1500-2500 kbps | 3+ Mbps | Low bandwidth, developing markets |
Protect your streams and credentials
Always use rtmps:// instead of rtmp:// to encrypt your stream in transit. This prevents eavesdropping and MITM attacks.
Generate new stream keys weekly or after any potential exposure. Old keys are invalidated with a grace period.
Restrict ingest to specific IP addresses or ranges for production streams. Prevents unauthorized use of your key.
Set up alerts for unexpected connections, quality drops, or geographic anomalies that might indicate key theft.
Verify webhook signatures to ensure events are genuinely from WAVE, not spoofed by attackers.
Generate backup stream keys in advance so you can quickly switch if primary key is compromised during live broadcast.
Common issues and how to resolve them
How teams use WAVE RTMP in production
Gaming & Esports
Needed reliable RTMP ingest for 500+ concurrent streamers with automatic failover.
Implemented WAVE RTMP with multi-region ingest, automatic key rotation, and real-time health monitoring.
“WAVE's RTMP infrastructure handles our peak tournament traffic without breaking a sweat. The automatic failover saved us during a major competition.”
Religious Broadcasting
Churches worldwide needed simple RTMP setup with minimal technical expertise.
Custom RTMP configuration wizard integrated with WAVE API, automatic quality optimization.
“Our volunteers can now start streaming in minutes, not hours. WAVE made professional broadcasting accessible to every congregation.”
Enterprise Events
Fortune 500 clients required secure RTMP ingest with compliance certifications.
WAVE Enterprise RTMP with IP allowlisting, audit logging, and SOC 2 compliance.
“The security features and compliance certifications were non-negotiable for our enterprise clients. WAVE delivered everything we needed.”