构建 Amazon Kinesis Video Streams 边缘代理 - Amazon Kinesis Video Streams

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

构建 Amazon Kinesis Video Streams 边缘代理

构建 Amazon Kinesis Video Streams 边缘代理
  1. 使用提供给您的链接下载tar文件。

    如果你填写了 Amazon Kinesis Video Streams Edge Agent 意向表,请查看电子邮件中的下载链接。如果您尚未填写表格,请在此处填写。

  2. 验证校验和。

  3. 提取设备中的二进制文件和 jar。

    类型:tar -xvf kvs-edge-agent.tar.gz

    解压缩后,您的文件夹结构将如下所示:

    kvs-edge-agent/LICENSE kvs-edge-agent/THIRD-PARTY-LICENSES kvs-edge-agent/pom.xml kvs-edge-agent/KvsEdgeComponent kvs-edge-agent/KvsEdgeComponent/recipes kvs-edge-agent/KvsEdgeComponent/recipes/recipe.yaml kvs-edge-agent/KvsEdgeComponent/artifacts kvs-edge-agent/KvsEdgeComponent/artifacts/aws.kinesisvideo.KvsEdgeComponent kvs-edge-agent/KvsEdgeComponent/artifacts/aws.kinesisvideo.KvsEdgeComponent/EdgeAgentVersion kvs-edge-agent/KvsEdgeComponent/artifacts/aws.kinesisvideo.KvsEdgeComponent/EdgeAgentVersion/edge_log_config kvs-edge-agent/KvsEdgeComponent/artifacts/aws.kinesisvideo.KvsEdgeComponent/EdgeAgentVersion/kvs-edge-agent.jar kvs-edge-agent/KvsEdgeComponent/artifacts/aws.kinesisvideo.KvsEdgeComponent/EdgeAgentVersion/libgstkvssink.so kvs-edge-agent/KvsEdgeComponent/artifacts/aws.kinesisvideo.KvsEdgeComponent/EdgeAgentVersion/libIngestorPipelineJNI.so kvs-edge-agent/KvsEdgeComponent/artifacts/aws.kinesisvideo.KvsEdgeComponent/EdgeAgentVersion/lib kvs-edge-agent/KvsEdgeComponent/artifacts/aws.kinesisvideo.KvsEdgeComponent/EdgeAgentVersion/lib/libcproducer.so kvs-edge-agent/KvsEdgeComponent/artifacts/aws.kinesisvideo.KvsEdgeComponent/EdgeAgentVersion/lib/libKinesisVideoProducer.so
    注意

    发行版文件夹名称的设置应反映最新的二进制版本号。例如,1.0.0 版本的文件夹名称将设置为 1.0.0。

  4. 构建依赖关系 jar。

    注意

    随附的 jar kvs-edge-agent.tar.gz 没有依赖关系。使用以下步骤来构建这些库。

    导航到包含kvs-edge-agent的文件夹pom.xml

    键入 mvn clean package

    这将生成一个 jar 文件,其中包含亚马逊 Kinesis Video Streams Edge Agent 所需的kvs-edge-agent/target/libs.jar依赖项。

  5. 将放libs.jar入包含组件构件的文件夹中。

    键入 mv ./target/libs.jar ./KvsEdgeComponent/artifacts/aws.kinesisvideo.KvsEdgeComponent/EdgeAgentVersion/

  6. 使用前面步骤中的值设置环境变量。下表提供了变量的描述。

    环境变量名 必需 描述

    AWS_REGION

    使用的区域。

    示例:us-west -2

    AWS_IOT_CA_CERT

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

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

    AWS_IOT_CORE_CERT

    X.509 证书的文件路径。

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

    AWS_IOT_CORE_CREDENTIAL_ENDPOINT

    您 AWS 账户的AWS IoT Core 凭证终端节点提供商终端节点。

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

    AWS_IOT_CORE_DATA_ATS_ENDPOINT

    您 AWS 账户AWS IoT Core 的数据平面终端节点

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

    AWS_IOT_CORE_PRIVATE_KEY

    公钥/私钥对中使用的私钥的文件路径。有关更多信息,请参阅中的密钥管理 AWS IoT

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

    AWS_IOT_CORE_ROLE_ALIAS

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

    示例kvs-edge-role-alias

    AWS_IOT_CORE_THING_NAME

    正在运行应用程序 AWS IoT 的事物的名称。

    示例my-edge-device-thing

    GST_PLUGIN_PATH

    指向包含gstkvssinkIngestorPipelineJNI依赖于平台的库的文件夹的文件路径。让我们GStreamer加载这些插件。有关更多信息,请参阅 下载、构建和配置GStreamer元素

    示例/download-location/kvs-edge-agent/KvsEdgeComponent/artifacts/aws.kinesisvideo.KvsEdgeComponent/EdgeAgentVersion/

    LD_LIBRARY_PATH

    指向包含cproducerKinesisVideoProducer依赖于平台的库的目录的文件路径。

    示例/download-location/kvs-edge-agent/KvsEdgeComponent/artifacts/aws.kinesisvideo.KvsEdgeComponent/EdgeAgentVersion/lib/

    AWS_KVS_EDGE_CLOUDWATCH_ENABLED

    确定 Amazon Kinesis Video Streams Video Streams Edge Agent 是否会将作业运行状况指标 Amazon CloudWatch发布到上。

    可接受的值:TRUE/FALSE(不区分大小写)。FALSE如果未提供,则默认为。

    示例:FALSE

    AWS_KVS_EDGE_LOG_LEVEL

    亚马逊 Kinesis Video Streams Video Streams Edge Agent 输出的记录级别。

    可接受的值:

    • OFF

    • ALL

    • FATAL

    • ERROR

    • WARN

    • INFO,默认(如果未提供)

    • DEBUG

    • TRACE

    示例INFO

    AWS_KVS_EDGE_LOG_MAX_FILE_SIZE

    一旦日志文件达到此大小,就会发生翻转。

    • 最小:0

    • 最大:10000

    • 默认值:20(如果未提供)

    • 单位:兆字节 (MB)

    示例:5

    AWS_KVS_EDGE_LOG_OUTPUT_DIRECTORY

    指向输出 Amazon Kinesis Video Streams Edge Agent 日志的目录的文件路径。./log如果未提供,则默认为。

    示例/file/path/

    AWS_KVS_EDGE_LOG_ROLLOVER_COUNT

    删除前要保留的翻转日志的数量。

    • 最小:1

    • 最大值:100

    • 默认值:10(如果未提供)

    示例:20

    AWS_KVS_EDGE_RECORDING_DIRECTORY

    指向录制媒体将被写入的目录的文件路径。如果未提供,则默认为当前目录。

    示例/file/path/

    GST_DEBUG

    指定要输出的GStreamer日志级别。有关更多信息,请参阅GStreamer文档

    示例:0

    GST_DEBUG_FILE

    指定调GStreamer试日志的输出文件。如果未设置,则调试日志将输出为标准错误。有关更多信息,请参阅GStreamer文档

    示例/tmp/gstreamer-logging.log

  7. 清除GStreamer缓存。类型:

    rm ~/.cache/gstreamer-1.0/registry.your-os-architecture.bin

    有关更多信息,请参阅GStreamer注册表文档

  8. 准备并运行 java 命令。亚马逊 Kinesis Video Streams Edge Agent 接受以下参数:

    Java 属性名称 必需 描述

    java.library.path

    指向包含gstkvssinkIngestorPipelineJNI依赖库的文件夹的文件路径。如果未提供,Amazon Kinesis Video Streams Edge Agent 将在当前目录中搜索它们。

    重要

    如果 Amazon Kinesis Video Streams Edge Agent 找不到这些文件,它将无法正常运行。

    示例/file/path/

    要设置这些,请-Djava-property-name=value添加到用于运行 jar 的 java 命令中。

    例如:

    java -Djava.library.path=/download-location/kvs-edge-agent/KvsEdgeComponent/artifacts/aws.kinesisvideo.KvsEdgeComponent/EdgeAgentVersion \ --add-opens java.base/jdk.internal.misc=ALL-UNNAMED \ -Dio.netty.tryReflectionSetAccessible=true \ -cp kvs-edge-agent.jar:libs.jar \ com.amazonaws.kinesisvideo.edge.controller.ControllerApp
    重要

    在与相同的目录中运行上面的 java 命令/download-location/kvs-edge-agent/KvsEdgeComponent/artifacts/aws.kinesisvideo.KvsEdgeComponent/EdgeAgentVersion

  9. 使用向应用程序发送配置 AWS CLI。

    1. 创建一个新文件,example-edge-configuration.json

      将以下代码粘贴到该文件中。这是一个配置示例,每天从上午 9:00:00 到下午 4:59:59(根据设备上的系统时间)进行记录。 AWS IoT 它还会在每天晚上 7:00:00 至晚上 9:59:59 上传录制的媒体。

      有关更多信息,请参阅 StartEdgeConfigurationUpdate

      { "StreamARN": "arn:aws:kinesisvideo:your-region:your-account-id:stream/your-stream/0123456789012", "EdgeConfig": { "HubDeviceArn": "arn:aws:iot:your-region:your-account-id:thing/kvs-edge-agent-demo", "RecorderConfig": { "MediaSourceConfig": { "MediaUriSecretArn": "arn:aws:secretsmanager:your-region:your-account-id:secret:your-secret-dRbHJQ", "MediaUriType": "RTSP_URI" }, "ScheduleConfig": { "ScheduleExpression": "0 0 9,10,11,12,13,14,15,16 ? * * *", "DurationInSeconds": 3599 } }, "UploaderConfig": { "ScheduleConfig": { "ScheduleExpression": "0 0 19,20,21 ? * * *", "DurationInSeconds": 3599 } }, "DeletionConfig": { "EdgeRetentionInHours": 15, "LocalSizeConfig": { "MaxLocalMediaSizeInMB": 2800, "StrategyOnFullSize": "DELETE_OLDEST_MEDIA" }, "DeleteAfterUpload": true } } }
    2. 要将文件发送到亚马逊 Kinesis Video Streams Edge Agent,请在中 AWS CLI键入以下内容:

      aws kinesisvideo start-edge-configuration-update --cli-input-json "file://example-edge-configuration.json"
  10. 对亚马逊 Kinesis Video Streams Edge Agent 的每个直播重复上述步骤。