Platform capability

RTMP ingest for DynTube live streaming

Your encoder speaks RTMP. Browsers do not. This page documents the path between them: create a live stream, copy the Server URL and stream key exactly as your Dashboard shows them, publish from a compatible encoder, and let viewers watch over HLS in your own player.

RTMP in, HLS out

  • RTMP in

    A compatible encoder publishes to the ingest region you chose.

  • HLS out

    Viewers watch through the player, embed or direct URL.

  • Key stays private

    The displayed key is the credential that authorises publishing.

The path

RTMP goes in, HLS comes out

Two different protocols do two different jobs, and confusing them is the most common reason a first broadcast appears to “work” but nobody can watch it.

RTMP is a contribution protocol. It is what encoding software and hardware use to publish a live feed to a receiving server, and it expects a server address plus a key that proves the sender is allowed to publish. It was never designed for a browser audience.

HLS is a delivery format. It breaks the incoming feed into segments a normal player can request over HTTP, which is what makes a live stream watchable on a phone, a laptop or a television without a plugin. DynTube sits between the two: your encoder publishes over RTMP, and viewers are given HLS playback.

Everything else on this page follows that split — you configure one side in your encoder, and you hand out the other side from the Dashboard.

Before you broadcast

What you need, and how the stream gets created

Ingest details are generated for a stream that exists. There is nothing to paste into an encoder until you have created one.

  1. 01

    A live-capable account and the permission to manage streams

    Live streaming is an account capability, and creating or ending a stream is a managed action rather than something any viewer of your Dashboard can do. If the create screen is not available to you, that is a plan or permission question, not an encoder question.

  2. 02

    A compatible RTMP encoder on the machine doing the broadcasting

    Encoding software such as OBS, or a hardware encoder that lets you enter a custom RTMP server and key, is what actually sends the feed. DynTube does not capture from your camera; it receives what your encoder publishes.

  3. 03

    A new stream: name it, choose an ingest region, set its options

    Creating a live stream is a short form. You give it a name and description, you choose the ingest region you want your encoder to publish to, and you set the per-stream options you need — including whether this stream should be recorded and, if so, which project the recording belongs in.

  4. 04

    A region chosen for the encoder, not for the audience

    The ingest region is where your encoder connects, so the sensible choice is the region closest to the machine that is broadcasting. Viewer delivery is a separate concern and is not decided by this field.

  5. 05

    Saved — now the stream has its own Connect details

    Once the stream is saved, open it from your live streams list. Its detail page carries the Connect tab where the ingest values live, alongside the tabs for viewer playback and embedding.

Encoder setup

Configuring your encoder from the Connect tab

The Connect tab shows exactly two values, and the whole job is transferring both of them into your encoder without altering either one.

Server URLRead-only, with a copy action
The Connect tab presents the Server URL as a read-only field with a copy button next to it. Use the copy button. In your encoder this is the custom RTMP server address — in OBS, the “Custom…” service with the server field filled from this value.
Stream keyMasked, revealable, with a copy action
The stream key is masked by default. You can reveal it when you need to see it, and there is a copy action so you never have to. Paste it into your encoder’s stream key field exactly as displayed, including anything that follows it.
In OBS, leave “Use Authentication” offOBS Custom service
When you set OBS to the “Custom…” service and fill its Server and Stream Key fields from the Connect tab, leave OBS’s “Use Authentication” checkbox unticked — the credential is already carried inside the pair you copied. This is guidance for OBS specifically. On another encoder, fill in its own custom-RTMP server and key fields as that encoder documents them, and do not invent a separate username and password that the Connect tab never gave you.
Copy exactly — do not assemble the address yourselfWhy this matters more than it sounds
DynTube has more than one ingest shape. A stream on the New engine publishes to a fixed application on the server and its displayed key carries a trailing authentication segment; an older legacy stream instead addresses its own application on the server and shows a plain key. The two are not interchangeable, and a hand-built address will pair the wrong halves together. Copying both displayed values as-is is the only reliable method.

Encoder checklist

  • Service set to a custom RTMP destination
  • Server pasted from the Connect tab
  • Stream key pasted from the Connect tab
  • In OBS: “Use Authentication” left unticked
  • On another encoder: its own custom-RTMP fields, no invented credentials
  • Nothing retyped, nothing trimmed

During the broadcast

Starting, watching the state, and ending the stream

Publishing is what makes a stream live. The Dashboard reflects that state rather than causing it.

  1. 01

    Start the encoder

    Press start in your encoder. Nothing is live until the encoder is actually publishing to the ingest address — a created stream that has never been published to is simply a stream that exists.

  2. 02

    Confirm the state in the Dashboard

    Once the encoder is publishing, the backend records the stream as live. The stream detail page refreshes its live state and viewer count while you have it open, so treat the status there as your confirmation that a publisher has been observed rather than assuming success from the encoder alone.

  3. 03

    Read the two tiles for two different things

    Live status is the ingest signal: it tells you the backend has observed your publisher. The viewer count sits beside it and reports the audience only — it does not diagnose whether your encoder is reaching DynTube. A stream that is genuinely live with nobody watching yet correctly shows a viewer count of zero, so judge the publish by the status and the audience by the count.

  4. 04

    End it from either side

    Stopping your encoder closes the publisher session. A stream on the New engine can also be ended from the Dashboard using its authorised End Stream control, which disconnects the active publisher. Both routes end the broadcast; use whichever you are closest to.

The audience side

How viewers watch, and what happens afterwards

Viewer delivery is HLS, and the URLs for it come from the Dashboard. Recording is a separate, optional choice made per stream.

  • Your player

    The Dashboard gives you a player URL for the stream, so the live broadcast is watched in the same player surface as the rest of your library rather than on someone else’s site.

    HLS delivery

  • Embed on your own page

    An embed snippet is provided so the stream can sit inside your own page. You copy it from the stream’s embed tab; there is nothing to write yourself.

    Copy from the Dashboard

  • Direct URL

    A direct URL is available for cases where you need to hand out a link rather than embed a player — an email, a chat message, a calendar invitation.

    Share as a link

  • Recording is opt-in

    Streams are not recorded automatically. Recording is a per-stream option, it is plan-gated, and when you enable it you select the eligible project the recording is stored in.

    Per-stream, plan-gated

    Learn more
  • RTMP is not a viewing protocol

    The ingest address exists for your encoder only. Viewers are never given an RTMP URL, and there is no RTMP playback path for an audience.

    Ingest ≠ playback

  • Check the audience path yourself

    Live status confirms the ingest side only. Once it shows live, open one of the Dashboard-provided URLs — the player or the direct URL — separately from your encoder machine and confirm the stream actually plays there before you send the link out.

    Test it separately

Keeping it working, keeping it yours

Security and troubleshooting

Almost every failed first broadcast is one of four things, and almost every security question about RTMP comes back to a single value.

The stream key is a publishing credential

Anyone holding the key can broadcast to your channel. That is the whole security model of RTMP ingest, and it is why the Dashboard masks the key, requires a deliberate action to reveal it, and prints the warning next to the field. Keep it out of shared documents, screenshots, support tickets and screen shares, and give it only to the person or machine that is actually broadcasting.

When the encoder will not connect, check these in order

  1. Verify the exact pair. Compare the Server URL and stream key in your encoder against the Connect tab for this stream. Look for a leading or trailing space, a line break introduced by pasting, a truncated key, or a server and key taken from two different streams.
  2. Confirm the ingest region is reachable from the broadcasting machine. The encoder has to be able to reach the region you selected when you created the stream, so a restrictive corporate network or firewall can be one cause of a connection that never establishes.
  3. Confirm the encoder has actually started its output. A configured encoder is not a publishing encoder — check that streaming is running, not just that the settings were saved.
  4. Read the Dashboard status. Live status means the backend has observed your publisher; it is not a statement that every aspect of the ingest is definitively fine. If the encoder claims to be sending and the Dashboard does not show the stream as live, look between the two rather than at your player or embed.

When viewers cannot watch but the stream is live

If the Dashboard shows the stream as live, the backend has observed your publisher, so the next thing to examine is the audience side: check that viewers were given a playback URL or embed from the Dashboard rather than the ingest address, and that the page you embedded on is the page they are actually opening. A zero viewer count on a live stream is not itself a fault.

Questions

RTMP ingest questions

Which encoder should I use?

Any compatible encoder that lets you enter a custom RTMP server and stream key will do, which includes widely used software such as OBS. DynTube supplies the two values; your encoder supplies the feed. We do not claim compatibility with every encoder or capture device in existence, so if yours cannot accept a custom RTMP destination it is not a fit.

Can I build the ingest URL myself from my account details?

No — copy both values from the stream’s Connect tab instead. DynTube has more than one ingest shape: a stream on the New engine and an older legacy stream address the server differently and present their keys differently, so a hand-assembled address risks pairing the wrong halves. The Connect tab always shows the correct pair for the stream you are looking at.

Do I need to turn on authentication in my encoder?

In OBS, no — when you use the Custom service with the Server URL and stream key copied from the Connect tab, leave OBS’s “Use Authentication” checkbox unticked, because the credential is carried inside that pair. For any other encoder, follow its own custom-RTMP server and key fields as that encoder documents them, and do not invent a separate username and password: the Connect tab does not issue one.

What bitrate, resolution or keyframe interval should I use?

That is an encoder-side decision and depends on your source material and your available upload bandwidth, so we do not prescribe values here. Configure your encoder to what your connection can sustain and run a test broadcast before an announced event.

When does the stream show as live?

Publishing from your encoder is what makes the backend record the stream as live, and live status means the backend has observed your publisher. The stream detail page refreshes its live state and viewer count while it is open, so use the status there to confirm. We do not promise a specific propagation time, which is another reason to test before you announce. The viewer count is a separate reading: it reports the audience, so zero on a genuinely live stream is normal.

How do I end a broadcast?

Stopping your encoder closes the publisher session. A stream on the New engine can also be ended from the Dashboard with its authorised End Stream control, which disconnects the active publisher.

Can viewers watch over RTMP?

No. Viewer delivery is HLS, through the player, embed or direct URL the Dashboard provides. The RTMP address is only ever for your encoder.

Is my stream recorded automatically?

No. Recording is opt-in per stream and plan-gated, and when you enable it you choose the eligible project the recording is stored in. A stream with recording switched off leaves nothing behind when it ends.

What happens if someone else gets my stream key?

They can publish to your channel, which is why the key is masked in the Dashboard and carries a keep-it-private warning. Treat it as a credential: limit who holds it, keep it out of shared documents and screenshots, and contact support if you believe it has been exposed.

Run a test broadcast before you announce anything

Create a stream, copy the pair from its Connect tab, publish from your encoder, confirm the live status in the Dashboard and open a Dashboard-provided playback URL to check the audience path. Repeat those verified steps for future broadcasts.