Quick Start

This guide assumes you have completed the Installation steps.

1. Verify Services Are Running

Get-Service StreamDelayController, StreamDelayInput

Both services should show Running status.

2. Open the Dashboard

Navigate to the dashboard in your browser:

http://localhost:8080

The dashboard shows real-time status, delay controls, and buffer visualization.

3. Configure OBS Studio

Install the Multiple Output Plugin

Download and install the obs-multi-rtmp plugin from the GitHub releases. Verify installation: Tools → Multiple output should appear in OBS.

Configure Primary Stream Output

Set up your normal Twitch stream in Settings → Stream as usual.

Add SRT Output for Delay System

  1. Go to Tools → Multiple output.
  2. Add a new target:
    • Name: SRT Delay System
    • Protocol: SRT/RIST
    • URL: srt://localhost:9000?streamid=publish:srt
    • Stream Key: (leave blank)
    • Uncheck Use authentication

Set Keyframe Interval

In Settings → Output → Streaming:

  • Set Keyframe Interval to 2 seconds (critical for accurate delay)

Create OBS Scenes

Scene 1 — Live Scene:

  • Your regular sources (camera, game capture, overlays, etc.)
  • This is what viewers see during normal streaming

Scene 2 — Delayed Scene:

  • Add a Media Source with these settings:
    • Input: http://localhost:8080/hls/delayed.m3u8
    • Local File: OFF
    • Restart playback when source becomes active: ON
    • Network Caching: 2000 ms
    • Hardware decoding: ON

4. Start Streaming

  1. Set your desired delay in the dashboard (e.g. 60 seconds).
  2. Start your OBS stream — the Multiple Output plugin automatically sends to both Twitch and the delay system.
  3. Wait for the buffer to fill (wait at least as long as your configured delay).

5. Use the Replay

When something exciting happens:

  1. Switch to the Delayed Scene in OBS — viewers now see content from the past.
  2. When done replaying, switch back to the Live Scene — viewers return to live content.

Default Ports

ServicePortProtocolPurpose
Controller8080HTTPDashboard & REST API
MediaMTX HLS8888HTTPHLS streaming
MediaMTX SRT9000SRT/UDPSRT input from OBS
MediaMTX API9997HTTPManagement API

StreamDeck Integration

Use the Web Request action:

ButtonMethodURLBody
30s DelayPOSThttp://localhost:8080/api/delay/preset/30s
60s DelayPOSThttp://localhost:8080/api/delay/preset/60s
90s DelayPOSThttp://localhost:8080/api/delay/preset/90s
No DelayPOSThttp://localhost:8080/api/delay/set{"delay": 0}

Next Steps