

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# GetClip
<a name="API_reader_GetClip"></a>

在指定时间范围内从指定视频流中下载包含已存档的点播媒体的 MP4 文件（片段）。

 StreamName 和 StreamArn 参数都是可选的，但在调用此 API 操作时，必须指定 StreamName 或 StreamArn。

**注意**  
您必须先调用 `GetDataEndpoint` API 才能获取终端节点。然后使用 [--endpoint-url 参数将`GetClip`请求发送到此端点](https://docs.amazonaws.cn/cli/latest/reference/)。

Amazon Kinesis 视频流通过以下方式提供数据需要满足以下要求： MP4
+  [视频播放曲目要求](https://docs.amazonaws.cn/kinesisvideostreams/latest/dg/video-playback-requirements.html)。
+ 数据保留必须大于 0。
+ 对于 H.264 格式的高级视频编码 (AVC) 和 H.265 格式的 HEVC，各个片段的视频轨道必须包含编解码器专用数据。有关更多信息，请参阅 [MPEG-4 规范 ISO/IEC 14496-15](https://www.iso.org/standard/55980.html)。有关使流数据适应给定格式的信息，请参阅 [NAL 适应标志](https://docs.amazonaws.cn/kinesisvideostreams/latest/dg/producer-reference-nal.html)。
+ [每个片段的音轨（如果存在）必须包含 AAC 格式（A [AC 规范 ISO/IEC 13818-7](https://www.iso.org/standard/43345.html)）或 MS Wave 格式的编解码器私有数据。](https://www.mmsp.ece.mcgill.ca/Documents/AudioFormats/WAVE/WAVE.html)

您可以通过监控 `GetClip.OutgoingBytes` Amazon CloudWatch 指标来监控传出的数据量。有关使用 CloudWatch 监控 Kinesis Video Streams 的信息，[请参阅监控 Kinesis](https://docs.amazonaws.cn/kinesisvideostreams/latest/dg/monitoring.html) 视频流。有关定价信息，请参阅 [Amazon Kinesis Video Stream](https://www.amazonaws.cn/kinesis/video-streams/pricing/) s 定价[Amazon 和定价。](https://www.amazonaws.cn/pricing/)传出 Amazon 数据需收费。

**重要**  
每个片段中包含的编解码器私有数据 (CPD) 包含特定于编解码器的初始化信息，例如帧速率、分辨率和编码配置文件，这些信息是正确解码片段所必需的。不支持在生成的片段的目标片段之间更改 CPD。通过查询的媒体，CPD 必须保持一致，否则将返回错误。

**重要**  
不支持追踪更改。在所查询的媒体中，曲目必须保持一致。如果流中的片段从只有视频变为同时包含音频和视频，或者将 AAC 音轨更改为 A-Law 音轨，则会返回错误。

## 请求语法
<a name="API_reader_GetClip_RequestSyntax"></a>

```
POST /getClip HTTP/1.1
Content-type: application/json

{
   "ClipFragmentSelector": { 
      "FragmentSelectorType": "{{string}}",
      "TimestampRange": { 
         "EndTimestamp": {{number}},
         "StartTimestamp": {{number}}
      }
   },
   "StreamARN": "{{string}}",
   "StreamName": "{{string}}"
}
```

## URI 请求参数
<a name="API_reader_GetClip_RequestParameters"></a>

该请求不使用任何 URI 参数。

## 请求正文
<a name="API_reader_GetClip_RequestBody"></a>

请求接受采用 JSON 格式的以下数据。

 ** [ClipFragmentSelector](#API_reader_GetClip_RequestSyntax) **   <a name="KinesisVideo-reader_GetClip-request-ClipFragmentSelector"></a>
请求的片段的时间范围和时间戳的来源。  
类型：[ClipFragmentSelector](API_reader_ClipFragmentSelector.md) 对象  
是否必需：是

 ** [StreamARN](#API_reader_GetClip_RequestSyntax) **   <a name="KinesisVideo-reader_GetClip-request-StreamARN"></a>
要检索媒体片段的直播的 Amazon 资源名称 (ARN)。  
您必须指定或 StreamArn。 StreamName   
类型：字符串  
长度限制：最小长度为 1。长度上限为 1024。  
模式：`arn:[a-z\d-]+:kinesisvideo:[a-z0-9-]+:[0-9]+:[a-z]+/[a-zA-Z0-9_.-]+/[0-9]+`  
必需：否

 ** [StreamName](#API_reader_GetClip_RequestSyntax) **   <a name="KinesisVideo-reader_GetClip-request-StreamName"></a>
要为其检索媒体片段的直播的名称。  
您必须指定或 StreamArn。 StreamName   
类型：字符串  
长度限制：最小长度为 1。最大长度为 256。  
模式：`[a-zA-Z0-9_.-]+`  
必需：否

## 响应语法
<a name="API_reader_GetClip_ResponseSyntax"></a>

```
HTTP/1.1 200
Content-Type: {{ContentType}}

{{Payload}}
```

## 响应元素
<a name="API_reader_GetClip_ResponseElements"></a>

如果此操作成功，则该服务将会发送回 HTTP 200 响应。

响应将返回以下 HTTP 标头。

 ** [ContentType](#API_reader_GetClip_ResponseSyntax) **   <a name="KinesisVideo-reader_GetClip-response-ContentType"></a>
请求的片段中媒体的内容类型。  
长度限制：最小长度为 1。最大长度为 128。  
模式：`^[a-zA-Z0-9_\.\-]+$`

响应将以下内容作为 HTTP 正文返回。

 ** [Payload](#API_reader_GetClip_ResponseSyntax) **   <a name="KinesisVideo-reader_GetClip-response-Payload"></a>
包含来自指定视频流的媒体片段的传统 MP4 文件。输出将包含指定开始时间戳的前 100 MB 或前 200 个片段。有关更多信息，请参阅 [Kinesis Video Streams](https://docs.amazonaws.cn/kinesisvideostreams/latest/dg/limits.html) 配额。

## 错误
<a name="API_reader_GetClip_Errors"></a>

有关所有操作的常见错误的信息，请参阅[常见错误类型](CommonErrors.md)。

 ** ClientLimitExceededException **   
Kinesis Video Streams 已限制该请求，因为你已经超过了限制。稍后再尝试拨打电话。有关限制的信息，请参阅 [Kinesis Video Streams](https://docs.amazonaws.cn/kinesisvideostreams/latest/dg/limits.html) 配额。  
HTTP 状态代码：400

 ** InvalidArgumentException **   
指定参数超出其限制、不受支持或无法使用。  
HTTP 状态代码：400

 ** InvalidCodecPrivateDataException **   
视频流中至少一条轨道中的编解码器私有数据对此操作无效。  
HTTP 状态代码：400

 ** InvalidMediaFrameException **   
无法根据指定的编解码器解析请求片段中的一个或多个帧。  
HTTP 状态代码：400

 ** MissingCodecPrivateDataException **   
在视频流的至少一条轨道中未发现编解码器的私有数据。  
HTTP 状态代码：400

 ** NoDataRetentionException **   
 `GetImages`请求的直播不保留数据（即 a `DataRetentionInHours` 为 0）。  
HTTP 状态代码：400

 ** NotAuthorizedException **   
状态码：403，调用者无权对给定直播执行操作，或者令牌已过期。  
HTTP 状态代码：401

 ** ResourceNotFoundException **   
 `GetImages`当 Kinesis Video Streams 找不到你指定的直播时，将引发此错误。  
 `GetHLSStreamingSessionURL`如果请求`PlaybackMode`的会话在请求的时间范围内`LIVE_REPLAY`没有片段，`ON_DEMAND`或者在过去 30 秒内没有片段的流请求`PlaybackMode`的`LIVE`会话为或时，则会`GetDASHStreamingSessionURL`抛出此错误。  
HTTP 状态代码：404

 ** UnsupportedStreamMediaTypeException **   
无法根据播放会话的第一个片段中轨道的编解码器来确定媒体的类型（例如 h.264 或 h.265 视频或 AAC IDs 或 G.711 音频）。轨道 1 的编解码器 ID 应为`V_MPEG/ISO/AVC`，轨道 2 的编解码器 ID 也应为（可选）。`A_AAC`  
HTTP 状态代码：400

## 另请参阅
<a name="API_reader_GetClip_SeeAlso"></a>

有关以特定语言之一使用此 API 的更多信息 Amazon SDKs，请参阅以下内容：
+  [Amazon 命令行界面 V2](https://docs.amazonaws.cn/goto/cli2/kinesis-video-reader-data-2017-09-30/GetClip) 
+  [Amazon 适用于.NET 的 SDK V4](https://docs.amazonaws.cn/goto/DotNetSDKV4/kinesis-video-reader-data-2017-09-30/GetClip) 
+  [Amazon 适用于 C\+\+ 的 SDK](https://docs.amazonaws.cn/goto/SdkForCpp/kinesis-video-reader-data-2017-09-30/GetClip) 
+  [Amazon 适用于 Go v2 的 SDK](https://docs.amazonaws.cn/goto/SdkForGoV2/kinesis-video-reader-data-2017-09-30/GetClip) 
+  [Amazon 适用于 Java 的 SDK V2](https://docs.amazonaws.cn/goto/SdkForJavaV2/kinesis-video-reader-data-2017-09-30/GetClip) 
+  [Amazon JavaScript V3 版软件开发工具包](https://docs.amazonaws.cn/goto/SdkForJavaScriptV3/kinesis-video-reader-data-2017-09-30/GetClip) 
+  [Amazon 适用于 Kotlin 的 SDK](https://docs.amazonaws.cn/goto/SdkForKotlin/kinesis-video-reader-data-2017-09-30/GetClip) 
+  [Amazon 适用于 PHP 的 SDK V3](https://docs.amazonaws.cn/goto/SdkForPHPV3/kinesis-video-reader-data-2017-09-30/GetClip) 
+  [Amazon Python 软件开发工具包](https://docs.amazonaws.cn/goto/boto3/kinesis-video-reader-data-2017-09-30/GetClip) 
+  [Amazon 适用于 Ruby V3 的 SDK](https://docs.amazonaws.cn/goto/SdkForRubyV3/kinesis-video-reader-data-2017-09-30/GetClip) 