Stream is buffering for those with mobile or slow networks

If some people are experiencing your stream without issues, but others are unable to enjoy your stream at the quality or qualities you have configured due to their own internet connection or mobile circumstances, their network or location may be to blame. Instead of trying to speed anything up on your side you need to offer additional options that they can download faster.

After reading below you might also find helpful tips browsing the OBS Troubleshooting Guide, even if you don’t use OBS.

Add additional lower output qualities

Adding additional, lower, qualities within your Owncast video configuration will give these people smaller video to download, therefore downloading faster and resulting in less buffering. Lower bitrate, framerate and resolution are available combinations of settings you can utilize to offer low quality options for your viewers.

Drawback: Adding additional qualities will result in using more hardware resources on your server, so keep an eye on your CPU usage as you make these changes.

The viewer will switch between qualities as needed

Using a technology called Adaptive Bitrate Streaming the viewer will switch transparently between different video qualities as needed. Read more about how this, and other pieces of video works by reading our more detailed Video Document.

Higher quality video means larger video sizes that take longer to download.

As quoted from the OBS Wiki:

This is a very common mistake that new streamers make. Streamers will tend to use as much bitrate as they have upload available, with no regard to how that might affect their viewers. Of course, we understand you want your stream to look good. Upping your bitrate is a simple way to accomplish that, but it must be within reason.

In the end while your 1080p 60fps 9mb/s stream might look glorious, and 3 people can watch it fine, either your stream provider or the rest of your viewers very well might have issues.

Reduce the bitrate and framerate of your video output variants in Owncast, and then match your highest quality to what you’re sending in your broadcasting software.

The larger each segment of video is the longer it takes to download. So in general if you decrease the quality of your video (in bitrate and/or resolution) you’re likely to decrease the amount of time it takes to download, therefore reducing the likelihood for buffering for your audience.

When decreasing the framerate and/or bitrate on your server you should also decrease what you send Owncast on your broadcasting software. This helps because:

  1. It decreases the amount of network traffic your internet connection is using, reducing the chance of your upstream being a bottleneck in streaming.
  2. It decreases the amount of data that’s being ingested into Owncast.
  3. The less conversation work that needs to take place within Owncast the faster things are.

Visit HLS Analyzer to assist in troubleshooting. Put in your stream URL when asked, it is <yourserver>/hls/stream.m3u8. Hit Analyze .m3u8.

Take note of the following values:

Segment Download (sec): The amount of time it took (in seconds) to download one segment of video. If it takes longer to download one segment of video than each segment lasts you will get buffering.

Player Buffer (sec): The amount of playable video (in seconds) available. If this reaches zero you will get buffering.

Outage (sec): The amount of time the player had no available video and went into buffering.

Drawback: Reducing your video framerate and/or bitrate may noticeably decrease the quality of of your stream for some content.

Framerate

Decreasing the framerate of your video is often an easy way to reduce buffering. FPS means “frames per second”, therefore if you cut your video framerate from 60fps to 30fps there are literally half as many frames of video for your viewers to download, reducing the amount of video data in half.

Drawback: Reducing the framerate may visibly decrease the quality of your stream for some content.