本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Kinesis 视频直播限制
Kinesis 视频直播有以下限制:
重要
以下限制要么是软限制[s],可以通过提交支持票进行升级,也可以硬升级[h],无法增加。您将在下表中的单个限制旁边看到 [s] 和 [h]。
控制平面 API 限制
下一节介绍控制平面 API 的限制。TPS 代表每秒交易数。
当达到账户级或资源级请求限制时,ClientLimitExceededException
被抛出来了。
控制平面 API 限制 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
API | 账户限额:申请 | 账户限制:直播 | 流级别限制 | 相关例外情况和注意事项 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
CreateStream | 50 TPS [s] | 在美国东部(弗吉尼亚北部)和美国西部(俄勒冈)区域,每个账户 10000 个直播。在所有其他支持的区域中,每个账户 5000 个直播。注意可将此限制提高至每个账户 100,000 个(或更多个)流。通过以下网址登录 Amazon Web Services Management Console:https://console.amazonaws.cn/ |
设备、CLI、SDK 驱动的访问和控制台均可调用此 API。如果流尚不存在,则只有一个 API 调用会成功。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
DeleteEdgeConfiguration | 10 TPS [h] | 不适用 | 1 TPS [h] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
DeleteStream | 50 TPS [h] | 不适用 | 5 TPS [h] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
DescribeEdgeConfiguration | 50 TPS [h] | 不适用 | 5 TPS [h] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
DescribeImageGenerationConfiguration | 50 TPS [h] | 不适用 | 5 TPS [h] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
DescribeNotificationConfiguration | 50 TPS [h] | 不适用 | 5 TPS [h] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
DescribeStream | 300 TPS [h] | 不适用 | 5 TPS [h] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GetDataEndpoint | 300 TPS [h] | 不适用 | 5 TPS [h] | 每 45 分钟调用一次,旨在刷新大多数 PutMedia /GetMedia 使用案例的流令牌。如果应用程序在失败时重新加载缓存数据终端节点,那么这些终端节点是安全的。 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ListEdgeAgentConfigurations | 50 TPS [h] | 不适用 | 不适用 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ListStreams | 50 TPS [h] | 不适用 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ListTagsForStream | 50 TPS [h] | 不适用 | 5 TPS [h] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
StartEdgeConfigurationUpdate | 10 TPS [h] | 不适用 | 1 TPS [h] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
TagStream | 50 TPS [h] | 不适用 | 5 TPS [h] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
UntagStream | 50 TPS [h] | 不适用 | 5 TPS [h] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
UpdateDataRetention | 50 TPS [h] | 不适用 | 5 TPS [h] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
UpdateImageGenerationConfiguration | 50 TPS [h] | 不适用 | 5 TPS [h] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
UpdateNotificationConfiguration | 50 TPS [h] | 不适用 | 5 TPS [h] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
UpdateStream | 50 TPS [h] | 不适用 | 5 TPS [h] |
媒体和存档媒体 API 限制
以下部分介绍媒体和存档媒体 API 的限制。
当达到账户级或资源级请求限制时,ClientLimitExceededException
被抛出来了。
达到连接级别限制时,会引发 ConnectionLimitExceededException
。
达到片段级别限制时,会引发以下错误或确认:
-
为低于最低持续时间的片段返回
MIN_FRAGMENT_DURATION_REACHED
确认。 -
会为高于最高持续时间的片段返回
MAX_FRAGMENT_DURATION_REACHED
确认。 -
会为高于最大数据大小的片段返回
MAX_FRAGMENT_SIZE
确认。 -
如果在
GetMediaForFragmentList
操作中达到片段限制,则会引发FragmentLimitExceeded
异常。
数据平面 API 限制 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
API | 流级别限制 | 连接级别限制 | 带宽限制 | 片段级别限制 | 相关例外情况和注意事项 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PutMedia | 5 TPS [h] | 1 [s] | 12.5 MB/秒或 100 Mbps [s] |
|
典型 PutMedia 请求包含几秒钟的数据,因而导致每个流较低的 TPS。如果有多个超出限制的并发连接,则接受最后一个连接。 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
getHLSStreamingSession网址 | 25 TPS [h] | 不适用 | 不适用 | 不适用 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GetDashStreamingSession网址 | 25 TPS [h] | 不适用 | 不适用 | 不适用 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GetMedia | 5 TPS [h] | 3 [s] | 25 MB/秒或 200 Mbps [s] | 每秒最多发送 5 个片段 [h] | 一个独特的消费客户端需要的 TPS 不应超过两三个,因为建立连接后,应用程序应持续读取。 如果典型片段约为 5 MB,则此限制意味着每个 Kinesis 视频流约为 75 Mbps。此类流将具有流的最大传入比特率 2 倍的传出比特率。 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GetMediaForFragmentList | 不适用 | 5 [s] | 25 MB/秒或 200 Mbps [s] | 最大片段数:1000 [h] | 五个基于片段的消费应用程序可以同时调用GetMediaForFragmentList 。后续连接将被拒绝。 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GetClip | 不适用 | 不适用 | 100 MB 大小限制 [h] | 最大片段数:200 [h] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GetImages | 不适用 | 不适用 | 100 MB [h] | 不适用 | 每个请求的最大图像数为 100 [h]。 注意的最小值 |
视频播放协议 API 限制 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
API | 会话级别限制 | 片段级别限制 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GetDashManifestPlaylist | 5 TPS [h] | 每个播放列表的最大片段数:5000 [h] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
getHLSMasterPlaylist | 5 TPS [h] | 不适用 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
getHLSMediaPlaylist | 5 TPS [h] | 每个播放列表的最大片段数:5000 [h] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
获取 MP4InitFragment | 5 TPS [h] | 不适用 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
获取 MP4MediaFragment | 20 TPS [h] | 不适用 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GetTSFragment | 20 TPS [h] | 不适用 |
片段元数据和片段媒体配额
Kinesis 视频直播用于访问存档媒体的 API根据请求的片段数量而不是 API 调用次数进行限制。API 受片段元数据数量和请求的片段媒体数量的速率限制。片段元数据和片段媒体配额适用于每个流。换句话说,对一个流中的片段元数据或媒体的请求不适用于另一个流的配额。但是,在给定流中,每个配额在多个 API 之间共享。这意味着,对于给定的流,来自不同 API 的片段请求会消耗相同的配额。当超过流的片段元数据或片段媒体配额时,API 会返回ClientLimitExceededException
。下表显示了 API 是如何使用这两种类型的配额的。对于这些表中的第二列,假设如果一个流的配额为 N,则意味着 API 在该流的配额类型中有 N 个积分可供消耗。这个GetClip
API 出现在两个表中。
片段元数据配额消耗 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
API | 每次请求消耗的配额积分数 | 共享配额 (N) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ListFragments |
的价值MaxResults 参数 |
每个直播每秒 10000 个配额积分 [h] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GetClip |
生成的片段中的片段数 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GetHLSMediaPlaylist |
的价值MaxMediaPlaylistFragmentResults 参数 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GetDASHManifest |
的价值MaxManifestFragmentResults 参数 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GetImages |
值为 400 + 请求的最大图像数 |
片段媒体配额消耗 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
API | 每次请求消耗的配额积分数 | 共享配额 (N) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GetMediaForFragmentList |
片段参数中的片段数 | 每个直播每秒 500 个配额积分 [h] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GetClip |
生成的片段中的片段数 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GetMP4MediaFragment |
1 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GetTSFragment
|
1 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GetImages
|
请求的最大图像数 |
例如,如果配额为每秒 500 个片段媒体,则支持特定流的以下调用模式:
-
每秒 5 个请求发送到
GetClip
每个片段有 100 个片段。 -
每秒 100 个请求发送到
GetClip
每个片段有 5 个片段。 每秒 2 个请求发送到
GetClip
每个片段有 100 个片段每秒 3 个请求GetMediaForFragmentList
在每个片段中。每秒 400 个请求发送到
GetMP4MediaFragment
并且每秒 100 个请求发送到GetTSFragment
。
这些配额对每个直播可以支持的 HLS 和 MPEG-DASH 会话数量有重要影响。媒体播放器在给定时间可以使用的 HLS 和 DASH 会话数量没有限制。因此,重要的是播放应用程序不允许同时使用过多的会话。以下两个示例描述了如何确定可以支持的并发播放会话的数量:
示例 1:直播
在直播场景中,HLS 带有 1 秒时长片段、音频和视频轨道,以及MaxMediaPlaylistFragmentResults
设置为五,媒体播放器通常会拨打两次电话GetHLSMediaPlaylist
每秒。一次电话是为了获取最新的视频元数据,另一次是针对相应的音频元数据。这两个调用各消耗五个片段元数据配额点。它还打了两次电话GetMP4MediaFragment
每秒:一次呼叫获取最新视频,另一次呼叫相应音频。每次调用都消耗一个片段媒体令牌,因此总共消耗两个令牌。
在这种情况下,最多可支持 250 个并发播放会话。在 250 个会话中,此场景每秒消耗 2,500 个片段元数据配额点(远低于 10,000 个配额),每秒消耗 500 个片段媒体配额点。
示例 2:点播播放
在使用 MPEG-DASH 对过去事件的点播播放场景中,音频和视频曲目以及MaxManifestFragmentResults
设置为 1,000,媒体播放器通常会呼叫GetDASHManifest
在会话开始时一次(消耗 1,000 个片段元数据配额点)然后调用GetMP4MediaFragment
以每秒 5 次的速率(消耗 5 个片段媒体配额点),直到加载完所有分段。在这种情况下,每秒最多可以启动 10 个新会话(正好是每秒 10,000 个片段元数据配额),最多可以有 100 个会话以每秒 5 的速率主动加载片段媒体(正好是每秒 500 个片段媒体的配额)。
你可以使用ArchivedFragmentsConsumed.Metadata
和ArchivedFragmentsConsumed.Media
分别监控片段元数据和片段媒体配额点的消耗情况。有关监控的信息,请参见监控亚马逊 Kinesis 视频直播。