亚马逊AWS官方博客

Amazon Kinesis Video Streams – 适用于可视应用程序的无服务器视频提取和存储

手机、监控摄像机、婴儿监视器、无人机、网络摄像头、行车记录仪甚至卫星都可以产生高强度、高质量的视频流。家、办公室、工厂、城市、街道和高速公路现在都安装了大量的摄像机。它们将在洪水和其他自然灾害之后调查财产、提高公共安全,让您知道您的孩子安然无恙、通过连续的“失败”视频捕获一次性时刻 (个人爱好)、收集有助于识别和解决交通问题的数据等。

至少可以说,处理大量的视频数据是具有挑战性的。单个或几百万个传入流会突然到达。流包含宝贵的实时数据,无法延迟、暂停或搁置该数据以在更合适的时间处理。在您获得原始数据后,其他的挑战就会出现。可以想到的是存储和加密视频数据并为其编制索引。提取价值 – 深入探究内容、了解内容的含义并加快行动 – 是下一个重要步骤。

新的 Amazon Kinesis Video Streams
今天,我要向您介绍 Amazon Kinesis Video Streams,它是实时流式传输服务的 Amazon Kinesis 系列的最新成员。现在,您可以从数百万台摄像机设备中提取流视频 (或其他时间编码的数据),而不必设置或运行您自己的基础设施。Kinesis Video Streams 接受您的传入流、以加密形式持久存储这些流、创建基于时间的索引并支持创建可视应用程序。您可使用 Amazon Rekognition Video、MXNetTensorFlow OpenCV 或您自己的自定义代码来处理传入流,这样做是为了支持我知道您将创造的出色的新机器人学、分析和使用器应用程序。

我们将为您管理所有基础设施。首先,您使用我们的创建器开发工具包 (设备端) 创建应用程序,然后通过选择的设备向我们发送视频。传入视频将通过安全的 TLS 连接到达,并在使用 AWS Key Management Service (KMS) 密钥加密后以时间索引形式存储。接下来,您通过视频流解析器库 (云端) 使用视频流并从中提取价值。

无论您从一台设备还是数百万台设备发送多少低分辨率或高分辨率的视频,Kinesis Video Streams 都将进行扩展以满足您的需求。我总是不厌其烦地说,您可以专注于您的应用程序和业务。Amazon Kinesis Video Streams 基于您熟悉的 AWS 部件而构建。它将视频存储在 S3 中以实现持久性和节省成本,使用 AWS Identity and Access Management (IAM) 进行访问控制,并且可通过 AWS 管理控制台AWS 命令行界面 (CLI) 和一组 API 进行访问。

Amazon Kinesis Video Streams 概念
下面我们浏览几个概念,然后设置一个流。

创建器 – 创建器是一种将数据放入流中的数据源。它可能是婴儿监视器、无人机上的视频摄像头或一些更异乎寻常的设备:可能是温度传感器或卫星!Amazon Kinesis 视频创建器开发工具包提供了一组功能,可使建立连接和流式传输视频变得轻松。

– 利用流,您可传输实时视频数据,有选择性地存储视频数据并使视频数据能够实时使用或批量使用。流还可包含其他类型的时间编码的数据 (包括音频、雷达、激光雷达和传感器读数)。大多数情况下,创建器和流之间存在一对一映射。多个独立的应用程序可使用和处理来自单个流的数据。

片段和帧 – 片段是流中的一组有时限的帧。

使用器 – 使用器从流中获取数据 (片段或帧) 并处理、分析或显示数据。使用器可实时或事后运行,并基于视频流解析器库而构建。

使用 Amazon Kinesis Video Streams
如我之前提到,创建器和流之间存在一对一映射。大多数情况下,每个创建器实例将使用 Kinesis Video Streams API 创建一个唯一的流。但是,如果您想进行测试或演示,或者您需要固定数量的小型流,则可手动创建流。

为了手动创建流,我打开 Kinesis Video Streams 控制台并单击 Create Kinesis video stream

我输入我的流的名称并单击 Create stream

如果我要自定义我的流,我可取消选中 Use default settings (稍后可以更改大多数设置):

我的流已准备就绪,可立即使用。该控制台将在我开始流式传输视频后立即显示视频:

Kinesis 团队与我分享了此屏幕;我没有时间实地考察。这能让我成为猎豹吗?

针对 Amazon Kinesis Video Streams 进行开发
下一步是使用创建器开发工具包来构建创建器应用程序。该应用程序在设备上或场外运行,负责创建流并通过调用 PutMedia 函数将片段流 (通常,每个片段流表示 2 到 10 秒时间的视频) 发布到 流。

使用器端将调用 GetMediaGetMediaFromFragmentList 函数来访问流中的 Matroska (MKV) 容器格式的内容,并使用包含的视频流解析器库提取所需内容。 GetMedia 旨在用于延迟非常低的持续流式传输; GetMediaFromFragment 列表是面向批处理的,并且允许有选择性地处理。

现在提供
Amazon Kinesis Video Streams 已在美国东部 (弗吉尼亚北部)美国西部 (俄勒冈)欧洲 (爱尔兰)欧洲 (法兰克福)亚太地区 (东京) 区域提供,您可立即使用它开始构建您自己的可视应用程序。

定价基于三个因素:产生的视频量、使用的视频量和存储的视频量。

Jeff