将工业媒体导入 Amazon Kinesis Video Streams 使用 AWS IoT Gr
将工业媒体传输到 Amazon Kinesis Video Streams 的 AWS IoT Greengrass V2 组件
关键要点
在许多行业中,如汽车、商业、石油和天然气等,组织通过安装数百个 IP 摄像头来提升安全性。本文介绍了如何使用 AWS IoT Greengrass V2 组件,将实时音视频流从预装的 IP 摄像头传输到 Amazon Kinesis Video Streams,以便于实时视频处理、历史视频上传和数据中心化管理。
引言
随着安全需求的增加,许多组织都在安装 IP 摄像头,以监控室内外的空间。这种需求在汽车、商业、石油与天然气、公共安全及农业科技等制造行业非常普遍。公司将摄像头连接到云端,创建集中化的数据视图,并为其设施增加数字双胞胎功能。本文将讨论如何利用 AWS IoT Greengrass V2 组件打包和部署一个能够进行实时流媒体传输、按需视频上传和本地缓存的 Amazon Kinesis Video Streams 流上传工具,从而满足需要导入来自预装 IP 摄像头的实时音视频流的应用场景。
Kinesis Video Streams 是一个完全托管的 AWS 服务,可以用来从设备进行实时视频流传输,构建实时视频处理应用程序,执行批量视频分析等。通过 Kinesis Video Streams 服务,您可以从智能手机、安全摄像头、网络摄像头、无人机、热成像设备及音频等多种来源导入视频及非视频数据。最近,我们发布了一款 AWS IoT Greengrass 组件,可以让您从现有设备流媒体。Kinesis Video Streams 组件的边缘连接器awsiotEdgeConnectorForKVS使用实时流协议 (RTSP) 从本地 IP 摄像头读取视频流,并将其发布到 Kinesis Video Streams 端点。
解决方案概述
一家开发智能建筑解决方案的公司希望构建一个应用程序,用于从建筑入口、访问控制区域和安全闸门收集数百个视频流。这家公司可能会希望将视频流整合到使用 AWS IoT TwinMaker 的数字双胞胎应用中,并结合使用 AWS IoT TwinMaker 应用插件 来上传视频和检查历史视频时间线。
将现有摄像头重构为直接流向一个端点可能会非常具有挑战性。相反,您可以部署一个 AWS IoT Greengrass 边缘网关和一个用于 Kinesis Video Streams 组件的 AWS IoT Greengrass 边缘连接器,从这些摄像头中导入数据。该组件可以与同一网络内的 IP 摄像头连接,并将视频流传送到 Kinesis Video Streams。在消费端,您可以使用应用程序读取 Kinesis Video Streams 端点并充当客户端。这个组件支持边缘视频缓存、定时视频录制、定时视频上传、实时流媒体以及历史视频上传至 Kinesis Video Streams 等功能。边缘连接器组件提供了一个可根据需求进行自定义的完整 AWS IoT Greengrass V2 视频导入组件。
根据底层硬件的计算能力、网络带宽和 AWS IoT SiteWise 子资产的保留情况,每个 AWS IoT Greengrass 中心设备可连接的摄像头数量有限目前限制为2000,具体详细信息请参考 子资产配额文档。假设 AWS IoT Greengrass 设备与 AWS 之间存在稳定的网络连接,并且具有足够的带宽来流媒体。
一元机场vip官网部署 AWS IoT Greengrass Core 于边缘设备上。该设备负责运行边缘连接器并与摄像头进行交互。Greengrass Core 软件可以在 Linux 设备如 Raspberry Pi或 Windows 设备上部署。最终,该设备将运行边缘连接器 Kinesis Video Streams 组件。有关更多详细信息,请参考 如何设置 AWS IoT Greengrass 的文档。在边缘设备上安装 GStreamer 版本 1184 或更高版本。一旦边缘设备设置完成,使用 AWS IoT Greengrass 服务部署 Kinesis Video Streams 组件的边缘连接器。根据您部署的特定细节编辑配置页面。请参考文档以了解如何将组件部署到 AWS IoT Greengrass 的更多信息 管理部署文档。部署 Kinesis Video Streams 组件的边缘连接器后,组件的配置将存储在 AWS IoT SiteWise 和 AWS Secrets Manager。AWS IoT SiteWise 存储两种类型的资产:EdgeConnectorForKVSHub 资产包含指示连接器正在运行的独特中心名称,而 EdgeConnectorForKVSCamera 包含特定于摄像头的属性,例如 cron 表达式 用于开始流媒体和录制。有关详细信息,请参阅 GitHub 页面 配置参数。Kinesis Video Streams 的边缘连接器会从摄像头流中导入数据。此处可以选择增加本地存储并同时将数据流向 Kinesis Video Streams 端点。在客户端方面,您可以构建自己的自定义应用以从 Kinesis Video Streams 端点消费数据。例如,当检测到运动时,可以触发实时流视频。有关如何实施此架构和上述步骤的详细指南,请参考 GitHub 文档。
详细边缘架构
边缘架构由三个模块组成:控制器、视频记录器和视频上传器见上图。Kinesis Video Streams 连接器组件默认设置为流媒体视频,但它也具有在文件系统上录制视频的可选功能,以便进行本地存储。控制器充当记录器与上传器之间的代理。它还促成了这两者之间的通信。控制器首先初始化一对管道输入和输出流对象。视频记录器从摄像头获取流数据,并将数据放入管道输出流中。最后,视频上传器从管道输入流中获取流数据,然后将数据上传到 Kinesis Video Streams。

解决方案的扩展性
接下来,我们将关注规模和限制,以查看解决方案如何扩展。在架构中,Kinesis Video Streams 组件的边缘连接器与 Greengrass Core 无扩展限制。由于该解决方案使用 AWS IoT SiteWise 来管理 RTSP 摄像头配置,唯一的硬性限制是 AWS IoT SiteWise 子资产配额,每个父资产少于 2000 个子资产。边缘设备/中心所支持的摄像头数量仅取决于其硬件配置。如果网络带宽和硬件容量充足,AWS IoT Greengrass 设备可以支持更多摄像头。根据我们的内部测试,我们在同一边缘设备上测试了十多个摄像头连续获取流数据,没有出现任何问题。有关详细信息,请参考文档 Kinesis Video Streams API 限制和配额。
以下是一些边缘设备配置的示例,以及它们可以支持的最佳性能的视频流数量:
类型硬件配置支持的视频流数量小型实例Raspberry Pi 4 Model B2GB RAM,16GB SSD支持最多 2 个 1080p HD RTSP 摄像头同时上传至云端,网络速度为 100 MBPS中型实例NVIDIA Jetson Nano Developer Kit4GB RAM,16GB SSD支持最多 4 个 1080p HD RTSP 摄像头同时上传至云端,网络速度为 100 MBPS大型实例Intel NUC25GB RAM,1T SSD支持最多 24 个 1080p HD RTSP 摄像头同时上传至云端,网络速度为 600 MBPS该解决方案主要依赖内存,因此计算资源如 CPU 和 GPU 类型的容量并不那么相关。
清理
如果您使用 GitHub 链接实现了此架构,请确保使用以下步骤清理资源,以避免产生费用。
卸载 边缘设备上的 Greengrass Core 软件。删除 Kinesis 视频流:打开 Kinesis Video Streams 控制台。在左侧菜单中选择视频流并选中视频流。在屏幕右上方选择删除视频流。确认屏幕会出现。输入 “Delete” 并选择删除。结论
在本文中,我们概述了 AWS IoT Greengrass 组件 对于 Kinesis Video Streams 的使用场景和 GitHub 链接。您可以将这一功能像其他 AWS 提供的 Greengrass 组件 一样使用,并为您的现有设备启用 Kinesis Video Streams。若要了解更多关于此解决方案的详细信息及部署步骤,请参考此 GitHub 存储库。
作者
Aditi Gupta
是亚马逊网络服务公司的高级 IoT 解决方案架构师。她在设计和开发高度可扩展和可靠的系统方面拥有 18 年以上的经验,服务于多个政府机构和大型企业。她的兴趣包括大数据、人工智能和机器学习。
Harish Rajagopalan
是亚马逊网络服务公司的高级解决方案架构师。Harish 与企业客户合作,帮助他们进行云迁移。