

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

# 亚马逊 Kinesis Video Streams 带有 WebRTC 开发工具包的 C 语言版本，适用于嵌入式设备
<a name="kvswebrtc-sdk-c"></a>

以下 step-by-step说明描述了如何为嵌入式设备下载、构建和运行带有 WebRTC SDK 的 C 语言开发工具包的 Kinesis Video Streams 及其相应示例。

支持以下编解码器：
+ **音频：**
  + G.711 A-Law
  + G.711 U-Law
  + Opus
+ **视频:**
  + H.264
  + H.265
  + VP8

## 下载 SDK
<a name="gs-download-sdk"></a>

要下载 C 中适用于嵌入式设备的 Kinesis Video Streams with WebRTC 开发工具包，请运行以下命令：

```
$ git clone https://github.com/awslabs/amazon-kinesis-video-streams-webrtc-sdk-c.git
```

## 构建 SDK
<a name="gs-build-sdk"></a>

**重要**  
在 macOS 上完成这些步骤之前，根据您的 macOS 版本，您必须运行 `xcode-select --install` 下载带有命令行工具和标头的软件包。然后打开`/Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg`并按照安装程序安装命令行工具和标头。这些操作只需要在调用 `cmake` 前执行一次。如果您已经安装了命令行工具和标头，则无需再次运行此命令。

完成以下步骤：

****

1. 安装 cmake：
   + 在 macOS 上运行 `brew install cmake pkg-config srtp` 
   + 在 Ubuntu 上运行 `sudo apt-get install pkg-config cmake libcap2 libcap-dev`

1. 获取要用于此演示 AWS 账户 的访问密钥和密钥。

1. 运行以下命令在您下载的 WebRTC C 开发工具包中创建一个 `build` 目录，并从中执行 `cmake`：

   ```
   $ mkdir -p amazon-kinesis-video-streams-webrtc-sdk-c/build; cd amazon-kinesis-video-streams-webrtc-sdk-c/build; cmake ..
   ```

1. 现在，导航到刚使用上述步骤创建的 `build` 目录，然后运行 `make` 以构建 WebRTC C 开发工具包及其提供的示例。
**注意**  
 如果系统尚未安装 `gstreamer`，则无法构建 `kvsWebrtcClientMasterGstSample`。要确保它是（在 macOS 上）构建的，您必须运行：`brew install gstreamer gst-plugins-base gst-plugins-good`

## 运行 SDK 示例
<a name="gs-run-c-sample"></a>

完成上述过程后，您最终会在您的 `build` 目录中使用以下示例应用程序：
+ `kvsWebrtcClientMaster`-此应用程序通过信令通道发送样本 H264/Opus 帧（路径：/samples/h264SampleFrames and /samples/opusSampleFrames）。它也接受传入的音频（如果在浏览器中启用）。在浏览器中勾选时，它会打印终端中收到的音频数据包的元数据。
+ `kvsWebrtcClientViewer` - 此应用程序接受示例 H264/Opus 帧并打印出来。
+ `kvsWebrtcClientMasterGstSample`-此应用程序从管道发送样本 H264/Opus 帧。 GStreamer 

要运行任何这些示例，请完成以下步骤：

1. 使用您的 AWS 账户 凭据设置您的环境：

   ```
   export AWS_ACCESS_KEY_ID=YourAccessKey
   export AWS_SECRET_ACCESS_KEY=YourSecretKey
   export AWS_DEFAULT_REGION=YourAWSRegion
   ```

   如果您使用的是临时 AWS 证书，请同时导出您的会话令牌：

   ```
   export AWS_SESSION_TOKEN=YourSessionToken
   ```

   如果您要设置自定义 CA 证书路径，则可以使用以下方法进行设置：

   ```
   export AWS_KVS_CACERT_PATH=../certs/cert.pem
   ```
**注意**  
默认情况下，SSL CA 证书设置为... /certs/cert.pem，它指向此存储库中的文件。[GitHub](https://github.com/awslabs/amazon-kinesis-video-streams-webrtc-sdk-c/blob/master/certs/cert.pem)

1. 通过将您要向信令通道提供的名称传递给示例应用程序来运行任一应用程序。应用程序使用您提供的名称创建信令通道。例如，要创建一个名为 `myChannel` 的信令通道并开始通过该通道发送示例 H264/Opus 帧，请运行以下命令：

   ```
   ./kvsWebrtcClientMaster myChannel
   ```

   当命令行应用程序打印 `Connection established` 时，您可以继续下一步。

1. 现在您的信令通道已创建，并且连接的主设备正在将媒体流式传输到它，您可以查看此流。例如，您可以在 Web 应用程序中查看此实时流。为此，请按照[使用示例应用程序](kvswebrtc-sdk-js.md#build-sdk-js)中的步骤打开 WebRTC SDK 测试页面，并使用您在上面为主服务器指定的 AWS 相同凭据和相同的信令通道设置以下值：
   + 访问密钥 ID
   + 秘密访问密钥
   + 信令通道名称
   + 客户端 ID（可选）

   选择 **Start viewer (启动查看器)** 以启动示例 H264/Opus 帧的实时视频流式传输。

## 教程视频
<a name="sdk-c-video"></a>

本视频演示了如何连接摄像头并开始使用适用于 WebRTC 的 Amazon Kinesis Video Streams。


