

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

# GStreamer 元素参数参考
<a name="examples-gstreamer-plugin-parameters"></a>

要向 Amazon Kinesis Video Streams Video Streams 制作人 C\$1\$1 SDK 发送视频，请*将*视频`kvssink`指定为管道的接收方或最终目的地。此参考提供了有关 `kvssink` 必需参数和可选参数的信息。有关更多信息，请参阅 [示例：Kinesis Video Streams 制作人 GStreamer SDK 插件-kvssink](examples-gstreamer-plugin.md)。

**主题**
+ [向提供凭证 `kvssink`](#credentials-to-kvssink)
+ [提供一个区域给 `kvssink`](#kvssink-region)
+ [`kvssink`可选参数](#kvssink-optional-parameters)

## 向提供凭证 `kvssink`
<a name="credentials-to-kvssink"></a>

要允许`kvssink` GStreamer 元素向其发出请求 AWS，请提供 AWS 凭证供其在调用 Amazon Kinesis Video Streams 服务时使用。凭证提供商链按以下顺序查找证书：

### 1。 AWS IoT 证书
<a name="collapsible-section-1"></a>

要设置 AWS IoT 凭证，请参阅[使用控制对 Kinesis Video Streams 资源的访问权限 AWS IoT](how-iot.md)。

`iot-credentials`参数值必须以逗号分隔`iot-certificate,`的以下 *key* = *value* 对开头，后面是逗号分隔的列表。


****  

| Key | 必需 | 描述 | 
| --- | --- | --- | 
| ca-path | 是 | 用于通过 TLS 与后端服务建立信任的 CA 证书的文件路径。 

**Example**  
**示例**：` /file/path/to/certificate.pem` | 
| cert-path | 是 | X.509 证书的文件路径。 

**Example**  
**示例**：`/file/path/to/certificateID-certificate.pem.crt` | 
| endpoint | 是 | 您 AWS 账户的 AWS IoT Core 凭证终端节点提供商终端节点。请参阅《[AWS IoT 开发人员指南》](https://docs.aws.amazon.com//iot/latest/developerguide/authorizing-direct-aws.html)。 

**Example**  
**示例**：`credential-account-specific-prefix.credentials.iot.aws-region.amazonaws.com` | 
| key-path | 是 | key pair 中使用的私 public/private 钥的文件路径。 

**Example**  
**示例**：`/file/path/to/certificateID-private.pem.key` | 
| role-aliases | 是 | 指向连接时要使用 AWS 的 IAM 角色的角色别名的名称 AWS IoT Core。 

**Example**  
**示例**：`KvsCameraIoTRoleAlias` | 
| iot-thing-name | 否 | `iot-thing-name` 是可选项。如果`iot-thing-name`未提供，则使用`stream-name`参数值。 

**Example**  
**示例**：`kvs_example_camera` | 

**Example**  
**示例**：  

```
gst-launch-1.0 -v ... ! kvssink stream-name="YourStream" aws-region="YourRegion" iot-certificate="iot-certificate,endpoint=credential-account-specific-prefix.credentials.iot.aws-region.amazonaws.com,cert-path=certificateID-certificate.pem.crt,key-path=certificateID-private.pem.key,ca-path=certificate.pem,role-aliases=YourRoleAlias,iot-thing-name=YourThingName"
```

### 2. 环境变量
<a name="collapsible-section-2"></a>

要`kvssink`使用来自环境的凭证，请设置以下环境变量：


****  

| 环境变量名 | 必需 | 描述 | 
| --- | --- | --- | 
| AWS\$1ACCESS\$1KEY\$1ID | 是 | 用于 AWS 访问亚马逊 Kinesis Video Streams 的访问密钥。 | 
| AWS\$1SECRET\$1ACCESS\$1KEY | 是 | 与访问 AWS 密钥关联的密钥。 | 
| AWS\$1SESSION\$1TOKEN | 否 | 如果您直接使用 AWS STS 操作中的临时安全证书，则指定所需的会话令牌值。 | 

设置环境变量会更改使用的值，直到 Shell 会话结束或直到您将该变量设置为其他值。要使变量在 future 会话中保持不变，请在 shell 的启动脚本中对其进行设置。

### 3。 `access-key`，`secret-key`参数
<a name="collapsible-section-3"></a>

要直接将凭据指定为`kvssink`参数，请设置以下参数：


****  

| `kvssink`参数名 | 必需 | 描述 | 
| --- | --- | --- | 
| access-key | 是 | 用于 AWS 访问亚马逊 Kinesis Video Streams 的访问密钥。 | 
| secret-key | 是 | 与访问 AWS 密钥关联的密钥。 | 
| session-token | 否 | 如果您直接使用 AWS STS 操作中的临时安全证书，则指定所需的会话令牌值。 | 

**Example**  
**使用静态凭证：**  

```
gst-launch-1.0 -v ... ! kvssink stream-name="YourStream" aws-region="YourRegion" access-key="AKIDEXAMPLE" secret-key="SKEXAMPLE"
```

**Example**  
**使用临时证书：**  

```
gst-launch-1.0 -v ... ! kvssink stream-name="YourStream" aws-region="YourRegion" access-key="AKIDEXAMPLE" secret-key="SKEXAMPLE" session-token="STEXAMPLE"
```

### 4. 凭证文件
<a name="collapsible-section-4"></a>

**重要**  
如果您选择了前面的方法之一，则无法使用该`credential-path``kvssink`参数。


****  

| `kvssink`参数名 | 必需 | 描述 | 
| --- | --- | --- | 
| credential-path | 是 | 包含特定格式凭据的文本文件的路径。 | 

文本文件必须包含以下格式之一的凭据：
+ 全权证书 *YourAccessKey* *YourSecretKey*
+ 全权证书 *YourAccessKey* *Expiration* *YourSecretKey* *SessionToken*

**Example**  
**示例：**您的`credentials.txt`文件位于`/home/ubuntu`并包含以下内容：  
`CREDENTIALS AKIDEXAMPLE 2023-08-10T22:43:00Z SKEXAMPLE STEXAMPLE`  
要在中使用它`kvssink`，请键入：  

```
gst-launch-1.0 -v ... ! kvssink stream-name="YourStream" aws-region="YourRegion" credential-path="/home/ubuntu/credentials.txt" 
```
将来的到期时间应至少为 5 \$1 30 \$1 3 = **38** 秒。宽限期定义为中的`IOT_CREDENTIAL_FETCH_GRACE_PERIOD`变量[https://github.com/awslabs/amazon-kinesis-video-streams-producer-c/blob/master/src/source/Common/IotCredentialProvider.h](https://github.com/awslabs/amazon-kinesis-video-streams-producer-c/blob/master/src/source/Common/IotCredentialProvider.h)。如果您启动时凭证过于接近到期时间`kvssink`，则会收到错误代码`0x52000049 - STATUS_INVALID_TOKEN_EXPIRATION`。
`kvssink`不会修改凭据文件。如果您使用的是临时证书，则证书文件必须在到期时间减去宽限期之前由外部来源更新。

## 提供一个区域给 `kvssink`
<a name="kvssink-region"></a>

以下是区域查询顺序：

1. `AWS_DEFAULT_REGION`首先审查环境变量。如果已设置，则使用该区域来配置客户端。

1. `aws-region`接下来将查看参数。如果已设置，则使用该区域来配置客户端。

1. 如果前面的方法均未使用，`kvssink`则默认为`us-west-2`。

## `kvssink`可选参数
<a name="kvssink-optional-parameters"></a>

`kvssink` 元素具有以下可选参数。有关这些参数的更多信息，请参阅 [Kinesis 视频流结构](producer-reference-structures-stream.md)。


****  

| 参数 | 说明 | 单位/类型 | 默认 | 
| --- | --- | --- | --- | 
| stream-name  | 目标 Amazon Kinesis 视频流的名称。 如果未指定直播名称，则将使用默认的直播名称：“DEFAULT\$1STREAM”。如果使用该默认名称的直播尚不存在，则会创建该流。  |  |  | 
| absolute-fragment-times | 是否使用绝对片段时间。 | 布尔值 | true | 
| access-key | 用于 AWS 访问 Kinesis Video Streams 的访问密钥。 您必须设置 AWS 凭据或提供此参数。要提供此信息，请键入以下内容： <pre>export AWS_ACCESS_KEY_ID=</pre> |  |  | 
| avg-bandwidth-bps | 流的预期平均带宽。 | 每秒位元数 | 4194304 | 
| aws-region |  AWS 区域 要使用的。  您也可以为该区域提供`AWS_DEFAULT_REGION`环境变量。如果同时设置了环境变量和 kvssink 参数，则环境变量优先。   `us-west-2`如果未另行指定，则该区域将默认为。   | 字符串 | "us-west-2" | 
| buffer-duration | 流缓冲持续时间。 | 秒 | 120 | 
| codec-id | 流的编解码器 ID。 | 字符串 | "V\$1MPEG4/ISO/AVC" | 
| connection-staleness | 之后调用直播陈旧回调的时间。 | 秒 | 60 | 
| content-type | 流的内容类型。 | 字符串 | "video/h264" | 
| fragment-acks | 是否使用片段 ACKs。 | 布尔值 | true | 
| fragment-duration | 所需的片段持续时间。 | 毫秒 | 2000 | 
| framerate | 预期的帧率。 | 每秒帧数 | 25 | 
| frame-timecodes | 是否使用帧时间码或者使用当前时间回调生成时间戳。 | 布尔值 | true | 
| key-frame-fragmentation | 是否在关键帧上生成片段。 | 布尔值 | true | 
| log-config | 日志配置路径。 | 字符串 | "../kvs\$1log\$1configuration" | 
| max-latency | 流的最大延迟。 | 秒 | 60 | 
| recalculate-metrics | 是否重新计算指标。 | 布尔值 | true | 
| replay-duration | 启用重新启动时，在出错时回滚当前阅读器以重放的持续时间。 | 秒 | 40 | 
| restart-on-error | 发生错误时是否重新启动。 | 布尔值 | true | 
| retention-period | 保留流的时间长度。 | Hours | 2 | 
| rotation-period | 密钥轮换周期。有关更多信息，请参阅[轮换 AWS KMS 密钥](https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html)。 | 秒 | 3600 | 
| secret-key |  用于访问 Kinesis Video Streams 的 AWS 密钥。 您必须设置 AWS 凭据或提供此参数。 <pre>export AWS_SECRET_ACCESS_KEY=</pre>  |  |  | 
| session-token | 如果您直接使用 AWS STS 操作中的临时安全证书，则指定所需的会话令牌值。 |  |  | 
| storage-size | 以兆字节 (MiB) 为单位的设备存储大小。有关配置设备存储的信息，请参阅[StorageInfo](producer-reference-structures-producer.md#producer-reference-structures-producer-storageinfo)。 | 兆字节 (MiB) | 128 | 
| streaming-type | 流式处理类型。有效值包括：[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/kinesisvideostreams/latest/dg/examples-gstreamer-plugin-parameters.html) | 枚举 GstKvsSinkStreamingType | 0：实时 | 
| timecode-scale | MKV 时间码标度。 | 毫秒 | 1 | 
| track-name | MKV 音轨名称。 | 字符串 | "kinesis\$1video" | 
| iot-certificate | AWS IoT 要在`kvssink`元素中使用的证书。 `iot-certificate`接受以下键和值：  `iot-thing-name`是**可选**的。如果`iot-thing-name`未提供，则使用`stream-name`参数值。  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/kinesisvideostreams/latest/dg/examples-gstreamer-plugin-parameters.html) | 字符串 | 无 | 