Dawn Stream reference
Compact lookup. Prefer topic chapters for procedures.
Console commands (cheat sheet)
ps_startStreaming, ps_stopStreaming, ps_dumpStats, ps_setBitrate, ps_forceKeyframe, ps_disconnectViewer, ps_statOverlay, ps_setInputOwner, ps_registerAppData, ps_sendAppData, ps_recordInput, ps_stopRecord, ps_replayInput, ps_stopReplay, ps_recordMedia, ps_stopMedia.
Details: Diagnostics.
Essential CLI (cheat sheet)
--dawnstream-enabled
--dawnstream-mode <Disabled|OnDemand|AlwaysStreaming>
--dawnstream-signaling-url <ws://…>
--dawnstream-streamer-id <id>
--dawnstream-embedded-signaling
--dawnstream-max-viewers <n>
--dawnstream-width / --dawnstream-height / --dawnstream-fps
--dawnstream-target-bitrate / --dawnstream-min-bitrate / --dawnstream-max-bitrate
--dawnstream-codec <h264|…>
--dawnstream-gpu-color-convert / --dawnstream-zero-copy-capture
--dawnstream-stun / --dawnstream-turn / --dawnstream-turn-username / --dawnstream-turn-password
--dawnstream-ice-port-min / --dawnstream-ice-port-max
--dawnstream-log-stats / --dawnstream-stats-csv <path>
--dawnstream-audio
Full tables:
Configuration. Auth: env DAWNSTREAM_AUTH_TOKEN, PS_STREAMER_TOKEN, PS_VIEWER_TOKEN—not streamer secret CLI.
Essential setreg keys
Root: /Dawn Engine/DawnStream
- Top:
Enabled,Mode Signaling.*:Url,StreamerId,Embedded,MaxViewers,AuthTokenEnv, …Video.*: size, fps, bitrate window,GopSeconds, capture hierarchy,ZeroCopyCapture, …Network.*: STUN/TURN, ICE portsInput.*: local input, filters, arbitrationDiagnostics.*: log / CSV / overlayEditor.*:StartOnLaunch,StreamSource,UseRemoteSignalingExperimental.*: uplink, recording, file transfer, remote console
Defaults file: Gems/DawnStream/Registry/dawnstream.setreg.
Public API (user-facing summary)
Headers under Gems/DawnStream/Code/Include/DawnStream/:
| Surface | Role |
|---|---|
IDawnStreamSystem | C++ AZ::Interface facade |
DawnStreamRequestBus | Script / EBus mirror (Behavior category DawnStream) |
DawnStreamNotificationBus | Main-thread notifications |
Requests (common): StartStreaming / StopStreaming, GetStatus / GetViewerCount, SetTargetBitrateKbps, RequestKeyframe, DisconnectViewer, FreezeFrame / UnfreezeFrame, RegisterAppMessage / SendAppMessage / SendAppResponse, RegisterAppData / SendAppData, SetCursor / SetCursorImage, ShowOnScreenKeyboard, SendGamepadHaptic, GrantInputControl / RevokeInputControl, input/media recording helpers.
C++-only extensions (not fully script-reflected): custom audio source, external frame source, external input sink, upstream watch APIs—see IDawnStreamSystem.h.
Notifications (common): streaming started/stopped, status changed, viewer connected/disconnected, input owner changed, app message/data, file received, freeze-frame changed, data channel open/close, signaling connected/disconnected, text input, gamepad/XR events, recording lifecycle.
Everyday streaming needs no entity components. Optional: DawnStreamVideoComponent for upstream display.
CMake media gates
| Gate | Purpose |
|---|---|
LY_DAWNSTREAM_LIBWEBRTC_ENABLED + package path | Route A wrapper |
LY_DAWNSTREAM_WEBRTC_NATIVE_ENABLED + package path | Route B native |
LY_DAWNSTREAM_NVENC_ENABLED | Hardware H.264 / zero-copy prerequisite |
Pick order at runtime: native > wrapper > stub.
Limits — rely on / do not assume
You can rely on:
- Optional gem; single-streamer / single-viewer video + mouse/keyboard when media gates are on;
- setreg + CLI +
ps_*diagnostics; standalone or embedded signaling; STUN/TURN entry points; - Route A software encode demos; Route B hardware encode when built correctly;
- Bitrate feedback, on-demand keyframes, input ownership and
ReleaseAllon disconnect.
Do not assume:
- Real video without CMake media gates;
- Streaming enabled by default;
- Zero-copy safe for unbounded reconnect loops;
- Dawn Stream replaces Multiplayer state sync;
- Multi-viewer arbitration, SFU, full cloud orchestration, HDR/XR as default deliverables.
Related docs
| Doc | Contents |
|---|---|
| Getting started | Local loop |
| Building for real media | Routes A/B |
| Signaling | Hub and tokens |
| Browser and input | Player and Input Owner |
| Configuration | Full key tables |
| Diagnostics | Stats and troubleshooting |
| Deployment | Production checklist |
Gems/DawnStream/README.md | Gem quick start |
Gems/DawnStream/Tools/*/README.md | E2E / weak-network / soak |