Docs

OBS setup

Beam Networks Stream expects OBS to record locally as small HLS chunks. The agent watches that directory and uploads each segment to the cloud.

Recommended output settings

Beam recommends configuring OBS to 1920×1080 at 60 fps with ~6000 kbps CBRas the default target. The cloud ingest path is bitrate-agnostic and absorbs 1080p60 cleanly, and 6000 kbps CBR matches the standard Twitch / YouTube reference for 1080p60 streaming.

  • Output (Scaled) Resolution: 1920×1080
  • Common FPS Value: 60
  • Encoder bitrate: 6000 kbps, rate control CBR
  • Video Encoder: h264_videotoolbox on Mac or libx264 on Windows/Linux
  • Audio Encoder: aac
  • Keyframe interval: 2 seconds (keyint=120 at 60 fps)

If your encoder or upload bandwidth cannot sustain 1080p60, fall back to 1080p30 at ~4500 kbps CBR or 720p60 at ~4000 kbps CBR. Both are supported.

1. Create the output folder

mkdir -p /tmp/obs-hls

2. Switch OBS to Advanced output mode

  1. 1. Open OBS Settings.
  2. 2. Open the Output section.
  3. 3. Change Output Mode from Simple to Advanced.

3. Configure the Recording tab

  1. 1. Set Type to Custom Output (FFmpeg).
  2. 2. Set FFmpeg Output Type to Output to File.
  3. 3. Set the file path to /tmp/obs-hls/stream.m3u8.
  4. 4. Set Container Format to hls.
  5. 5. Set Video Encoder to h264_videotoolbox on Mac or libx264 on Windows/Linux.
  6. 6. Set Video Bitrate to 6000 Kbps and Rate Control to CBR.
  7. 7. Set Audio Encoder to aac.

hls_time=2 hls_list_size=10 hls_flags=delete_segments+append_list

4. Set resolution, frame rate, and keyframe interval

In Settings → Video, set Output (Scaled) Resolution to 1920x1080 and Common FPS Value to 60. Then back in the Recording tab, set the keyframe interval so it matches the 2-second segment length:

  • At 60 fps (recommended), use keyint=120.
  • At 30 fps (fallback), use keyint=60.

5. Test the output

  1. 1. Click Start Recording in OBS, not Start Streaming.
  2. 2. Check /tmp/obs-hls for a manifest and numbered .ts files.
  3. 3. Confirm a new segment appears roughly every 2 seconds.

Quick troubleshooting

  • If no files appear, make sure you started recording rather than streaming.
  • If h264_videotoolbox fails, switch to libx264.
  • If files appear but the agent skips them as empty, try removing delete_segments from the muxer settings and test again.
  • If the encoder cannot sustain 1080p60 (dropped frames in the OBS stats panel), fall back to 1080p30 at ~4500 kbps CBR or 720p60 at ~4000 kbps CBR.