Video Broadcasting Overview
There are thousands of Twitch broadcasters. A broadcaster sends a video stream to Twitch using any of several tools:
- Streaming encoder, normally a software implementation like Twitch Studio, Streamlabs, OBS Studio, or Xsplit.
- Consoles like Xbox One, Xbox Series S|X, Playstation 4, Playstation 5.
- Hardware video encoder
The tool sends a video signal captured from the broadcaster’s game and cameras, through the open Internet, into Twitch using Real-Time Messaging Protocol (RTMP).
The first stop for a broadcast stream is the Twitch ingesting subsystem, where streams enter Twitch and are authorized and registered, then prepared for viewers. You select an ingest server to receive your stream. There are many ingest servers, each living in a PoP (Point of Presence, a small-to-medium deployment of servers in a co-location facility, normally at a major internet exchange point).
Broadcast URLs and Stream Keys
Each broadcast uses an RTMP URL with this format:
rtmp://<ingest-server>/app/<stream-key>[?bandwidthtest=true]
Where:
-
<ingest-server>
identifies a specific Twitch server that receives this broadcast stream; e.g., sfo.contribute.live-video.net. You can find a list of ingest servers using Get Ingest Server API. -
<stream-key>
(also known as authorization key) uniquely identifies this stream. Stream keys are assigned by Twitch. Broadcasters can retrieve the keys from the broadcaster dashboard on www.twitch.tv or through the Get Stream Key API. -
<bandwidthtest=true>
is an optional query-string parameter that disables live viewing of the stream. It is used to verify bandwidth health on Twitch Inspector.
Example: rtmp://sfo.contribute.live-video.net/app/live_user_123456789?bandwidthtest=true
For more detailed recommendations and codecs, please consult the Twitch Broadcasting Guidelines.