一般性问题

问:什么是 Amazon Kinesis Video Streams?

利用 Amazon Kinesis Video Streams 让您可以轻松而安全地将视频从连接的设备流式传输到 AWS,用于分析、机器学习和其他处理。Kinesis Video Streams 可以自动预置和弹性扩展从数百万台设备中提取视频流所需的所有基础设施。它还可以持久存储、加密和索引流中的视频数据,并允许您通过易用的 API 访问您的数据。借助 Kinesis Video Streams,您可以与 Amazon Rekognition Video 和用于机器学习框架的各种库 (例如 Apache MxNet、TensorFlow 和 OpenCV) 集成,从而快速构建计算机视觉和机器学习应用程序。

问:什么是时间编码数据?

在时间编码数据中,所有记录均遵循时间序列,而且每条记录均与其前后的记录相关。视频即为一种时间编码数据,它的每个帧都通过空间转换与前一帧和下一帧相关。其他时间编码数据示例包括音频、雷达和激光雷达信号。Amazon Kinesis Video Streams 经过专门设计,旨在经济高效地接收和存储各种时间编码数据以用于分析和机器学习使用案例。

问:Kinesis Video Streams 有哪些常见使用案例?

Kinesis Video Streams 是构建已启用计算机视觉的机器学习应用程序的理想选择,这些应用程序日益广泛地应用于各种使用案例,例如:

智能家居

借助 Kinesis Video Streams,您可以将视频和音频从配备摄像头的家居设备 (例如婴儿监视器、网络摄像头和家用监视系统) 流式传输到 AWS。然后,您可以使用视数据流构建各种智能家居应用程序,包括从简单的视频播放到智能照明、温度控制系统和安全解决方案。

智能城市

许多城市在交通信号灯、停车场、购物商场等几乎所有公共场所安装了大量摄像头,全天候拍摄视频。您可以使用 Kinesis Video Streams 来安全且经济高效地接收、存储和分析此类海量视频数据,以帮助解决交通问题、防范犯罪和派遣应急人员等。

工业自动化

您可以使用 Kinesis Video Streams 收集各种时间编码数据,例如雷达和激光雷达信号、温度曲线以及工业设备的深度数据。然后您可以使用 Apache MxNet、TensorFlow 和 OpenCV 等机器学习框架来分析数据,用于预测性维护等工业自动化用途。例如,您可以预测垫圈或阀门的寿命并提前安排更换部件,从而减少停机时间和生产线上的缺陷。

问:Amazon Kinesis Video Streams 可代我管理哪些内容?

Amazon Kinesis Video Streams 是一项完全托管的视频接收和存储服务。它能让您安全地为应用程序摄取、处理和存储任何规模的视频,使其为机器人、智能城市、工业自动化、安全监控和机器学习 (ML) 等提供支持。Kinesis Video Streams 也可以接收其他类型的时间编码数据,如音频、雷达和激光雷达信号。Kinesis Video Streams 为您提供了可安装在您设备上的开发工具包,从而可以轻松安全地将视频流式传输到 AWS。Kinesis Video Streams 可以自动预置和弹性扩展从数百万台设备中摄取视频流所需的所有基础设施。它还可以持久地存储视频流并对其进行加密和编制索引,同时提供了易于使用的 API,因此应用程序可以基于标签和时间戳来访问和检索已编制索引的视频片段。Kinesis Video Streams 提供一个库来将机器学习框架 (例如 Apache MxNet、Tensorflow 和 OpenCV) 与视频流集成以构建机器学习应用程序。Kinesis Video Streams 与 Amazon Rekognition Video 相集成,从而使您能够构建用于检测对象、事件和人员的计算机视觉应用程序。

主要概念

问:什么是视频流?

视频流是一种资源,可让您捕获实时视频和其他时间编码数据,然后选择地存储数据以供实时、批量或临时使用。如果您选择在视频流中存储数据,Kinesis Video Streams 将加密该数据并对存储的数据生成基于时间的索引。在典型配置中,Kinesis 视频流只有一个向其发布数据的创建器。Kinesis 视频流支持有多个使用类应用程序处理视频流的内容。

问:什么是片段?

片段是独立的帧序列。属于某个片段的帧不应与其他片段的任何帧存在依赖关系。Kinesis Video Streams 收到片段后,将按递增顺序为其分配一个唯一的片段编号。它还可以存储创建器端和服务器端时间戳作为特定于 Kinesis Video Streams 的元数据。

问:什么是创建器?

创建器是一个泛称,指的是将数据放入 Kinesis 视频流的设备或源。创建器可以是任何视频生成设备,如安全摄像头、穿戴式相机、智能手机相机或仪表板摄像头。创建器也可以发送非视频类时间编码数据,如音频源、图像或雷达数据。一个创建器可以生成一个或多个视频流。例如,一个摄像机可以将视频数据推送一个 Kinesis 视频流,而将音频数据推送到另一个视频流。

问:什么是使用器?

使用器是您的自定义应用程序,它们可以实时使用和处理 Kinesis 视频流中的数据,或者在无需低延迟处理的情况下,也可以在持久存储数据并为其编制时间索引后进行使用和处理。您可以创建这些使用器应用程序以在 Amazon EC2 实例上运行。您也可以使用 Amazon Rekognition 等其他 Amazon AI 服务或者第三方视频分析提供程序来处理视频流。

问:什么是区块?

收到来自创建器的数据后,Kinesis Video Streams 将以区块形式存储传入的媒体数据。每个区块包括实际媒体片段、创建器发送的媒体元数据的副本,以及 Kinesis Video Streams 特定的元数据,如片段编号、服务器端和创建器端时间戳。当使用器通过 GetMedia API 操作请求媒体数据时,Kinesis Video Streams 将返回一个区块流,以您在请求中指定的片段编号开始。

问:如何看待 Amazon Kinesis Video Streams 中的延迟?

在端到端媒体数据流中,有四个关键因素会导致延迟。

  • 在设备的硬件媒体管道中花费的时间:该管道可能包括图像传感器和任何硬件编码器,具体视情况而定。从理论上讲,该时间可以像单帧持续时间一样短。但实际上,这几乎是不可能的。为了有效进行媒体编码 (压缩),所有编码器都将累积多个帧来构建一个片段。该流程和任何相应的运动补偿算法会在设备上添加从一秒到几秒不等的延迟时间,之后才能完成数据打包以进行传输。
  • Internet 上实际数据传输产生的延迟:网络吞吐量的质量和延迟会因创建设备所处的位置而显著不同。
  • 因 Kinesis Video Streams 接收创建器设备的数据而增加的延迟:传入数据可针对任何使用类应用程序即刻用于 GetMedia API 操作。如果您选择保留数据,Kinesis Video Streams 将确保使用 AWS Key Management Service (AWS KMS) 对数据进行加密,并在视频流中的各个片段上生成基于时间的索引。当您使用 GetMediaforFragmentList API 访问该保留的数据时,Kinesis Video Streams 将从持久存储中获取片段,解密数据并使其可供使用类应用程序使用。
  • 数据传输回使用器的时间延迟:Internet 上或其他 AWS 地区可能会有使用类设备请求媒体数据。根据使用类设备所处的位置,网络吞吐量的质量和延迟会显著不同。

最后,Kinesis Video Streams 管理控制台会获取支持的 H.264 媒体类型,针对各种浏览器转换打包,并支持播放流以进行开发或测试。

将数据发布到流

问:如何将数据发布到 Kinesis 视频流?

您可以通过 PutMedia 操作,或者使用 Java、C++ 或 Android 中的 Kinesis Video Streams 创建器开发工具包将媒体数据发布到 Kinesis 视频流。如果您选择直接使用 PutMedia 操作,则需要按 Kinesis Video Streams 数据规范打包媒体流,并处理流创建、令牌轮换以及将媒体数据可靠地流式传输到 AWS 云所需的其他操作。我们建议使用创建器开发工具包来简化任务并更快开始使用。

问:什么是 Kinesis Video Streams PutMedia 操作?

Kinesis Video Streams 提供了 PutMedia API 来将媒体数据写入 Kinesis 视频流。在 PutMedia 请求中,创建器将发送一个媒体片段流。Kinesis Video Streams 收到片段后,将按递增顺序为其分配一个唯一的片段编号。它还可以存储创建器端和服务器端时间戳作为特定于 Kinesis Video Streams 的元数据。

问:什么是 Kinesis Video Streams 创建器开发工具包?

Amazon Kinesis Video Streams 创建器开发工具包是一组易于使用且高度可配置的库,您可以针对特定的创建器进行安装和自定义。借助该开发工具包,可以轻松构建一款设备上应用程序,使其安全连接到视频流,并可靠地将视频和其他媒体数据发布到 Kinesis Video Streams。它负责处理所有必要的基本任务来打包设备的媒体管道生成的帧和片段。该开发工具包还可以处理流创建、令牌轮换以实现安全且无中断的流式传输,处理 Kinesis Video Streams 返回的确认并执行其他任务。

问:Kinesis Video Streams 创建器开发工具包适用于哪些编程平台?

Kinesis Video Streams 创建器开发工具包的内核使用 C 语言构建而成,因此可移植到各种硬件平台并在其中高效运行。大多数开发人员倾向于使用 Kinesis Video Streams 创建器开发工具包的 C++Java 版本。对于希望从 Android 设备流式传输视频数据的移动应用程序开发人员,我们还提供了 Android 版本的创建器开发工具包。

问:在开始使用 Kinesis Video Streams 创建器开发工具包之前,我应该注意什么?

Kinesis Video Streams 创建器开发工具包负责处理有关打包帧和片段的所有繁重操作,建立安全连接,以及可靠地将视频流式传输到 AWS。然而,该开发工具包上运行着很多不同类型的硬件设备和媒体管道。为了更轻松地与媒体管道集成,我们建议掌握关于以下方面的一些信息:1) 帧边界;2) 用于边界的帧的类型:I-frame 或非 I-frame;以及 3) 帧编码时间戳。

读取流中的数据

问:什么是 GetMedia API?

您可以使用 GetMedia API 来检索 Kinesis 视频流中的媒体内容。在请求中,您需要指定流名称或流的 Amazon Resource Name (ARN) 以及起始区块。然后,Kinesis Video Streams 将返回一个按片段编号排序的区块流。当您在流上放置媒体数据 (片段) 时,Kinesis Video Streams 将在所谓的“区块”中存储每个传入片段和相关元数据。GetMedia API 将返回这些区块的流,从您在请求中指定的区块开始。

问:什么是 GetMediaForFragmentList API?

您可以使用 GetMediaForFragmentList API 从 Kinesis 视频流中的存档数据中检索媒体数据,以获取片段列表 (按片段编号指定)。通常,在调用该 API 操作之前会调用 ListFragments API

问:什么是 ListFragments API?

您可以使用 ListFragments API 从保留数据中的指定视频流和起始位置 (使用片段编号或时间戳) 返回一个片段列表。

问:可在 Kinesis Video Streams 中存储数据多长时间?

将数据存储在其流中的时长可根据您的需要而定。Kinesis Video Streams 支持配置数据保留期以满足您的存档和存储要求。

问:什么是 Kinesis Video Streams 分析器库?

Kinesis Video Streams 分析器库可使开发人员轻松地使用和处理 Kinesis Video Streams GetMedia 操作的输出。应用程序开发人员将在运行于视频流上的视频分析和处理应用程序中添加该库。这些应用程序本身将在您的 EC2 实例上运行,尽管它们可以在其他位置运行。借助该库的一些功能,您可以轻松获得帧级对象及其相关元数据,并提取和收集附加到片段和连续片段的 Kinesis Video Streams 特定元数据。然后,您可以构建自定义应用程序,以便更轻松地将原始视频数据用于您的使用案例。

问:如果我的自定义处理应用程序需要使用 Kinesis 视频流携带的帧 (和片段),我应该怎么做?

一般来说,如果您要使用视频流,并对其进行操作以满足您的自定义应用程序的需求,则需考虑两个主要步骤。首先,获得 GetMedia API 发布的格式化流内的帧中的字节。您可以使用流分析器库来获取帧对象。其次,获取必要的元数据以解码帧,如像素高度、宽度、编解码器 ID 和编解码器私有数据。此类元数据嵌入在追踪元素中。分析器库提供了帮助程序类来收集片段的追踪信息,因而使此信息的提取更加轻松。

第三步对应用程序的依赖性较高。您可能想要对帧进行多种操作,如解码,进行格式化以用于播放引擎,进行转码以用于内容分发,或者将其导入自定义的深度学习应用程序格式。Kinesis Video Streams 流分析器库是开源的,因此您可以对其进行扩展以用于您的特定使用案例。

控制台

问:什么是 Kinesis Video Streams 管理控制台?

借助 Kinesis Video Streams 管理控制台,您可以创建、更新、管理和监控视频流。该控制台还可以实时或按需播放您的媒体流,只要流中内容具有支持的媒体类型。使用播放器控件,您可以查看实时流、向前或向后跳转 10 秒,以及使用日期和时间选择器倒回过去的某个时间点 (您已为视频流设置相应的保留期)。Kinesis Video Streams 管理控制台的视频播放功能作为快速诊断工具提供,开发人员可在使用 Kinesis Video Streams 构建解决方案时用它来进行开发和测试。

问:该控制台支持哪种媒体类型?

Kinesis Video Streams 管理控制台中唯一支持的视频媒体类型是常用的 H.264 格式。该媒体格式在设备、硬件和软件编码器以及播放引擎上受到广泛支持。您可以为自己的使用器应用程序和使用案例摄取各种视频、音频或其他自定义的时间编码数据类型,但该管理控制台不会播放其他数据类型的内容。

问:在 Kinesis Video Streams 管理控制台上播放视频的延迟情况如何?

对于将视频数据传输到视频流的创建器,您在 Kinesis Video Streams 管理控制台中进行实时播放时将体验到 2 到 10 秒的延迟。该延迟主要来自创建器设备,因为它会将帧累积成片段,然后才通过 Inetnet 传输数据。在数据进入 Kinesis Video Streams 终端节点且您请求播放后,控制台将从持久存储中获得 H.264 媒体类型片段,并将片段转换打包为合适的媒体格式以跨不同 Internet 浏览器进行播放。然后,转换打包的媒体内容将传输到您请求通过 Internet 播放的位置。

加密

问:什么是 Kinesis Video Streams 的服务器端加密?

服务器端加密是 Kinesis Video Streams 中的一项功能,可使用您指定的 AWS KMS 客户主密钥 (CMK) 在数据进入静止状态之前自动对其进行加密。数据会在写入 Kinesis Video Streams 存储层之前获得加密,并在从存储中检索出来后进行解密。因此,您的数据在 Kinesis Video Streams 服务中始终处于静态加密状态。

问:如何开始使用服务器端加密?

服务器端加密在 Kinesis 视频流上始终处于启用状态。如果在创建流时未指定用户提供的密钥,则将使用默认密钥 (由 Kinesis Video Streams 提供)。

在创建 Kinesis Video Streams 流时,必须为其分配用户提供的 AWS KMS 主密钥。您稍后无法使用 UpdateStream API 来向流分配其他密钥。

您可以通过两种方式将用户提供的 AWS KMS 主密钥分配到 Kinesis 视频流:在控制台中创建 Kinesis 视频流时,在“新建 Kinesis 视频流”页面的“加密”部分指定 AWS KMS 主密钥。或者在使用 CreateStream API 创建 Kinesis Video Streams 流时,在 KmsKeyId 参数中指定密钥 ID。

问:使用服务器端加密如何收费?

在应用服务器端加密时,您需要支付 AWS KMS API 使用费和密钥费用。与自定义 AWS KMS 主密钥不同,(默认) aws/kinesis-video 客户主密钥 (CMK) 免费提供。但是,您仍需支付 Kinesis Video Streams 代您使用 API 而产生的费。AWS 会对每个 CMK (包括自定义 CMK) 收取 API 使用费。轮换数据键时,Kinesis Video Streams 大约每 45 分钟调用一次 AWS KMS。在 30 天的月份中,由 Kinesis Video Streams 流发起的 AWS KMS API 调用的总成本应该不超过几美元。此费用将因您在数据创建器和使用器上使用的用户证书数量而异,因为每个用户证书需要对 AWS KMS 进行唯一的 API 调用。

定价与计费

问:AWS 免费套餐是否提供 Amazon Kinesis Video Streams?

不包含。Amazon Kinesis Video Streams 当前不在 AWS 免费套餐中提供。

问:Kinesis Video Streams 如何收费?

Kinesis Video Streams 使用简单的按需付费定价结构。这里不存在预付费用或最低费用,您仅需为使用的资源付费。Kinesis Video Streams 的定价基于您账户内所有视频流中摄取的数据量 (GB)、使用的数据量 (GB)以及存储的数据量 (GB/月)。

而且,Kinesis Video Streams 将仅对已成功接收的媒体数据收费,最小区块大小为 4KB。可以做个比较,64kbps 音频示例的大小为 8KB,因此设置的最小区块大小非常低,足以适应最小的音频或视频流。

问:Kinesis Video Streams 如何对存储在流中的数据收费?

Kinesis Video Streams 将对持久存储在任何给定流下的数据总量收费。可使用保留时间来控制每个视频流中存储的数据总量。

了解有关 Amazon Kinesis Video Streams 定价的更多信息

访问定价页面
准备好开始使用?
注册
还有更多问题?
联系我们