Custom RTMP setup: stream any app or encoder through Upstream
Custom RTMP means typing in your own server address and stream key instead of picking a service from a list. Almost every streaming app and encoder, plus many cameras, have this option. It is all Upstream needs. The app sends one stream to Upstream, and Upstream sends it to up to 10 platforms.
The address tells the app where to send video, and the key tells Upstream which stream is yours, so keep the key private. If your app has its own guide, use that for the exact menu names. This page covers everything else, plus the fixes for every common connection problem.
- Any app or device with custom RTMP
- Full troubleshooting list
Before you start
- An Upstream account (the free plan is enough to test)
- An app or encoder that can send plain RTMP with H.264 video and AAC audio
- The platforms you want to go live on
Step 1
Get your server URL and stream key from Upstream
In Upstream, press Create stream, choose Multistream from OBS (it works for any RTMP app or device) and add your platforms, up to 10. The stream opens in Live Studio with the RTMP input on. For a stream you already have, open Live Studio, Source and set Live Source to RTMP.
- RTMP Server URL
rtmp://ingest.upstream.so:1935/live- Stream Key
- Unique to each stream. Copy it from Upstream and keep it private.
Step 2
Enter the details in your app or encoder
Open the streaming or output settings and look for Custom RTMP, Custom Server, Custom or similar. Paste the RTMP Server URL as the server or URL, and the Stream Key as the key. Some apps call the key the stream name.
If the app has only one field for the whole address, join the two with a slash:
rtmp://ingest.upstream.so:1935/live/ followed by your key.
Step 3
Check the output settings
Set the output to these values, or the closest your app or encoder offers:
| Setting | Value |
|---|---|
| Output resolution | Match your Upstream stream 1920x1080 is a starting point. A 4K stream takes a 4K feed on a plan that includes 4K. Vertical 1080p arrives at full 1080x1920, including on the free plan. |
| Frame rate | 30 fps, or 60 on a paid plan Use 60 only when the Upstream stream is set to 60 fps. Otherwise Upstream converts 60 to 30. |
| Video bitrate | About 6,000 kbps for 1080p30 The OBS profile for 1080p30 uses 7,000 kbps; profiles for higher resolutions or frame rates use more. Go lower, for example 4,500 kbps, if your upload is slow. |
| Rate control | CBR A constant bitrate keeps the feed steady. |
| Keyframe interval | 2 seconds A keyframe is a full picture. Live streams usually send one every 2 seconds. |
| Video encoder | H.264 x264, or a hardware H.264 encoder such as NVIDIA NVENC or Apple VideoToolbox. |
| Audio | AAC, 160 kbps The same as Upstream's OBS profile. |
Each platform also caps bitrate and stream length on its side. See the live streaming limits for YouTube, Twitch, Kick and more.
Step 4
Start the stream, then go live
Start the stream in Upstream first, then start streaming from your app or encoder. Live Studio switches from Not connected to Excellent, Good or Poor connection when the feed arrives, and Upstream sends it to every platform on the stream.
Your input address and your platform addresses are different
Upstream's address goes into the app that sends your video. The addresses from YouTube, TikTok or any other platform go into Upstream, as destinations. Mixing them up is the most common mistake: a YouTube key in your encoder sends the stream to YouTube alone, and Upstream never sees it.
The protocols differ too. Upstream sends out to platforms over RTMP, RTMPS or SRT, but it takes in plain RTMP only. So an app that can only send RTMPS or SRT can't feed Upstream, even though Upstream can deliver to an RTMPS or SRT platform. For how RTMP addresses and keys work in general, see what an RTMP URL is.
Troubleshooting
Upstream still says Not connected
Check that the stream is started in Upstream, the live source is set to RTMP, and your app or encoder is actually streaming. Then check that the server URL and stream key were pasted exactly, with no spaces at the start or end. If you reset the key in Upstream, paste the new one into your app or encoder.
Your app or encoder says it cannot connect to the server
The server URL has to start with rtmp:// and end with /live. Streaming
uses port 1935, so if you are on a work or school network, check that outgoing connections on that
port are allowed.
Upstream shows Poor connection or viewers see buffering
Your upload cannot keep up with the bitrate. Lower the video bitrate (4,500 kbps is a good next step), use a wired connection instead of Wi-Fi where you can, and close uploads or cloud sync on the same network. The streaming bitrate calculator measures your upload and suggests a bitrate.
Viewers see my video playlist instead of my live feed
That means no feed is reaching Upstream right now, so the stream shows its background playlist. Check the connection status in Live Studio, then the fixes above.
My stream key was shared or leaked
Press Reset Stream Key in Upstream. It creates a new key and disconnects anything streaming with the old one. Paste the new key into your app or encoder.
I stream in 60 fps or 4K but it looks like 1080p at 30 fps
Match the resolution and frame rate in your app or encoder to your Upstream stream. 4K and 60 fps need a plan that includes them; a stream set to 30 fps still sends 30 fps. If you change these settings while your encoder is sending video, disconnect and reconnect it so the input can update. Your server URL and stream key stay the same.
My encoder only offers built-in services like YouTube or Twitch
Upstream needs a custom RTMP server option. Check your encoder's manual or firmware updates for a custom or manual RTMP setting. Encoders that only stream to a fixed list of services can't send to Upstream.
My app only accepts rtmps:// or SRT
Upstream takes in plain RTMP, so the app needs to allow an rtmp:// address.
My second encoder doesn't take over when the first one stops
Each Upstream stream has one RTMP input, with no backup input or automatic switching. Switch sources in your app or encoder instead.
FAQ
What is custom RTMP?
It means entering your own streaming server address and key instead of choosing a built-in service. Here the server is Upstream, which passes your stream on to the platforms you add.
What is an RTMP URL?
It is the address your app sends live video to. Upstream's is rtmp://ingest.upstream.so:1935/live. The stream key is a separate value, unless the app wants both joined into one address.
How do I get a TikTok RTMP URL and stream key?
On a computer, TikTok shows them under Go LIVE, if your account has access. Add them in Upstream as Other (Custom RTMP). Your encoder still uses Upstream's address and key.
Does Upstream accept SRT or RTMPS input?
Not as an input. Upstream takes in a live feed over RTMP. It can send out to platforms over RTMPS and SRT.
Do I need my own RTMP server?
Not to reach your platforms. Upstream is the RTMP server your app sends to, and it sends the stream on. See Upstream's RTMP server. To run one of your own, here is how to set up a free RTMP server.
Which platforms can I reach?
YouTube, Twitch, Kick, Facebook, Instagram, Rumble, Mixcloud and any service that takes a custom RTMP or SRT stream. See supported platforms.
Is Upstream free?
The free plan includes 24 hours of streaming a month and up to 10 destinations, with no watermark.
Set it up now
The free plan includes 24 hours of streaming a month and up to 10 of 30+ supported platforms.