Workload · Broadcasting from OBS to your site

Stream OBS to your website and keep your viewers on your own page

You can stream OBS to your website by sending OBS to a streaming service or media server instead of a social platform, then placing that stream's player on your page. OBS does the capturing and encoding; something else has to turn the feed into a format browsers can play and hand a copy to every viewer. Here is how to set up each part, and which OBS settings save you from a stuttering picture.

The short version
  1. OBS sends one feed; a server or service does the delivery
  2. Pick Custom in OBS and paste the server, key and login you were given
  3. A fixed 2-second keyframe interval gives smooth playback in the browser
  4. Your site, YouTube and Facebook can all run off that one feed

Why OBS needs a partner to reach your website

OBS is the studio, not the broadcast tower. It mixes your cameras, slides and microphones, compresses the result, and pushes one stream to one address. It has no way to give a separate copy to a hundred people who open your page.

So the job splits in two. OBS pushes to a server you choose. That server converts the stream into small chunks of video that web browsers know how to fetch, most often in a format called HLS (HTTP Live Streaming), and sends them to each viewer. A player on your page then plays those chunks back as one continuous picture.

Browsers cannot play the RTMP or SRT that OBS sends out. That is the reason a link straight to OBS never works, and the reason you need the server in between.

What you type into OBS

Open Settings → Stream. Where it asks for a Service, you choose Custom... instead of YouTube or Twitch. Then:

  1. Paste the server address from your provider into Server. For RTMP it starts with rtmp://; for SRT it starts with srt://.
  2. Paste the stream name into Stream Key. For SRT, put the stream ID here only if your provider gives you one; otherwise leave it empty.
  3. If your provider gives you a username and password for the encoder, tick Use authentication and fill both in. For SRT, the password box is where the passphrase goes.
  4. Click OK, then Start Streaming, and watch the status bar for dropped frames.
  5. Open the player on a phone on mobile data, not only on the PC that is streaming, to see what a real viewer sees.

Newer OBS versions also list WHIP as a Service. It publishes over WebRTC, with a server address and a Bearer Token (WHIP's name for a stream key). It is the choice when the delay between you and the screen matters most. On Ubuntu, the OBS docs say the 24.04 PPA build lacks WHIP and suggest the Flatpak.

Will it play smoothly? The settings that decide

Mostly yes, if two settings are right. The first is the keyframe interval: how often OBS sends a complete picture rather than only the changes. The server can only cut its chunks at those complete pictures, so if they arrive at random, the chunks come out uneven and the player stutters.

  1. Go to Settings → Output and change Output Mode to Advanced. The simple mode does not show the setting.
  2. On the Streaming tab, find Keyframe Interval (0=auto) and set it to 2. Apple's HLS guidelines ask for a complete frame every two seconds.
  3. Set Rate Control to CBR so the stream keeps the same size from second to second.
  4. Choose a Bitrate your connection can carry all the way through the show (next section).

OBS's own notes on quality selectors say the same thing from the viewer's side: switching between quality levels is smoothest when keyframes keep a steady rhythm.

How much upload speed you need

Run a speed test on the computer you will stream from and look at the upload figure, not the download. OBS's troubleshooting guide suggests starting the video bitrate at about three quarters of that number. The bitrates below are example rungs from Apple's HLS guidance:

What you sendVideo bitrateUpload you should measure
720p3,000-4,500 kbit/sAt least 4-6 Mbit/s
1080p6,000-7,800 kbit/sAt least 8-10.5 Mbit/s

Audio is small beside this: Apple's guidance puts stereo AAC between 32 and 160 kbit/s. Plug in a cable rather than relying on Wi-Fi if you can; the OBS guide flags Wi-Fi as a common cause of unstable streams.

If OBS keeps reporting dropped frames, the line between you and the server cannot keep up. Lower the bitrate first. OBS also has a congestion option under Settings → Advanced → Network that lowers the bitrate by itself, but its own guide treats that as a last resort: quality drops for as long as it is doing its work.

Getting the player onto your page

The easy way is the player your streaming service gives you: copy its embed into your site builder's HTML block and you are done. If you are building your own page around a raw HLS address (it ends in .m3u8), know that Safari plays it on its own, while in other browsers native support is missing or unreliable, so the usual answer is the free hls.js library, which the README recommends trying first wherever it is supported. This is the pattern its README recommends:

<script src="https://cdn.jsdelivr.net/npm/hls.js@1"></script>
<video id="live" controls playsinline></video>
<script>
  var el = document.getElementById('live');
  var src = 'https://STREAM-ADDRESS/index.m3u8';
  if (Hls.isSupported()) {
    var h = new Hls();
    h.loadSource(src);
    h.attachMedia(el);
  } else if (el.canPlayType('application/vnd.apple.mpegurl')) {
    el.src = src;
  }
</script>

Two things trip people up. If your site uses https, the stream address must too, or the browser blocks it. And the stream server has to allow your domain to fetch from it (a setting called CORS); when it does not, the player stays black (with the snippet above that happens in Safari as well, because hls.js does the loading there too).

Skip the server work with a live channel

Running the server half yourself means installing streaming software, certificates, and enough bandwidth for every viewer at once, and staying on call for every show. If you would rather just broadcast, our live video streaming hosting handles everything after OBS. You bring the camera and the encoder; your stream enters at the nearest of our 5 cities and reaches every viewer from the city closest to them.

  • Every channel's dashboard prints its own settings, ready to paste into OBS. The RTMP server is rtmp://ingest.video.primcast.com/ followed by your channel's name, with your stream name and login.
  • RTMP and WHIP work on every plan; SRT, for venue uplinks and phone hotspots you cannot trust, comes with Starter and up, each channel getting a port and passphrase of its own.
  • Each channel arrives with its own player and CDN address, so on Pro (3 channels) or Platinum (10) two rooms can have two players on the same site.
  • The Live tab shows whether you are on air, the rate OBS is sending, and how many are watching. A frozen encoder can be kicked and the channel restarted from there.
  • Each channel has a ceiling it enforces itself: Free and Starter take 1,000 viewers at a time, Pro takes 5,000 and Platinum 25,000.

Delivery runs on our video CDN, which is part of every plan, the free one included. Churches streaming a Sunday service will find the details for that setup on our page about streaming for churches.

Keep YouTube and Facebook without a second encode

You do not have to choose between your own site and the platforms. Point OBS at your channel a single time, then add YouTube, Facebook, Twitch or a custom RTMP destination as restream targets from the Live tab; five can run together. Each one switches on or off mid-show while your own player keeps running, and OBS only has to upload one stream.

If you would rather run your own streaming software on a machine that is entirely yours, our dedicated streaming servers are the other path; you then look after the software yourself.

Questions people ask

Is there a way to send OBS to my site without any server?
Not for an audience. OBS sends one stream to one place, and a website visitor's browser cannot pull RTMP or SRT from your PC. A server or streaming service in the middle repackages the feed for browsers and gives a copy to each viewer.
What keyframe interval works best for a website player?
Use 2 seconds, set in Advanced output mode on the Streaming tab. Leaving it on auto lets the gap between full frames wander, which leaves the player with uneven chunks and causes stutter. Apple's HLS guidelines ask for exactly this 2-second rhythm.
Should I choose RTMP or SRT in OBS?
On a steady wired connection, RTMP is simple and every service accepts it. On a shaky or long-distance line, SRT resends lost packets so the picture holds. OBS's SRT guide says to set its latency to no less than two and a half times the round-trip time to the server.
Can I embed the live stream in WordPress or another site builder?
Yes, through the builder's custom HTML or embed block. Paste the player embed your provider gives you, or an hls.js player pointing at an https stream address. Check it in both Safari and Chrome before announcing the stream.
Do I have to look after a server with a Primcast channel?
No. We run and maintain the streaming servers your channel lives on, and our CDN delivers it. Should you prefer a machine that is entirely yours, we sell dedicated streaming servers as a separate product.
Does adding my website mean leaving YouTube?
No. Your channel can pass the feed on to YouTube, Facebook, Twitch and other RTMP destinations, as many as 5 at once, while your own player stays live. OBS keeps sending just one stream.

Put your next show on your own site

Paste your channel's settings into OBS, place the player on your page, and keep the socials running from the same feed.

Start your live channel

Read next