reference
RTMP / RTMPS: the query-string credential contract
RTMP is the maximum-compatibility ingest path. TRaX authenticates RTMP with
credentials in the URL query string: ?user= and ?pass=. Not a
/live/<key> path suffix, and not the URL's userinfo section.
Format
rtmp://<trax-media-host>:1935/<path>?user=<stream-key>&pass=<stream-key>
rtmps://<trax-media-host>:1936/<path>?user=<stream-key>&pass=<stream-key>
The stream key fills both parameters. The <path> is the input's stream path
(inputs/generic-input-<id> for an input created over /v1), the same grammar
as SRT and WHIP/WHEP. You
do not assemble this URL yourself: the complete field of the
ingest endpoint,
or the studio's Connection Information panel, hands it to you whole.
Hard rules
- Credentials go in the query string. The ingest server reads
userandpassfrom the query and nowhere else.rtmp://host/live/<key>does not authenticate.rtmp://<user>:<pass>@host/<path>(userinfo) does not authenticate either: the server reads an empty user and refuses the connect. Older TRaX material showed the userinfo form; it is dead. - Encoders with a split Server / Stream Key field. OBS, Streamlabs and vMix
publish to
<Server>/<Stream Key>, so split the URL at its last/: Serverrtmp://<host>:1935/inputs, Stream Keygeneric-input-<id>?user=<key>&pass=<key>. The query string travels with the key, which is where the server expects it. ffmpeg and other single-URL encoders take the whole URL as-is. - RTMPS for anything you would not say out loud. Plain RTMP (1935) is unencrypted; the key is visible on the wire. Prefer RTMPS (1936) or SRT.
- The key does not expire. Authentication happens at connect time and the stream key is static for the life of the input, so an encoder's auto-reconnect can redial the same URL indefinitely. Revocation is rotating the key (once that endpoint is live) or deleting the input.
Failure modes
| Symptom | Likely cause |
|---|---|
| Connection refused / auth error at connect | Credentials in userinfo or the path instead of the query string; a mangled or revoked key |
| Auth OK but stream not visible | Wrong <path>: authenticated to an input that is not the one you think |
| Works in ffmpeg, refused from OBS | The split is wrong. The query string must be on the Stream Key side of the /, and Server must end at /inputs |