GStreamer元素参数参考 - Amazon Kinesis Video Streams

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

GStreamer元素参数参考

要向 Amazon Kinesis Video Streams Video Streams 制作人 SDK C++ 发送视频,请视频kvssink指定为管道的接收方或最终目的地。此参考提供了有关 kvssink 必需参数和可选参数的信息。有关更多信息,请参阅 示例:Kinesis Video Streams SDK GStreamer 制作人插件-kvssink

主题

向提供凭证 kvssink

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

要设置 AWS IoT 凭证,请参阅使用控制对 Kinesis Video Streams 资源的访问权限 AWS IoT

iot-credentials参数值必须以以下逗号分隔的iot-certificate,列表开头,后面跟着一个以逗号分隔的列表 key=value 对。

必需 描述
ca-path

用于通过后端服务建立信任的 CA 证书的文件路径TLS。

示例 /file/path/to/certificate.pem

cert-path

X.509 证书的文件路径。

示例/file/path/to/certificateID-certificate.pem.crt

endpoint

您 AWS 账户的 AWS IoT Core 凭证终端节点提供商终端节点。请参阅《AWS IoT 开发人员指南》

示例credential-account-specific-prefix.credentials.iot.aws-region.amazonaws.com

key-path

公钥/私钥对中使用的私钥的文件路径。

示例/file/path/to/certificateID-private.pem.key

role-aliases

指向连接时要使用的 AWS IAM角色的角色别名的名称 AWS IoT Core。

示例KvsCameraIoTRoleAlias

iot-thing-name

iot-thing-name 是可选项。如果iot-thing-name未提供,则使用stream-name参数值。

示例kvs_example_camera

示例:

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"

kvssink使用来自环境的凭证,请设置以下环境变量:

环境变量名 必需 描述
AWS_ACCESS_KEY_ID 用于 AWS 访问亚马逊 Kinesis Video Streams 的访问密钥。
AWS_SECRET_ACCESS_KEY 与访问 AWS 密钥关联的密钥。
AWS_SESSION_TOKEN 如果您直接使用 AWS STS 操作中的临时安全证书,则指定所需的会话令牌值。

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

要直接将凭据指定为kvssink参数,请设置以下参数:

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

使用静态凭证:

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

使用临时证书:

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

如果您选择了前面的方法之一,则无法使用该credential-filekvssink参数。

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

文本文件必须包含以下格式之一的凭据:

  • CREDENTIALS YourAccessKey YourSecretKey

  • CREDENTIALS YourAccessKey Expiration YourSecretKey SessionToken

示例:您的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-file="/home/ubuntu/credentials.txt"
注意

将来的到期时间应至少为 5 + 30 + 3 = 38 秒。宽限期定义为中的IOT_CREDENTIAL_FETCH_GRACE_PERIOD变量IotCredentialProvider.h。如果您启动时凭证过于接近到期时间kvssink,则会收到错误代码0x52000049 - STATUS_INVALID_TOKEN_EXPIRATION

重要

kvssink不会修改凭据文件。如果您使用的是临时证书,则证书文件必须在到期时间减去宽限期之前由外部来源更新。

提供一个区域给 kvssink

以下是区域查询顺序:

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

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

  3. 如果前面的方法均未使用,kvssink则默认为us-west-2

kvssink可选参数

kvssink 元素具有以下可选参数。有关这些参数的更多信息,请参阅 Kinesis 视频流结构

参数 描述 单位/类型 默认
stream-name 目标 Amazon Kinesis 视频流的名称。
重要

如果未指定直播名称,则将使用默认的直播名称:“DEFAULT_STREAM”。如果使用该默认名称的直播尚不存在,则会创建该流。

absolute-fragment-times 是否使用绝对片段时间。 布尔值 true
access-key

用于 AWS 访问 Kinesis Video Streams 的访问密钥。

您必须设置 AWS 凭据或提供此参数。要提供此信息,请键入以下内容:

export AWS_ACCESS_KEY_ID=
avg-bandwidth-bps 流的预期平均带宽。 每秒位元数 4194304
aws-region

AWS 区域 要使用的。

注意

您也可以为该区域提供AWS_DEFAULT_REGION环境变量。如果同时设置了环境变量和 kvssink 参数,则环境变量优先。

重要

us-west-2如果未另行指定,则该区域将默认为。

String "us-west-2"
buffer-duration 流缓冲持续时间。 120
codec-id 流的编解码器 ID。 String "V_MPEG4/ISO/AVC"
connection-staleness 之后调用直播陈旧回调的时间。 60
content-type 流的内容类型。 String "video/h264"
fragment-acks 是否使用片段ACKs。 布尔值 true
fragment-duration 所需的片段持续时间。 毫秒 2000
framerate 预期的帧率。 每秒帧数 25
frame-timecodes 是否使用帧时间码或者使用当前时间回调生成时间戳。 布尔值 true
key-frame-fragmentation 是否在关键帧上生成片段。 布尔值 true
log-config 日志配置路径。 String "../kvs_log_configuration"
max-latency 流的最大延迟。 60
recalculate-metrics 是否重新计算指标。 布尔值 true
replay-duration 启用重新启动时,在出错时回滚当前阅读器以重放的持续时间。 40
restart-on-error 发生错误时是否重新启动。 布尔值 true
retention-period 保留流的时间长度。 小时 2
rotation-period 密钥轮换周期。有关更多信息,请参阅轮换 AWS KMS 密钥 3600
secret-key

用于访问 Kinesis Video Streams 的 AWS 密钥。

您必须设置 AWS 凭据或提供此参数。

export AWS_SECRET_ACCESS_KEY=
session-token 如果您直接使用 AWS STS 操作中的临时安全证书,则指定所需的会话令牌值。
storage-size 以兆字节 (MiB) 为单位的设备存储大小。有关配置设备存储的信息,请参阅StorageInfo 兆字节 (MiB) 128
streaming-type 流式处理类型。有效值包括:
  • 0:实时

  • 1:几乎实时(当前不支持)

  • 2:离线

枚举 GstKvsSinkStreamingType 0:实时
timecode-scale MKV时间码比例。 毫秒 1
track-name MKV曲目名称。 String "kinesis_video"
iot-certificate

AWS IoT 要在kvssink元素中使用的证书。

iot-certificate接受以下键和值:

注意

iot-thing-name可选的。如果iot-thing-name未提供,则使用stream-name参数值。

  • endpoint=iotcredentialsproviderendpoint

  • cert-path=/localdirectorypath /to/certificate

  • key-path=/localdirectorypath /to/private/key

  • ca-path=/localdirectorypath/to/ca-cert

  • role-aliases=role-aliases

  • iot-thing-name=YourIotThingName

String