What is RTMP Push and Why It Matters
RTMP Push is the most widely used method for sending a live video stream from your encoder to a streaming server. With RTMP Push, your encoding software (OBS Studio, Wirecast, vMix, or FFmpeg) initiates the connection and "pushes" the audio/video data to the server. The server then repackages that stream — typically into HLS — for delivery to your viewers.
This approach is favored because it works reliably behind NATs and firewalls, requires minimal server-side configuration, and is supported by virtually every live production tool on the market. Whether you are broadcasting a corporate event, a church service, a gaming session, or a 24/7 TV channel, RTMP Push is the standard ingest method you will use.
Understanding the Server URL Format
Every RTMP Push connection requires two pieces of information: a Server URL and a Stream Key. The server URL tells your encoder where to send the data, while the stream key identifies which specific stream on the server should receive it.
The standard RTMP server URL format used by StreamDev is:
rtmp://your-domain.com:1935/live/
Replace your-domain.com with the actual hostname or IP address of your streaming server. Port 1935 is the default RTMP port. The /live/ path is the application name configured on the server.
The stream key is a unique, case-sensitive string assigned to each stream in your StreamDev dashboard. Treat it like a password — anyone with the key can publish to your stream. A typical stream key looks like mystream123 or live_abc_XYZ.
Step-by-Step: OBS Studio Setup
OBS Studio is the most popular free and open-source encoder. Follow these steps to configure RTMP Push:
- Open OBS Studio and go to Settings → Stream.
- Set Service to
Custom.... - In the Server field, enter your RTMP URL:
rtmp://your-domain.com:1935/live/ - In the Stream Key field, paste the stream key from your StreamDev dashboard. Remember, this value is case-sensitive.
- Go to Settings → Output. Select Output Mode: Advanced.
- Under the Streaming tab, set the encoder to
x264(or NVENC if you have an NVIDIA GPU). Set the bitrate to match your upload speed — 2500–6000 Kbps is typical for 720p to 1080p. - Set Keyframe Interval to
2seconds for optimal HLS compatibility. - Click Apply, then OK.
- Click Start Streaming in the main OBS window. The status bar at the bottom will show a green indicator when connected.
Wirecast Configuration
Wirecast is a professional-grade live production tool from Telestream. To configure RTMP Push in Wirecast:
- Open Wirecast and go to Output → Output Settings.
- Click the + button to add a new output destination.
- Select RTMP Server as the destination type.
- In the Address field, enter:
rtmp://your-domain.com:1935/live/ - In the Stream field (stream key), paste your stream key from StreamDev.
- Configure your encoding preset — select a resolution, frame rate, and bitrate that suit your content and bandwidth.
- Click OK to save.
- Click the Stream button in the main interface to begin broadcasting.
vMix Setup
vMix is a powerful Windows-based live production and streaming tool. To set up RTMP Push in vMix:
- In the vMix main window, click the gear icon at the bottom to open Settings, or go to the Stream section directly.
- Click Streaming Settings (the gear icon next to the Stream button).
- Set Destination to
Custom RTMP Server. - Enter the URL:
rtmp://your-domain.com:1935/live/ - Enter the Stream Key from your StreamDev dashboard.
- Under Quality, choose your desired resolution and bitrate. vMix supports hardware-accelerated encoding if your system has a supported GPU.
- Click Save, then click the Stream button to go live.
Using FFmpeg for RTMP Push
For automated or headless workflows, FFmpeg is the go-to command-line tool. Use the following command to push a pre-recorded file as a live stream:
ffmpeg -re -i input.mp4 -c copy -f flv rtmp://your-domain.com:1935/live/streamkey
Here is what each flag does:
-re— Read the input at its native frame rate (simulates real-time streaming).-i input.mp4— Specifies the input file.-c copy— Copies the audio and video codecs without re-encoding, which saves CPU and preserves quality.-f flv— Sets the output format to FLV, which is required for RTMP.
If your input file is not already in H.264 + AAC format, you may need to transcode:
ffmpeg -re -i input.mp4 -c:v libx264 -preset fast -b:v 3000k -c:a aac -b:a 128k -f flv rtmp://your-domain.com:1935/live/streamkey
Firewall and Port Configuration
RTMP uses port 1935 by default. This port must be open on your server's firewall for inbound connections. If you are using UFW (Uncomplicated Firewall) on Ubuntu/Debian, run:
ufw allow 1935/tcp
For firewalld on CentOS/RHEL:
firewall-cmd --permanent --add-port=1935/tcp
firewall-cmd --reload
If your server is behind a cloud provider's security group (AWS, Google Cloud, Azure), you must also allow TCP port 1935 in the security group rules.
Auto Conversion to HLS
Once your RTMP stream reaches the StreamDev server, it is automatically converted to HLS (HTTP Live Streaming) for viewer playback. HLS is the industry standard for delivery because it works on virtually every device and browser, supports adaptive bitrate streaming, and passes through CDNs and firewalls without issues. You do not need to configure anything additional — the conversion happens in real time on the server side.
Troubleshooting Common Issues
If your stream fails to connect or drops unexpectedly, check the following:
- Stream Key Mismatch: Stream keys are case-sensitive. Double-check that you copied the key exactly as shown in the StreamDev dashboard. A single extra space or incorrect character will cause a connection failure.
- Port 1935 Blocked: Use a tool like
telnet your-domain.com 1935ornc -zv your-domain.com 1935to verify the port is reachable. If it times out, the port is blocked by a firewall. - DNS Resolution Issues: Make sure your domain resolves correctly. Try using the server IP address directly in the RTMP URL to rule out DNS problems.
- Connection Timeout: Timeouts can occur if your upload bandwidth is insufficient for the configured bitrate. Lower your bitrate or switch to a wired connection.
- Encoder Crash or Freeze: Update OBS, Wirecast, or vMix to the latest version. Check CPU and GPU usage — if either is at 100%, reduce your output resolution or bitrate.
- Incorrect Application Path: Ensure the URL ends with
/live/(including the trailing slash). Some servers require the exact path to match.
Ready to Start Streaming?
StreamDev provides professional RTMP ingest with automatic HLS conversion, multi-protocol support, and 24/7 technical assistance.
Get Started