亚马逊AWS Kinesis Video Streams with WebRTC demo示例

简介: 以下分步说明介绍如何使用下载、构建和运行 Kinesis Video Streams with WebRTC 开发工具包及其相应示例。

以下分步说明介绍如何使用下载、构建和运行 Kinesis Video Streams with WebRTC 开发工具包及其相应示例。


1、下载 C 中的 Kinesis Video Streams with WebRTC 开发工具包


运行以下命令:


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


2、编译构建 Kinesis Video Streams with WebRTC


完成以下步骤:


  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 ..     // 这里cmake的时候有可能会失败,被墙了,最好自备梯子


现在,您已经在build目录中您刚刚使用上面的步骤创建,运行make构建 WebRTC C 开发工具包及其提供的示例。


注意:


这些区域有:kvsWebrtcClientMasterGstSample将不会构建,如果系统没有gstreamer安装。要确保它已构建(在 macOS 上),您必须运行:brew install gstreamer gst-plugins-base gst-plugins-good


3、运行 C 中的 WebRTC 开发工具包的示例


在完成第2步之后,会在build目录中生成以下demo应用程序:


  • kvsWebrtcClientMaster - 此应用程序通过信令通道发送示例 H264/Opus 帧(路径:/samples/h264SampleFrames 和 /samples/opusSampleFrames)。它也接受传入的音频(如果在浏览器中启用)。在浏览器中勾选时,它会打印终端中收到的音频数据包的元数据。
  • kvsWebrtcClientViewer - 此应用程序接受示例 H264/Opus 帧并打印出来。
  • kvsWebrtcClientMasterGstSample - 此应用程序从 GStreamer 管道发送示例 H264/Opus 帧。


要运行这些demo应用程序,要完成以下步骤:


  1. 使用 AWS 账户凭证设置您的环境:(AWS账户凭证需要自己从账户中获取)


export AWS_ACCESS_KEY_ID= <Your AWS account access Key>
export AWS_SECRET_ACCESS_KEY= <AWS account secret key>
export AWS_KVS_CACERT_PATH= <Full path of your cert.pem file. It is typically available in the certs directory inside
Kinesis-video-webrtc-native-build/certs/cert.pm>


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


./kvsWebrtcClientMaster myChannel


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


  1. 现在您的信令通道已创建,并且连接的主设备正在将媒体流式传输到它,您可以查看此流。例如,您可以在 Web 应用程序中查看此实时流。为此,请使用使用 Kinesis Video Streams with WebRTC 测试页面中的步骤打开 WebRTC 开发工具包测试页面,并使用您为上述主设备指定的相同 AWS 凭证和相同信令通道设置以下值:


  • 访问密钥 ID
  • 秘密访问密钥
  • 信令通道名称
  • 客户端 ID(可选)


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


可以选择在网页上/集成了WebRTC的Android、iOS APP查看此流。


小结:


一个信令通道只能有一个主设备


一个信令通道最多可以有 10 个连接的查看器


建立连接后的数据交互:


VOID onDataChannelMessage(UINT64 customData, PRtcDataChannel pDataChannel, BOOL isBinary, PBYTE pMessage, UINT32 pMessageLen){   //连接
    UNUSED_PARAM(customData);
    UNUSED_PARAM(pDataChannel);
    char *pTopicName = NULL,*pStrAnswer = NULL;
    uint32_t nAnswerLen = 0;
    if (isBinary) {
        DLOGI("DataChannel Binary Message");
    } else {
        DLOGI("DataChannel String Message: %.*s\n", pMessageLen, pMessage);
    }
    printf("DataChannel String Message: %s \n MessageLen = %d\n", pMessage ,pMessageLen);
    dataChannelSend(pDataChannel,isBinary,pStrAnswer,nAnswerLen);     // 发送数据回去
}
VOID onDataChannel(UINT64 customData, PRtcDataChannel pRtcDataChannel){
    DLOGI("New DataChannel has been opened %s \n", pRtcDataChannel->name);
    printf("pRtcDataChannel->name : %s\n", pRtcDataChannel->name);
    dataChannelOnMessage(pRtcDataChannel, customData, onDataChannelMessage);    // 接收到数据的回调函数
}


如果你觉得文章还不错,可以给个"三连",文章同步到个人微信公众号[加班猿]


我是hackett,我们下期见

目录
相关文章
|
3月前
|
存储 文件存储
【Azure 媒体服务】在Azure Media Service门户中使用HLS模式传输视频流,播放视频步骤
【Azure 媒体服务】在Azure Media Service门户中使用HLS模式传输视频流,播放视频步骤
|
6月前
|
消息中间件 NoSQL atlas
EMQ
|
SQL 存储 数据可视化
EMQX Enterprise 5.2 发布:Flow 设计器,Amazon Kinesis,Azure Event Hubs
EMQX Enterprise 5.2.0 增加了可拖拽的可视化 Flow 设计器,可以快速部署数据集成。同时,新版本新增了对 Amazon Kinesis 和 Azure Event Hubs 的支持。
EMQ
766 5
EMQX Enterprise 5.2 发布:Flow 设计器,Amazon Kinesis,Azure Event Hubs
|
存储 数据可视化 关系型数据库
AWS Data Pipeline调研
AWS Data Pipeline是AWS提供的一项用于在不同计算和存储服务之间大规模传输、转换和处理数据的Web服务。利用AWS Data Pipeline,用户在不用关心计算存储网络等资源的情况下轻松创建出高可用的复杂数据处理任务,可以定期地读取并处理用户存储在AWS上的数据,最终高效地将计算结果传输到如 Amazon S3、Amazon RDS、Amazon DynamoDB 和 Amazon EMR等各种AWS服务中。
368 0
|
移动开发 JavaScript 前端开发
亚马逊AWS Kinesis Video Streams with IOT mqtt的demo示例
AWS IoT Device SDK for Embedded C通常面向需要优化的 C 语言运行时的资源受限设备。您可以在任何操作系统上使用此软件开发工具包,并将其托管在任何类型的处理器(例如 MCU 和 MPU)上。如果您有更多的可用内存和处理资源,我们建议您使用更高级的 AWS IoT 设备和移动开发工具包之一(例如,C++、Java、JavaScript 和 Python)。
221 0
亚马逊AWS Kinesis Video Streams with IOT mqtt的demo示例
|
存储 编解码 监控
亚马逊AWS Kinesis Video Streams with KVS demo示例
Kinesis Video Streams 不仅用于存储视频数据。您还可以用它来实时监视视频流,因为这些流在云中接收。您既可以在 AWS 管理控制台中监控实时流,也可以开发自己的监控应用程序,以便使用 Kinesis Video Streams API 库显示实时视频。
496 0
|
存储 API Windows
Azure Log Analytics产品API文档读后感
AUZRE LOG ANALYTICS 文档读后感
2826 0
|
API
google reader api,互联网营销
Google Reader 是一个使用了大量JavaScript构建的feed聚合器,它能非常及时地抓取最新的feed数据。Google的Ajax前台调用到的数据采用了Atom格式,这种数据技术降低了Google Reader的开发难度,同时也使得第三方应用很容易对其进行扩展。
1113 0
|
监控 NoSQL Shell
Table Store实时数据通道服务Go SDK快速入门
# Tunnel Service Go SDK ## 安装 * 下载源码包 ```bash go get github.com/aliyun/aliyun-tablestore-go-sdk/tunnel ``` * 安装依赖 * 可以在tunnel目录下使用dep安装依赖 * 安装[dep](https://github.
6404 0
|
编解码 流计算 CDN
IBM Cloud Video工程师Scott Grizzle谈流媒体协议和Codec
Streaming Media特约编辑Tim Siglin在Streaming Media East 2018采访了IBM Cloud Video工程师Scott Grizzle。
1272 0
下一篇
无影云桌面