使用 C 创建者库 - Amazon Kinesis Video Streams

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

使用 C 创建者库

你可以使用 Amazon Kinesis Video Streams 提供的 C 制作器库来编写应用程序代码,将媒体数据从设备发送到 Kinesis 视频流。

物体模型

Kinesis Video Streams C Producer 库基于一个名为平台独立代码库 (PIC) 的通用组件,网址为 https://github.com/awslabs/-pic GitHub /。amazon-kinesis-video-streamsPIC 包含基础组件的独立于平台的业务逻辑。Kinesis Video Streams C Producer 库将 PIC 与额外的 API 层封装在一起,允许特定于场景和平台的回调和事件。Kinesis Video Streams C 制作人库在 PIC 之上构建了以下组件:

  • 设备信息提供商 — 公开可以直接提供给 PIC API 的DeviceInfo结构。您可以配置一组提供程序,包括针对应用程序场景优化的提供程序,这些提供程序可以根据您的应用程序处理的流的数量和类型以及根据可用 RAM 量配置的所需缓冲量来优化内容存储。

  • 直播信息提供者 — 公开可以直接提供给 PIC API 的StreamInfo结构。有一组特定于应用程序类型和常见流媒体场景类型的提供商。其中包括视频、音频、音频和视频多轨等提供商。这些场景中的每一个都有默认值,您可以根据应用程序的要求对其进行自定义。

  • 回调提供程序 — 公开可以直接提供给 PIC API 的ClientCallbacks结构。这包括一组回调提供程序,用于联网(基于 CURL 的 API 回调)、授权(AWS 凭证 API)以及错误回调时重试直播。回调提供程序 API 需要许多参数进行配置,例如 AWS 区域 和授权信息。这可以通过使用 IoT 证书或使用 AWS AccessKeyId SecretKey、或来完成 SessionToken。如果您的应用程序需要进一步处理特定回调以实现某些应用程序特定的逻辑,则可以通过自定义回调来增强回调提供程序。

  • FrameOrderCoordinator— 帮助处理多轨场景的音频和视频同步。它具有默认行为,您可以对其进行自定义以处理应用程序的特定逻辑。在将帧元数据提交给低层 PIC API 之前,它还简化了 PIC 帧结构中的帧元数据打包。对于非多轨道场景,此组件直接传递到 PIC putFrame API。

C 库提供以下对象来管理向 Kinesis 视频流发送数据的过程:

  • KinesisVideoClient— 包含有关您的设备的信息,并维护用于报告 Kinesis Video Streams 事件的回调。

  • KinesisVideoStream— 表示有关视频流参数的信息,例如名称、数据保留期和媒体内容类型。

将媒体放入直播中

您可以使用 C 库提供的方法(例如PutKinesisVideoFrame)将数据放入KinesisVideoStream对象中。随后,该库将管理数据的内部状态,这可包含以下任务:

  • 执行身份验证。

  • 监视网络延迟。如果延迟太高,库可能会选择丢弃帧。

  • 跟踪正在进行的流式处理的状态。

过程:使用 C 创建者开发工具包

此过程演示如何在 C 应用程序中使用 Kinesis Video Streams 客户端和媒体源向你的 Kinesis 视频流发送 H.264 编码的视频帧。

该过程包括以下步骤:

先决条件

  • 凭证-在示例代码中,您可以通过指定在凭证配置文件中设置的配置文件来提供 AWS 凭证。如果尚未执行此操作,请先设置凭证配置文件。

    有关更多信息,请参阅设置用于开发的 AWS 凭据和区域

  • 证书存储集成 — Kinesis Video Streams Producer 库必须与其调用的服务建立信任。这是通过验证公共证书存储库中的证书颁发机构 (CA) 来完成的。对于基于 Linux 的模型,此存储位于 /etc/ssl/ 目录中。

    从以下位置将证书下载到您的证书存储:

    https://www.amazontrust.com/repository/SFSRootCAG2.pem

  • 为 macOS 安装以下构建依赖项:

  • 为 Ubuntu 安装以下版本依赖项:

    • Git: sudo apt install git

    • CMake:sudo apt install cmake

    • G++: sudo apt install g++

    • pkg-配置:sudo apt install pkg-config

    • openJDK:sudo apt install openjdk-8-jdk

    • 设置 JAVA_HOME 环境变量:export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/

后续步骤

步骤 1:下载 C 制作器库代码