guides

Quickstart: push a feed to TRaX with OBS or ffmpeg

Ten minutes from credentials to a live feed. You need three things from your TRaX provisioning (see Getting started — access is operator-provisioned today):

  1. The media host (<trax-media-host> below)
  2. Your input path, e.g. inputs/srt-3f2a… (see Stream paths)
  3. A credential — a session JWT or a stream key (see Authentication)

ffmpeg

ffmpeg -re -i input.mp4 -c:v libx264 -preset veryfast -b:v 4M \
  -c:a aac -b:a 160k -f mpegts \
  "srt://<trax-media-host>:8890?streamid=publish:<path>:trax:<jwt>"

With a stream key, the streamid is publish:<path>:<key>:<key> instead.

OBS

  1. Settings → Stream → Service: Custom…
  2. Server: srt://<trax-media-host>:8890?streamid=publish:<path>:trax:<jwt>
  3. Stream Key: leave empty (everything rides in the streamid)

Do not URL-encode the streamid, and keep it under 512 bytes — see the SRT contract for the failure modes.

Option B — RTMP

ffmpeg

ffmpeg -re -i input.mp4 -c:v libx264 -preset veryfast -b:v 4M \
  -c:a aac -b:a 160k -f flv \
  "rtmp://trax:<jwt>@<trax-media-host>:1935/<path>"

OBS

  1. Settings → Stream → Service: Custom…
  2. Server: rtmp://trax:<jwt>@<trax-media-host>:1935/<path>
  3. Stream Key: leave empty

Credentials ride in the URL userinfo — not in a /live/<key> path. See the RTMP contract.

Verify it's flowing

Pull your own feed back with WHEP (reference) or ask the studio operator to confirm the input tile went live. A healthy SRT contribution holds a stable round-trip and no reconnect churn; if the sender dies within the first second, check the streamid rules first.

Setting Value
Video codec H.264, high profile
Keyframe interval 2 s
Rate control CBR, 4–8 Mbps for 1080p60
Audio AAC 160 kbps, 48 kHz stereo