Skip to content

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 --obs

Subcommands

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=whip
getstream 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