Amazon Kinesis Video Streams endpoints and quotas - AWS General Reference

Amazon Kinesis Video Streams endpoints and quotas

The following are the service endpoints and service quotas for this service. To connect programmatically to an AWS service, you use an endpoint. In addition to the standard AWS endpoints, some AWS services offer FIPS endpoints in selected Regions. For more information, see AWS service endpoints. Service quotas, also referred to as limits, are the maximum number of service resources or operations for your AWS account. For more information, see AWS service quotas.

Service Endpoints

Region Name Region Endpoint Protocol
US East (Ohio) us-east-2 kinesisvideo.us-east-2.amazonaws.com HTTPS
US East (N. Virginia) us-east-1 kinesisvideo.us-east-1.amazonaws.com HTTPS
US West (Oregon) us-west-2 kinesisvideo.us-west-2.amazonaws.com HTTPS
Asia Pacific (Hong Kong) ap-east-1 kinesisvideo.ap-east-1.amazonaws.com HTTPS
Asia Pacific (Mumbai) ap-south-1 kinesisvideo.ap-south-1.amazonaws.com HTTPS
Asia Pacific (Seoul) ap-northeast-2 kinesisvideo.ap-northeast-2.amazonaws.com HTTPS
Asia Pacific (Singapore) ap-southeast-1 kinesisvideo.ap-southeast-1.amazonaws.com HTTPS
Asia Pacific (Sydney) ap-southeast-2 kinesisvideo.ap-southeast-2.amazonaws.com HTTPS
Asia Pacific (Tokyo) ap-northeast-1 kinesisvideo.ap-northeast-1.amazonaws.com HTTPS
Canada (Central) ca-central-1 kinesisvideo.ca-central-1.amazonaws.com HTTPS
Europe (Frankfurt) eu-central-1 kinesisvideo.eu-central-1.amazonaws.com HTTPS
Europe (Ireland) eu-west-1 kinesisvideo.eu-west-1.amazonaws.com HTTPS
Europe (London) eu-west-2 kinesisvideo.eu-west-2.amazonaws.com HTTPS
Europe (Paris) eu-west-3 kinesisvideo.eu-west-3.amazonaws.com HTTPS
South America (São Paulo) sa-east-1 kinesisvideo.sa-east-1.amazonaws.com HTTPS

Service Quotas

The quotas below are either soft [s], which can be upgraded by submitting a support ticket, or hard [h], which cannot be increased.

Control Plane API Quotas

The following section describes quotas for Control Plane APIs.

When an account-level Request quota is reached, a ClientLimitExceededException is thrown.

When an account-level Streams quota is reached, or a stream-level quota is reached, a StreamLimitExceededException is thrown.

Control Plane API quotas
API Account Quota: Request Account Quota: Streams Stream-level quota Relevant Exceptions and Notes
CreateStream 50 TPS [s] 2500 streams per account [s] in US East (N. Virginia) and US West (Oregon) regions. 1000 streams per account [s] in all other supported regions.
Note

This quota can be increased up to 100,000 (or more) streams per account [s]. Sign in to the AWS Management Console at https://console.aws.amazon.com/ and submit a service quota increase case for Kinesis Video Streams to request an increase of this limit.

Devices, CLIs, SDK-driven access, and the console can all invoke this API. Only one API call succeeds if the stream doesn’t already exist.
DescribeStream 300 TPS [h] N/A 5 TPS [h]
UpdateStream 50 TPS [h] N/A 5 TPS [h]
ListStreams 50 TPS [h] N/A
DeleteStream 50 TPS [h] N/A 5 TPS [h]
GetDataEndpoint 300 TPS [h] N/A 5 TPS [h] Called every 45 minutes to refresh the streaming token for most PutMedia/GetMedia use cases. Caching data endpoints is safe if the application reloads them on failure.
UpdateDataRetention 50 TPS [h] N/A 5 TPS [h]
TagStream 50 TPS [h] N/A 5 TPS [h]
UntagStream 50 TPS [h] N/A 5 TPS [h]
ListTagsForStream 50 TPS [h] N/A 5 TPS [h]

Media and Archived Media API Quotas

The following section describes quotas for Media and Archived Media APIs.

When a stream-level quota is exceeded, a StreamLimitExceededException is thrown.

When a connection-level quota is reached, a ConnectionLimitExceededException is thrown.

The following errors or acks are thrown when a fragment-level quota is reached:

  • A MIN_FRAGMENT_DURATION_REACHED ack is returned for a fragment below the minimum duration.

  • A MAX_FRAGMENT_DURATION_REACHED ack is returned for a fragment above the maximum duration.

  • A MAX_FRAGMENT_SIZE ack is returned for a fragment above the maximum data size.

  • A FragmentLimitExceeded exception is thrown if a fragment quota is reached in a GetMediaForFragmentList operation.

Data Plane API quotas
API Stream-level quota Connection-level quota Bandwidth quota Fragment-level quota Relevant Exceptions and Notes
PutMedia 5 TPS [h] 1 [s] 12.5 MB/second, or 100 Mbps [s]
  • Minimum fragment duration: 1 second [h]

  • Maximum fragment duration: 10 seconds [h]

  • Maximum fragment size: 50 MB [h]

  • Maximum number of tracks: 3 [s]

A typical PutMedia request contains data for several seconds, resulting in a lower TPS per stream. In the case of multiple concurrent connections that exceed quotas, the last connection is accepted.
GetHLSStreamingSessionURL 5 TPS Burst, 1 TPS Sustained [h] N/A N/A N/A Only 10 sessions per stream can be active at a time [s]. After the quota has been reached, the oldest session is revoked when a new session is created.
GetDASHStreamingSessionURL 5 TPS Burst, 1 TPS Sustained [h] N/A N/A N/A Only 10 sessions per stream can be active at a time [s]. After the quota has been reached, the oldest session is revoked when a new session is created.
GetMedia 5 TPS [h] 3 [s] 25 MB/s or 200 Mbps [s] N/A

Only three clients can concurrently receive content from the media stream at any moment of time. Further client connections are rejected. A unique consuming client shouldn’t need more than 2 or 3 TPS because after the connection is established, we anticipate that the application will read continuously.

If a typical fragment is approximately 5 MB, this quota means ~75 MB/ sec per Kinesis video stream. Such a stream would have an outgoing bitrate of 2x the streams' maximum incoming bitrate.

ListFragments 5 TPS [h] N/A N/A N/A
GetMediaForFragmentList 5 TPS [h] 5 [s] 25 MB/s or 200 MbpsA [s] Maximum number of fragments: 1000 [h] Five fragment-based consuming applications can concurrently get media. Further connections are rejected.
Video Playback Protocol API quotas
API Session-level quota Fragment-level quota
GetDASHManifestPlaylist 5 TPS [h] Maximum number of fragments per playlist: 1000 [h]
GetHLSMasterPlaylist 5 TPS [h] N/A
GetHLSMediaPlaylist 5 TPS [h] Maximum number of fragments per playlist: 1000 [h]
GetMP4InitFragment 5 TPS [h] N/A
GetMP4MediaFragment 10 TPS [h] N/A
GetTSFragment 10 TPS [h] N/A

Kinesis Video Streams with WebRTC Control Plane API Quotas

The following section describes service quotas for the control plane APIs.

Control Plane API Service Quotas
API Account service quota: Request Account service quota: Channels Channel-level service quota Relevant Exceptions and Notes
CreateSignalingChannel 50 TPS [s] 10000 signaling channels per account [s] per region, in all other supported regions.
DescribeSignalingChannel 300 TPS [h] N/A 5 TPS [h]
UpdateSignalingChannel 50 TPS [h] N/A 5 TPS [h]
ListSignalingChannels 50 TPS [h] N/A
DeleteStream 50 TPS [h] N/A 5 TPS [h]
GetSignalingChannelEndpoint 300 TPS [h] N/A
TagResource 50 TPS [h] N/A 5 TPS [h]
UntagResource 50 TPS [h] N/A 5 TPS [h]
ListTagsForResource 50 TPS [h] N/A 5 TPS [h]

Kinesis Video Streams with WebRTC Signaling API Service Quotas

The following section describes service quotas for the signaling component in Kinesis Video Streams with WebRTC.

  • ConnectAsMaster

    • API - 3 TPS per channel (hard)

    • Maximum number of master connections per signaling channel - 1 (hard)

    • Connection duration limit - 1 hour (hard)

    • Idle connection timeout - 10 minutes (hard)

    • When a client receives the GO_AWAY message from the server, connection is terminated after a grace period of 1 minute (hard)

  • ConnectAsViewer

    • API - 3 TPS per channel (hard)

    • Maximum number of viewer connections per channel - 10 (soft)

    • Connection duration limit - 1 hour (hard)

    • Idle connection timeout - 10 minutes (hard)

    • Once a client receives the GO_AWAY message from the server, connection is terminated after a grace period of 1 minute (hard)

  • SendSDPOffer

    • API: 5 TPS per WebSocket connection (hard)

    • Message payload size limit - 10k (hard)

  • SendSDPAnswer

    • API: 5 TPS per WebSocket connection (hard)

    • Message payload size limit - 10k (hard)

  • SendICECandidate

    • API: 20 TPS per WebSocket connection (hard)

    • Message payload size limit - 10k (hard)

  • SendAlexaOffertoMaster

    • API: 5 TPS per signaling channel (hard)

  • GetIceServerConfig

    • API: 5 TPS per signaling channel (hard)

  • Disconnect

    • N/A

Kinesis Video Streams with WebRTC TURN Service Quotas

The following section describes service quotas for the Traversal Using Relays around NAT (TURN) component in Kinesis Video Streams with WebRTC.

  • Bit Rate - 5Mbps (hard)

  • Credential Lifecycle - 5 minutes (hard)

  • Number of allocations - 50 per signaling channel (hard)