本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 C++ 创建者库
您可以使用Amazon Kinesis Video Streams s 提供的 C++ 制作者库来编写应用程序代码,将媒体数据从设备发送到 Kinesis 视频流。
物体模型
C++ 库提供以下对象来管理向 Kinesis 视频流发送数据:
-
KinesisVideoProducer:包含有关您的媒体来源和Amazon凭证的信息,并维护回传以报告 Kinesis Video Streams 事件。
-
KinesisVideoStream:代表 Kinesis 视频流。包含有关视频流参数的信息,例如名称、数据保留期和媒体内容类型。
将媒体放到直播中
您可以使用 C++ 库提供的方法(例如PutFrame
)将数据放入KinesisVideoStream
对象。随后,该库将管理数据的内部状态,这可包含以下任务:
-
执行身份验证。
-
监视网络延迟。如果延迟太高,库可能会选择丢弃帧。
-
跟踪正在进行的流式处理的状态。
回调接口
此层公开一组回调接口,使其能够与应用程序层进行通信。这些回调接口包括:
-
服务回调接口 (
CallbackProvider
):该库在创建流、获取流描述和删除流时调用通过此接口获得的事件。 -
客户端就绪状态或存储不足事件接口 (
ClientCallbackProvider
):当客户端准备就绪或检测到可用存储空间或内存不足时,该库将对此接口调用事件。 -
流事件回调接口 (
StreamCallbackProvider
):当发生流事件 (例如,进入准备就绪状态的流、丢弃的帧或流错误) 时,该库将对此接口调用事件。
Kinesis Video Streams 为这些接口提供默认实现。您也可以提供自己的自定义实现,例如,如果您需要自定义网络逻辑或想要向用户界面公开存储空间不足的情况。
有关创建者库中的回调的更多信息,请参阅制作者 SDK 回调。
过程:使用 C++ 创建者开发工具包
此过程演示如何在 C++ 应用程序中使用 Kinesis Video Streams 客户端和媒体源向 Kinesis 视频流发送数据。
该过程包括以下步骤:
先决条件
-
凭证:在示例代码中,您可以通过指定在证书配置文件中设置的配置文件来提供Amazon证书。如果尚未执行此操作,请先设置凭证配置文件。
有关更多信息,请参阅设置Amazon证书和开发区域。
-
证书存储集成:Kinesis Video Streams 制作者库必须与其调用的服务建立信任。这是通过验证公共证书存储中的证书颁发机构 (CA) 来完成的。对于基于 Linux 的模型,此存储位于
/etc/ssl
/ 目录中。从以下位置将证书下载到您的证书存储:
-
为 macOS 安装以下构建依赖项:
-
Autoconf 2.69
(许可证 GPLv3+/Autoconf:GNU GPL 版本 3 或更高版本) -
Bison 2.4
(GNU 许可证) -
Automake 1.15.1
(GNU 许可证) -
GNU Libtool (Apple Inc. 版本 cctools-898)
-
xCode (macOS) / clang / gcc (xcode-选择版本 2347)
-
Java 开发工具包 (JDK) (用于 Java JNI 编译)
-
-
为 Ubuntu 安装以下构建依赖项 (对版本命令的响应已截断):
-
安装 Git:
sudo apt-get install git
$ git --version git version 2.14.1
-
安装 CMake
: sudo apt-get install cmake
$ cmake --version cmake version 3.9.1
-
安装 Libtool:
sudo apt-get install libtool
2.4.6-2
-
安装 libtool-bin:
sudo apt-get install libtool-bin
$ libtool --version libtool (GNU libtool) 2.4.6 Written by Gordon Matzigkeit, 1996
-
安装 GNU Automake:
sudo apt-get install automake
$ automake --version automake (GNU automake) 1.15
-
安装 GNU Bison:
sudo apt-get install bison
$ bison -V bison (GNU Bison) 3.0.4
-
安装 G++:
sudo apt-get install g++
g++ --version g++ (Ubuntu 7.2.0-8ubuntu3) 7.2.0
-
安装 curl:
sudo apt-get install curl
$ curl --version curl 7.55.1 (x86_64-pc-linux-gnu) libcurl/7.55.1 OpenSSL/1.0.2g zlib/1.2.11 libidn2/2.0.2 libpsl/0.18.0 (+libidn2/2.0.2) librtmp/2.3
-
安装 pkg-config:
sudo apt-get install pkg-config
$ pkg-config --version 0.29.1
-
安装 Flex:
sudo apt-get install flex
$ flex --version flex 2.6.1
-
安装 OpenJDK:
sudo apt-get install openjdk-8-jdk
$ java -version openjdk version "1.8.0_171"
-
设置
JAVA_HOME
环境变量:export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/
-
运行构建脚本:
./install-script
-