Skip to main content

Video streaming troubleshooting

Fix a stream that will not go live, buffers constantly, or looks terrible.

The encoder will not connect

  • Wrong server URL or key. Re-copy both. The key is case-sensitive.

  • Port blocked. RTMP is TCP 1935; some networks block it. Confirm outbound 1935 is allowed on the encoder's network.

  • Service name set wrong in OBS — it must be "Custom" for our ingest.

  • Firewall on the server. Ensure the ingest port is open.

It goes live but buffers for viewers

Work down the chain:

  1. Encoder upload saturation. Is your upload speed the bottleneck? Lower the bitrate to half your measured upload.

  2. Delivery bandwidth. Total delivery = bitrate × viewers. Are you hitting the server's outbound limit? See Bandwidth vs CPU bottlenecks.

  3. Transcoding overload. If you serve multiple renditions, is the CPU maxed? Check the server's graphs.

  4. Listener network. A mobile viewer on a weak connection needs a lower rendition — offer one, or accept that they buffer.

It looks blurry or blocky

  • Bitrate too low for the motion/resolution. See Video encoding and bitrates.

  • Encoder preset too fast at a low bitrate produces mush; balance preset against quality.

  • Upscaling a low-res source. Encoding 720p content up to 1080p adds no detail; match the output to the source.

Latency is too high

HLS buffers by design (6–30 s). Lower the segment length and playlist depth to reduce it, at the cost of efficiency. For sub-second, real-time interaction you need WebRTC, not HLS.

Audio out of sync

Usually an encoder setting (buffer or sample rate). Reset the encoder to a standard 48 kHz audio and a 2-second keyframe interval, and avoid splitting audio/video across devices.

Check the obvious first

Firewall, correct key, adequate upload, adequate delivery bandwidth, adequate CPU. Those five account for nearly every streaming problem.

Related reading