getstream ingress
Scope: app
Generate the signed ingress URL to stream into a call with ffmpeg, OBS,
etc. Protocol subcommands print the URL; add --obs to print copyable
values for the OBS stream settings instead.
The call is created if it doesn't exist, under --cid or --call-id, or
under a random id when neither is given. The specified --user becomes
the publisher. Without --ttl the signed URL never expires, so prefer
setting a shorter one.
Like every app-scoped command, ingress acts on the current project's
app unless --app-id or the STREAM_API_KEY and STREAM_API_SECRET
environment variables override it.
getstream ingress [flags]
getstream ingress [command]Examples
ffmpeg -re -i video.mp4 -c:v libx264 -c:a aac -f mpegts \
"$(getstream ingress srt --cid livestream:my-stream --user host --ttl 1h)"
getstream ingress rtmp --cid livestream:my-stream --user host --obsSubcommands
getstream ingress rtmp
Publish over RTMPS: works with nearly any streaming software.
getstream ingress rtmp [flags]Examples
ffmpeg -re -i video.mp4 -c:v libx264 -c:a aac -f flv "$(getstream ingress rtmp --cid livestream:my-stream --user host)"Flags
| Flag | Description |
|---|---|
--obs |
print copyable OBS stream settings |
getstream ingress srt
Publish over SRT: a modern alternative to RTMP with UDP transport, codec-agnostic support, and strong resilience to jitter and packet loss.
getstream ingress srt [flags]Examples
ffmpeg -re -i video.mp4 -c:v libx264 -c:a aac -f mpegts "$(getstream ingress srt --cid livestream:my-stream --user host)"Flags
| Flag | Description |
|---|---|
--obs |
print copyable OBS stream settings |
getstream ingress whip
Publish over WHIP: WebRTC straight to Stream's edge, with no transcoding cost. Requires OBS 32.1+, or FFmpeg 8+ built with the WHIP muxer.
Check if the WHIP muxer is available:
ffmpeg -h muxer=whipgetstream ingress whip [flags]Examples
ffmpeg -re -i video.mp4 -profile:v baseline -f whip "$(getstream ingress whip --cid livestream:my-stream --user host)"Flags
| Flag | Description |
|---|---|
--obs |
print copyable OBS stream settings |
Flags
| Flag | Description |
|---|---|
--app-id <int> |
id of the app to act on; defaults to the project's app |
--call-id <string> |
call id; a new call under a random id when omitted |
--call-type <string> |
call type (default "livestream") |
--cid <string> |
call as <type>:<id>, instead of --call-type and --call-id |
--ttl <string> |
signed URL lifetime (e.g. 30s, 5m, 2h, 1d); no expiration if omitted |
--user <string> |
publishing user (required) |
Global flags
| Flag | Description |
|---|---|
--verbose |
print API requests and full error details |