Rust Streaming Tool (Web Playback) Playbook icon
Playbooks

Rust Streaming Tool (Web Playback) Playbook

Operational plan for deploying and operating the WebRTC-first streaming system prototype.

System map

This playbook supports

Rust Streaming Tool (Web Playback)

Provide a low-latency, self-hosted screen/audio streaming tool that plays directly in a browser via WebRTC. Capture a selected monitor and audio source. Encode video (H.264) and audio (Opus) with GStreamer. Serve a minimal web UI and WebRTC signaling endpoint for browser playback.

Related Atlas entry

Purpose

Deliver low-latency, browser-native stream playback without relying on RTSP-first workflows. This playbook describes the operational plan for the prototype, with clear placeholders for architecture decisions that are still open.

When to use this playbook

  • Before deploying or upgrading the streaming stack.
  • When changing capture sources, codecs, or signaling configs.
  • When troubleshooting playback reliability or latency issues.

Signals to stop or escalate

  • Stream instability or dropped frames during normal load.
  • Signaling failures that prevent sessions from connecting.
  • Resource exhaustion (CPU, memory, or disk) on the host.

Current maturity

  • Status: prototyping.
  • Architecture decisions are still open (SFU vs P2P, signaling, auth model).

Audience and access

  • Primary operator: system owner (you).
  • Future operators: streaming admins and on-call staff (TBD).
  • Required access: server with capture devices/feeds and network access.

System overview (target state)

  • Ingest video sources and publish via WebRTC.
  • Serve a browser UI for playback.
  • Provide health endpoints and session metrics.
  • Package as install-and-run with systemd services.

Patterns in use

Inputs

  • Video sources (cameras, stream feeds, capture devices).
  • Stream configuration (resolution, fps, bitrate) (TBD).
  • Access control settings (TBD).

Outputs

  • Browser-playable streams.
  • Session and health metrics (recommended).
  • Logs for ingest, signaling, and delivery.

Preconditions

  • Host OS: Pop!_OS 24.04 LTS (target environment).
  • Networking: inbound access for signaling and media ports (TBD).
  • Capture hardware connected and recognized.

Install and deploy (planned)

  1. Install the service package (TBD installer script).
  2. Configure stream sources and access settings (TBD config file).
  3. Enable and start systemd services.
  4. Verify health endpoint and open the web UI.

Operational workflow (planned)

  • Start/stop streams via CLI or admin UI (TBD).
  • Verify playback in a supported browser.
  • Monitor active sessions and resource usage.
  • Rotate logs and manage disk usage.

Validation checklist

  • Playback latency meets operational targets (TBD target).
  • Streams are stable under expected load.
  • Auth controls block unauthorized access.

Failure modes and recovery

  • Signaling fails or peers cannot connect
    • Mitigation: verify signaling service, network ports, and firewall rules.
  • Stream drops under load
    • Mitigation: reduce bitrate, validate hardware, scale architecture (TBD).
  • UI fails to load
    • Mitigation: verify static assets and service health.

Security and privacy

  • Restrict access to authorized viewers (auth required).
  • Avoid exposing stream URLs publicly.
  • Document retention of any recorded content (TBD).

Change management

  • Version configs and deployment scripts.
  • Log architecture decisions in the decision log.
  • Maintain a simple rollback plan (previous build artifact).

Open items and next decisions

  • Choose streaming architecture (SFU vs P2P).
  • Define signaling service and auth flow.
  • Define install/uninstall workflow and packaging approach.
  • Establish baseline monitoring metrics.