Dawn Stream configuration

Root path: /Dawn Engine/DawnStream. Defaults ship in Gems/DawnStream/Registry/dawnstream.setreg.

Precedence

defaults < project setreg < CLI --dawnstream-*

Runtime console commands (e.g. ps_setBitrate) adjust a live session; they are not a full config layer. Streamer auth tokens are not CLI flags—use env vars (DAWNSTREAM_AUTH_TOKEN / Signaling.AuthTokenEnv).

TierWidth×HeightFPSTarget bitrateNotes
Demo (recommended)1280×72030~4000 kbpsFast iterate, stub or Route A
Production-oriented1920×108030~8000 kbpsNeeds real media + preferably hardware encode
setreg defaults1920×1080308000 (1000–20000)Ceiling; override for demos

Keep GopSeconds=-1 (on-demand keyframes only) unless you have a reason for periodic IDRs.

Example project setreg

{
 "Dawn Engine": {
 "DawnStream": {
 "Enabled": true,
 "Mode": "AlwaysStreaming",
 "Signaling": {
 "Url": "ws://127.0.0.1:8090",
 "StreamerId": "DawnStreamer",
 "MaxViewers": 1,
 "Embedded": false
 },
 "Video": {
 "Codec": "h264",
 "Width": 1280,
 "Height": 720,
 "TargetFps": 30,
 "TargetBitrateKbps": 4000,
 "MinBitrateKbps": 1000,
 "MaxBitrateKbps": 12000,
 "GpuColorConvert": true,
 "ZeroCopyCapture": false,
 "DegradationPreference": "MaintainFramerate"
 },
 "Network": {
 "StunServers": ["stun:stun.l.google.com:19302"]
 },
 "Input": {
 "AllowLocalInput": true,
 "ReleaseOnFocusLost": true
 }
 }
 }
}

Top-level

KeyDefaultCLIDescription
Enabledfalse--dawnstream-enabledMaster switch; false = zero behavior change
ModeOnDemand--dawnstream-modeDisabled / OnDemand / AlwaysStreaming

Signaling

KeyDefaultCLIDescription
Urlws://127.0.0.1:8090--dawnstream-signaling-urlSignaling WebSocket; embedded uses its port
StreamerIdDawnStreamer--dawnstream-streamer-idRegistered streamer name
AuthToken""Prefer empty; use env
AuthTokenEnvDAWNSTREAM_AUTH_TOKENEnv var when AuthToken empty
KeepAliveSecs30--dawnstream-keepalive-secsPing interval
ReconnectSecs2--dawnstream-reconnect-secsReconnect backoff base
MaxViewers1--dawnstream-max-viewersPer-streamer viewer cap
Embeddedfalse--dawnstream-embedded-signalingIn-process signaling
EnableQueuefalse--dawnstream-enable-queueQueue when full
MaxQueueLength0--dawnstream-max-queue-length0 = unlimited when queue on
MaxPlayerCount-1--dawnstream-max-player-countGlobal cap; -1 unlimited
AdminToken / AdminTokenEnv"" / DAWNSTREAM_ADMIN_TOKEN--dawnstream-admin-tokenAdmin permission
RestApi / RestApiTokenfalse / ""--dawnstream-rest-api / -rest-api-tokenEmbedded REST
ServeStatic / HttpRoot / Homepagefalse / "" / player.htmlmatching --dawnstream-*Embedded static host
Cors / CorsOriginsfalse / []--dawnstream-cors / -cors-originsCORS

Standalone Node flags are documented in Signaling—do not dual-configure one instance from both sides.

Video

KeyDefaultCLIDescription
Enabledtrue--dawnstream-videoVideo track
OfferToReceivefalse--dawnstream-offer-to-receiveStreamer creates offer
Codech264--dawnstream-codecPrimary codec
CodecPreferences[]--dawnstream-codec-preferencesNegotiation list
NegotiateCodecstrue--dawnstream-negotiate-codecsAllow negotiation
Width / Height1920 / 1080--dawnstream-width / -heightEncode ceiling
TargetFps / MaxFps30 / 0--dawnstream-fps / -max-fpsMaxFps=0 = no extra cap
TargetBitrateKbps8000--dawnstream-target-bitrateTarget bitrate
StartBitrateKbps0--dawnstream-start-bitrate0 = use target
MinBitrateKbps / MaxBitrateKbps1000 / 20000-min-bitrate / -max-bitrateClamp window
QualityPresetDefault--dawnstream-quality-presetEncoder preset
LatencyModeUltraLowLatency--dawnstream-latency-modeLatency profile
GopSeconds-1--dawnstream-gop-seconds-1/0 = on demand only
CapturePassHierarchyMainPipeline,CopyToSwapChain--dawnstream-capture-passFrameCapture path
CaptureSlotOutput--dawnstream-capture-slotAttachment slot
GpuColorConverttrue--dawnstream-gpu-color-convertGPU RGBA→I420
ZeroCopyCapturefalse--dawnstream-zero-copy-captureOff by default—see Building for real media
DynamicResolutionfalse--dawnstream-dynamic-resolutionAdaptive resolution
MatchViewportResolutionfalse--dawnstream-match-viewport-resolutionFollow viewport
ViewportResolutionScale1.0--dawnstream-viewport-resolution-scaleScale factor
DegradationPreferenceMaintainFramerate--dawnstream-degradation-preferenceCongestion policy
ScalabilityModeL1T1--dawnstream-scalability-modeSVC mode
EncoderGpuId-1--dawnstream-encoder-gpu-idGPU bind; -1 = default
EnableFlexFecfalse--dawnstream-flexfecFlexFEC
Hdrfalse--dawnstream-hdrExperimental HDR

Additional pacing / quality / intra-refresh keys exist in setreg (PacingFactor, EncoderQualityMin/Max, …) with matching --dawnstream-* CLI where listed in DawnStreamConfigLoader.cpp.

Audio

Default off.

KeyDefaultCLIDescription
Enabledfalse--dawnstream-audioEnable audio track
Codecopus--dawnstream-audio-codecAudio codec
SampleRate / Channels48000 / 2matching CLIFormat
Gain1.0--dawnstream-audio-gainGain
ForceMonofalse--dawnstream-audio-force-monoDownmix
SyncModeAvSync--dawnstream-audio-sync-modeAvSync / Independent

Network

KeyDefaultCLIDescription
StunServersGoogle STUN--dawnstream-stunICE STUN list
TurnServer""--dawnstream-turnTURN URL
TurnUsername / TurnPassword""-turn-username / -turn-passwordTURN creds
IcePortMin / IcePortMax0 / 0-ice-port-min / -max0 = OS default range

Input

KeyDefaultCLIDescription
AllowLocalInputtrue--dawnstream-allow-local-inputKeep local devices
ReleaseOnFocusLosttrue--dawnstream-release-on-focus-lostAnti stuck-key
ControlArbitrationFirstComeFirstServe--dawnstream-control-arbitrationMulti-viewer policy
AfkTimeoutSecs / AfkCountdownSecs0 / 10matching CLIAFK (0 timeout = off)
KeyFilterModeOff--dawnstream-key-filter-modeOff / allow / block
KeyAllowlist / KeyBlocklist[]matching CLIFilter lists
GamepadInput / TextInput / XrInputtruematching CLIFeature toggles

Diagnostics

KeyDefaultCLIDescription
LogStatsfalse--dawnstream-log-statsPeriodic log
LogStatsIntervalSecs10--dawnstream-log-stats-intervalLog period
StatOverlayfalse--dawnstream-stat-overlayImGui HUD
StatsCsvPath""--dawnstream-stats-csvCSV output path
StatsCsvIntervalSecs1--dawnstream-stats-csv-intervalCSV period

Editor

KeyDefaultDescription
StreamSourceLevelViewportLevelViewport or Editor (full window + Qt input)
StartOnLaunchfalseAuto-start streaming when Editor opens
UseRemoteSignalingfalsefalse → embedded signaling

Experimental

Treat as opt-in; not MVP defaults.

KeyDefaultCLIDescription
FileTransfer / FileUploadfalsematching CLIFile send/receive
FileUploadMimeAllowlist[]CLI listMIME allow
AllowConsoleCommandsfalse--dawnstream-allow-console-commandsRemote console (gated)
ConsoleCommandAllowlist[]CLI listAllowed commands
Simulcastfalse--dawnstream-simulcastSimulcast declare
UpstreamVideo / UpstreamAudiofalsematching CLIViewer → engine media
InputRecording / MediaRecordingfalsematching CLIRecord/replay features

Next steps


Copyright © 2026 DawnEngine. All rights reserved.

DawnEngine is a commercial 3D engine distributed under the DawnEngine end-user license agreement. Engine binaries and source are proprietary and are not covered by the licenses below.

Documentation only: the prose and templates on this site are a derivative work of Open 3D Engine (O3DE) documentation by the O3DE Contributors, used under CC BY 4.0 (documentation content), Apache 2.0 (site code), and the MIT license (inline code samples).

The open-source 3D engine that DawnEngine is built on top of is Open 3D Engine . DawnEngine is not affiliated with, endorsed by, or sponsored by The Linux Foundation or the O3DE project. “O3DE” and “Open 3D Engine” are trademarks of The Linux Foundation.