Tech

Publishing

Every live stream starts with publishing: a camera, a screen or an encoder sends video and audio to the Media Server. How it gets there doesn't limit how it's watched: once on the server, the stream can be played any way you need.

So how do you get your stream in?

We've brought together all the available publishing methods in one place.

Some of them, like WebRTC and RTMP, may already be familiar to you. Others deserve a closer look.

WebRTC

WebRTC is the way to publish straight from a browser or a mobile app: no plugins and no encoder to install. The application opens a WebRTC connection with the Media Server and starts publishing with a stream.publish() call in the Web SDK, Android SDK or iOS SDK.

A developer surrounded by capture devices: cameras, microphones, a webcam, headphones and a megaphone.

Video goes out as H.264 or VP8, audio as Opus or G.711. The SDK adapts the bitrate to the network as it changes, and the publisher can choose the camera and microphone, the resolution, frame rate and bitrate, and the codecs and the transport.

How publishing works, and every control a publisher has, is covered on the WebRTC live streaming page.

Explore WebRTC live streaming page

WHIP

WHIP, the WebRTC-HTTP ingestion protocol, publishes over WebRTC without an SDK. The encoder sends one HTTP request with its SDP offer, the Media Server answers with an SDP answer, and the stream goes over WebRTC with the same low latency as from a browser.

A developer holding a film clapperboard labelled OBS.

OBS Studio 30 and later publishes over WHIP: choose the WHIP service and enter the server URL with the stream name. Video comes as H.264, or VP8 and H.265 if the encoder supports them, audio as Opus or G.711.

Explore documentation↗

RTMP

RTMP is the protocol of live encoders. OBS Studio, ffmpeg, Wirecast and hardware encoders publish to the Media Server over RTMP, and the server delivers the stream to browsers and mobile apps like any other.

The URL contains the application name and the stream name, for example rtmp://media.example.com:1935/live/stream1; in OBS Studio the stream name goes into the Stream Key field. Video comes as H.264 or H.265, audio as AAC.

rtmp://media.example.com/live/stream1

Explore documentation↗

RTSP

An encoder that speaks RTSP can push its stream to the Media Server directly: it sends an ANNOUNCE request and then the RTP stream, over TCP interleaved or over UDP. This suits hardware and software encoders that publish H.264 with Opus.

The URL is the server address and the stream name, for example rtsp://media.example.com:554/stream1. By default the server listens for RTSP on TCP port 554. Video comes as H.264, H.265 or VP8, audio as AAC or Opus.

rtsp://media.example.com/stream1

To pull a stream from an IP camera instead, the server itself connects to the camera by its RTSP URL; that is covered on the IP camera streaming page.

Explore documentation↗

SRT

SRT carries an MPEG-TS stream over unreliable networks: it recovers lost packets, so it is the reliable choice for publishing from an encoder over the internet. Plain UDP works too, but SRT is recommended whenever the encoder supports it.

Publishing starts with a REST API call: /mpegts/startup with the stream name returns the URI to publish to, for example srt://media.example.com:31014, and the encoder sends the stream there. Video comes as H.264 or H.265, audio as AAC.

Explore documentation↗

Launch your streaming server

LLcast will deploy a dedicated Media Server just for you. Publish from a browser or a mobile app over WebRTC, from OBS over WHIP or RTMP, from an encoder over RTSP or SRT, and play the stream any way you need.