IVS Stream Ingest | Real-Time Streaming - Amazon IVS

IVS Stream Ingest | Real-Time Streaming

As an alternative to using the IVS broadcast SDK, you can publish video to an IVS stage from a WHIP or RTMP source. This approach offers flexibility for workflows where using the SDK is not feasible or preferred, such as when publishing video from OBS Studio or a hardware encoder. Whenever possible, we recommend using the IVS broadcast SDK, as we cannot guarantee the performance or compatibility of third-party solutions with IVS.

This diagram illustrates how publishing with WHIP and RTMP works:

Publishing with WHIP and RTMP.

Supported Protocols

IVS real-time streaming supports several ingest protocols:

  • RTMP (Real-Time Messaging Protocol) — An industry standard for transmitting video over a network.

  • RTMPS — The secure version of RTMP that operates over TLS.

  • WHIP (WebRTC-HTTP Ingestion Protocol) — An IETF draft developed to standardize WebRTC ingestion.

RTMP generally has higher latency than WHIP, making it ideal for one-to-many live streams. For detailed guidance on using these protocols, see our RTMP and WHIP documentation.

Supported Media Specifications

  • Audio input format

    • Codec: AAC-LC for RTMP and Opus for WHIP

    • Channels: 2 (Stereo) or 1 (Mono)

    • Sample rate: 44.1 kHz or 48 kHz

    • Maximum bitrate: 160 Kbps

  • Video input format

    • Codec: H.264

    • H.264 profile: Baseline

    • IDR interval: 1 or 2 seconds

    • Frame rate: 10 to 60 FPS

    • B-frames: 0

      Note: The IVS broadcast SDK has B-frames enabled by default when using RTMP. Therefore, developers must disable B-frames: on iOS, use the usesBFrames method; on Android, setUseBFrames. If developers do not disable B-Frames, their streams will be disconnected.

    • Resolution: Maximum: 720p. Minimum: 160p

    • Maximum bitrate: 8.5 Mbps

    • Encoder configuration: We recommend using veryfast and zerolatency settings for an H.264 encoder. Also: the sliced_threads x264 option is included in the zerolatency presets, and we recommend that you disable it. For example, when using FFmpeg, your command should include: -preset:v veryfast -tune zerolatency -x264-params sliced-threads=0