一般性问题

问:什么是 Amazon Kinesis Video Streams?

利用 Amazon Kinesis Video Streams,您可以轻松而安全地将媒体从互联设备流式传输到 AWS,用于存储、分析、机器学习 (ML)、播放以及其他处理。Kinesis Video Streams 可以自动预置和弹性扩展从数百万台设备中提取媒体流所需的所有基础设施。它可以持久存储和加密流中的媒体数据并为其创建索引,还允许您通过易用的 API 访问您的媒体。借助 Kinesis Video Streams,您可以与 Amazon Rekognition Video、Amazon SageMaker 和用于机器学习框架的各种库(例如 Apache MxNet、TensorFlow 和 OpenCV)集成,从而快速构建计算机视觉和机器学习应用程序。对于直播和点播,Kinesis Video Streams 为 HTTP 直播流式处理 (HLS) 和基于 HTTP 的动态自适应流 (DASH) 提供完全托管的功能。Kinesis Video Streams 还通过完全托管的功能 WebRTC 支持超低延迟双向媒体流。

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

时间编码数据可以是任何数据,其中的记录采用时间序列,每条记录都与其上一条和下一条记录相关联。视频是时间编码数据的一个示例,其中每个帧都通过空间转换与上一个和下一个帧相关联。其他时间编码数据示例包括音频、雷达和激光雷达信号。Amazon Kinesis Video Streams 专为经济高效地提取和存储各种类型的时间编码数据而设计,以用于分析和机器学习使用案例。

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

Kinesis Video Streams 是构建配备摄像头的 IoT 设备的媒体流应用程序及已启用实时计算机视觉的机器学习应用程序的理想选择,这些应用程序日益广泛地应用于各种使用案例,例如:

智能家居

借助 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 中的延迟?

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

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

将数据发布到流

问:如何将数据发布到 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 创建器开发工具包的 CC++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 流分析器库是开源的,因此您可以对其进行扩展以用于您的特定使用案例。

从流中播放视频

问:如何播放在我自己的应用程序中捕获的视频?

您可以使用 Amazon Kinesis Video Streams 的 HTTP 直播流式处理 (HLS) 和基于 HTTP 的动态自适应流 (DASH) 功能播放分段 MP4 或 MPEG_TS 打包格式的提取视频。HLS 和 DASH 是基于 HTTP 的行业标准媒体流协议。当您使用 Amazon Kinesis Video Streams 从设备中捕获视频时,您可以使用 HLS 或 DASH API 播放实时视频或录制的视频。此功能是完全托管的,因此您无需构建任何基于云的基础设施来支持视频播放。关于低延迟播放和双向媒体流,请参阅基于 WebRTC 的流式处理常见问题。

问:如何开始使用 Kinesis Video Streams HLS 或 DASH API?

若要使用 HLS 或 DASH 查看 Kinesis 视频流,首先使用 GetHLSStreamingSessionURLGetDASHStreamingSessionURL API 创建流会话。此操作返回用于访问 HLS 或 DASH 会话的 URL(包含会话令牌),然后您可以在媒体播放器或独立应用程序中使用该 URL 来播放流。您可以通过以编程方式或手动方式提供 HLS 或 DASH 流会话 URL,使用第三方播放器(如 Video.js 或 Google Shaka Player)显示视频流。您还可以通过在 Apple Safari 或 Microsoft Edge 浏览器的地址栏中输入 HLS 或 DASH 流会话 URL 来播放视频。此外,您还可以将 Android (Exoplayer) 和 iOS (AVMediaPlayer) 的视频播放器用于移动应用。

问:使用 Kinesis Video Streams HLS API 的基本要求是什么?

Amazon Kinesis 视频流对于通过 HLS 提供数据有以下要求:

  • 媒体必须包含 h.264 或 h.265 编码视频,并且可以选择包含 AAC 编码音频。具体来说,h.264 的轨道 1 编解码器 ID 应为 V_MPEG/ISO/AVC ,或者 h.265 的应为 V_MPEG/ISO/HEVC。或者,轨道 2 的编解码器 ID 应为 A_AAC。
  • 各个片段的视频轨道必须在高级视频编码 (AVC) 中包含用于 H.264 格式的编解码器专用数据或用于 h.265 格式(MPEG-4 规范 ISO/IEC 14496-15)的 HEVC。有关使流数据适应给定格式的信息,请参阅 NAL 适应标志
  • 数据保留必须大于 0。
  • 各个片段的音频轨道(如果有)必须包含 AAC 格式(AAC 规范 ISO/IEC 13818-7)的编解码器专用数据

问:使用 Kinesis Video Streams DASH API 的基本要求是什么?

Amazon Kinesis 视频流对于通过 DASH 提供数据有以下要求:

  • 媒体必须包含 h.264 或 h.265 编码视频,并且可以选择包含 AAC 或 G.711 编码音频。具体来说,轨道 1 编解码器 ID 应为 V_MPEG/ISO/AVC(对于 h.264)或 V_MPEGH/ISO/HEVC(对于 H.265)。或者,轨道 2 的编解码器 ID 应为 A_AAC(对于 AAC)或A_MS/ACM(对于 G.711)。
  • 各个片段的视频轨道必须在高级视频编码 (AVC) 中包含用于 H.264 格式的编解码器专用数据和用于 H.265 格式的 HEVC。有关更多信息,请参阅 MPEG-4 规范 ISO/IEC 14496-15。有关使流数据适应给定格式的信息,请参阅 NAL 适应标志
  • 数据保留必须大于 0。
  • 各个片段的音频轨道(如果有)必须包含 AAC 格式(AAC 规范 ISO/IEC 13818-7)或 MS Wave 格式的编解码器专用数据。

问:Kinesis Video Streams 中 HLS 或 DASH 流的可用回放模式是什么?

有两种不同的播放模式同时受 HLS 和 DASH 支持:直播和点播。

直播:对于实时会话,HLS 媒体播放列表随最新的可用片段而不断更新。当此类型的会话在媒体播放器中播放时,用户界面通常会显示“直播”通知,不会显示用于在播放窗口中选择位置的清理器控件。

点播:对于点播会话,HLS 媒体播放列表包含该会话的所有片段,不超过在 MaxMediaPlaylistFragmentResults 中指定的数量。针对每个会话只能检索一次播放列表。
此外,HLS 还支持 LIVE_REPLAY 模式的播放。在此模式下,HLS 媒体播放类别的更新方式与直播模式的更新方式相似,除了它从包含给定开始时间的片段开始之外。如果您希望从以前存储的媒体的某一个点开始播放并想继续直播流,此模式很有用。

问:使用 API 播放视频的延迟是多少?

实时播放的延迟通常在 3 到 5 秒之间,但这可能会有所不同。我们强烈建议运行您自己的测试和概念验证来确定目标延迟。影响延迟的因素有很多,其中包括使用案例、创建器生成视频片段的方式、视频片段的大小、播放器调整,以及用于播放的流入 AWS 和流出 AWS 的网络条件。关于低延迟播放,请参阅基于 WebRTC 的流式处理常见问题。

问:使用 HLS 或 DASH 有哪些相关限制?

一个 Kinesis 视频流最多支持十个活动的 HLS 或 DASH 流会话。如果在活动会话数量已达到最大值时创建新会话,则会关闭最旧(最早创建)的会话。Kinesis 视频流上活动的 GetMedia 连接数量不计入此限制,并且活动 HLS 会话的数量也不计入活动 GetMedia 连接限制。有关其他详细信息,请参阅 Kinesis Video Streams 限制

问:Kinesis Video Streams 和 AWS Elemental MediaLive 之间的区别是什么?

AWS Elemental MediaLive 是一款广播级实时视频编码服务。借助该服务,您能够创建高质量视频流,以传送到广播电视和连接的电视机、平板电脑、智能手机和机顶盒等连接 Internet 的多屏设备。该服务可独立运行或作为 AWS Media Services 的一部分运行。

利用 Amazon Kinesis Video Streams,您可以轻松而安全地将视频从互联设备流式传输到 AWS,用于实时和批量驱动的机器学习 (ML)、视频播放、分析和其他处理。它使客户能够构建基于机器视觉的应用程序,为智能家居、智能城市、工业自动化、安全监控等提供支持。

问:使用此功能时如何收费?

Kinesis Video Streams 使用简单的按需付费定价。没有预付费用,并且您仅需为使用的资源付费。Kinesis Video Streams 的定价基于您账户内所有视频流中提取的数据量 (GB)、通过 HLS 或 DASH API 使用的数据量 (GB) 以及存储的数据量(GB/月)。有关其他详细信息,请参阅定价页面
 

什么是 Amazon Kinesis Video Streams 边缘代理

问:什么是 Amazon Kinesis Video Streams 边缘代理?

Kinesis Video Streams 边缘代理是一组易于使用且高度可配置的库,您可以安装和自定义这些库,以实现本地视频存储和定时云上传。您可以下载边缘代理并将其部署到您的本地边缘计算设备上。或者,您可以轻松地将它们部署在 Amazon EC2 计算机上运行的 Docker 容器中。部署后,您可以使用 Amazon Kinesis Video Streams API 来更新视频录制和云上传配置。该功能适用于任何可以通过 RTSP 协议进行直播的 IP 摄像机,并且无需在摄像机上部署额外的固件。我们在 AWS Snowball Edge 设备、AWS Greengrass 组件或原生 IoT 部署上提供 Amazon Kinesis Video Streams 边缘代理安装。 有关 Amazon Kinesis Video Streams 边缘代理的访问,请参见此处

 

使用 WebRTC 进行低延迟双向媒体流式传输

问:什么是 WebRTC,Kinesis Video Streams 如何支持此功能?

WebRTC 是一个开放的技术规范,它通过简单的 API 支持跨浏览器和移动应用程序的实时通信 (RTC)。它利用对等技术在互联对等设备间实时交换数据,并提供人人交互所需的低媒体流延迟。WebRTC 规范包括一组 IETF 协议,除了用于实时媒体和数据流式传输的协议规范之外,还包括用于建立对等连接的交互式连接创建 (ICE RFC5245)、 中继 NAT 实现的穿透 (TURN RFC5766) 和 NAT 会话穿透实用工具 (STUN RFC5389)。Kinesis Video Streams 提供符合标准的 WebRTC 实现作为完全托管的功能。您可以使用此功能安全地进行媒体的实时流式传输或在任何摄像头 IoT 设备与符合 WebRTC 的移动或 Web 播放器之间执行双向音频或视频交互。借助这项全面托管的功能,您不必构建、运营或扩展任何与 WebRTC 相关的云基础设施(例如信令或媒体中继服务器)便能安全地在应用程序和设备间流式传输媒体。

问:使用 WebRTC 启用实时媒体流时,Amazon Kinesis Video Streams 能代我管理什么?

Kinesis Video Streams 为 WebRTC 信令提供托管的终端节点,从而允许应用程序之间安全地连接,实现对等的实时媒体流。接下来,它还包含用于 TURN 的托管终端节点,以便在应用程序无法流式传输对等媒体时通过云启用媒体中继。它还包含用于 STUN 的托管终端节点,以便应用程序在位于 NAT 或防火墙之后时能够发现其公有 IP 地址。此外,它还提供易于使用的开发工具包来使用 WebRTC 功能启用摄像头 IoT 设备。最后,它提供适用于 Android、iOS 和 Web 应用程序的客户端开发工具包,以将 Kinesis Video Streams WebRTC 信令、TURN 和 STUN 功能与任何符合 WebRTC 的移动或 Web 播放器相集成。

问:我可以使用 Kinesis Video Streams WebRTC 功能构建什么?

使用 Kinesis Video Streams WebRTC,您可以轻松构建应用程序以在帮助父母照看孩子房间等使用案例中进行摄像头 IoT 设备、Web 浏览器与移动设备之间的实时流媒体传输或实时音频或视频交互,使业主能够使用视频门铃查看谁在门口,使拥有摄像功能的机器人吸尘器的主人能够通过查看移动电话上的实时摄像流来远程控制机器人等等。

问:如何开始使用 Kinesis Video Streams WebRTC 功能?

首先,您可以在 Kinesis Video Streams 开发工具包中为 WebRTC 构建和运行示例应用程序,这些应用程序需要适用于 Web 浏览器, AndroidiOS 移动设备以及基于 Linux、Raspbian 和 MacOS 的 IoT 设备。您也可以通过创建信令通道并运行演示应用程序以从笔记本电脑的内置摄像头和麦克风中实时流式传输音频和视频来在 Kinesis Video Streams 管理控制台中运行此功能的快速演示版。

问:什么是信令通道?

信令通道是指可使应用程序通过交换信令消息来发现、设置、控制和终止对等连接的一种资源。信令消息是指两个应用程序为了建立对等连接而互相交换的元数据。此元数据包括媒体编解码器和编解码器参数等本地媒体信息,及两个应用程序互相连接以进行实时流式传输而可能使用的网络候选路径。

问:应用程序如何使用信令通道来启用对等连接?

流应用程序可以与信令通道维持持久的连接,可以等待其他应用程序连接它们,或者它们只能在需要实时流媒体时连接到信令通道。信令通道可使应用程序采用一个主应用程序连接多个查看器的概念在一个或多个模型中互相连接。发起连接的应用程序通过 ConnectAsMaster API 承担主应用程序的责任,并等待查看器连接。然后,多达 10 个应用程序可以通过 ConnectAsViewer API 承担查看器责任,以此连接到该信令通道。连接到此信令通道后,主应用程序和查看器应用程序可以相互发送信令消息,以建立对等连接来进行实时媒体流式传输。

问:应用程序位于 NAT 或防火墙后面时如何实时流式传输对等媒体?

应用程序使用 Kinesis Video Streams STUN 终端节点在其位于 NAT 或防火墙后面时发现其公有 IP 地址。应用程序提供其公有 IP 地址作为可能的位置,以便从其他应用程序中接收连接请求以进行实时流式传输。所有 WebRTC 通信的默认选项均为直接对等连接,但如果 NAT 或防火墙现在允许直接连接(例如,使用对称 NAT 的情况下),则应用程序可以连接到 Kinesis Video Streams TURN 终端节点以通过云中继媒体。GetIceServerConfig API 提供必要的 TURN 终端节点信息,应用程序可将该信息用于其 WebRTC 配置中。此配置允许应用程序在无法建立直接对等连接以进行实时流式传输时使用 TURN 中继作为回退。

问:Kinesis Video Streams 如何使用 WebRTC 保护实时媒体流?

端到端加密是 WebRTC 的强制功能,且 Kinesis Video Streams 在所有的组件上都实施了此功能,其中包括信令和媒体或数据流式传输。无论通信是对等的还是通过 Kinesis Video Streams TURN 终端节点进行了中继,所有的 WebRTC 通信都通过标准的加密协议进行了安全加密。信令消息使用安全 Websockets (WSS) 进行交换,数据流使用 Datagram 传输层安全性 (DTLS) 进行加密,且媒体流使用安全实时传输协议 (SRTP) 进行加密。

控制台

问:什么是 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 秒的延迟。该延迟主要来自创建器设备,因为它会将帧累积成片段,然后才通过互联网传输数据。在数据进入 Kinesis Video Streams 终端节点且您请求播放后,控制台将从持久存储中获取 H.264 媒体类型片段,并将片段转换打包为合适的媒体格式以跨不同的互联网浏览器进行播放。然后,将转换打包的媒体内容传输到您请求通过互联网播放的位置。

加密

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

服务器端加密是 Kinesis Video Streams 中的一项功能,可使用您指定的 AWS KMS 密钥在数据进入静止状态之前自动对其进行加密。数据会在写入 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 KMS 密钥免费提供。但是,您仍需支付 Kinesis Video Streams 代您使用 API 而产生的成本。AWS 会对每个 KMS 密钥(包括自定义 KMS 密钥)收取 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 将对持久存储在任何给定流下的数据总量收费。可使用保留时间来控制每个视频流中存储的数据总量。

问:使用 Kinesis Video Streams WebRTC 功能如何收费?

使用 Amazon Kinesis Video Streams WebRTC 功能时,将按照给定月份中活动的信令通道的数量、已发送和接收的信令消息的数量以及用于中继媒体的 TURN 流式传输分钟数向您收费。如果一个月中的任何时间设备或应用程序连接到某个信令通道,则该信令通道被认为在一个月内处于活动状态。TURN 流式传输分钟数以 1 分钟为增量进行计量。有关其他详细信息,请参阅定价页面

服务等级协议

问:Amazon Kinesis Video Streams SLA 提供什么保障?

我们的 Amazon Kinesis Video Streams SLA 保证 Amazon Kinesis Video Streams 的月度正常运行时间百分比至少达到 99.9%。

问:怎样确定我是否有资格获得 SLA 服务抵扣?

对于您运行任务所在的可用区,如果同一个区域内有一个以上的可用区在任何月度账单周期内的月度正常运行时间百分比没有达到 99.9%,那么您就有资格获得 Amazon Kinesis Video Streams SLA 规定的 Amazon Kinesis Video Streams SLA 抵扣。

如需 SLA 的所有条款与条件的完整详细信息,以及如何提交索赔的详细信息,请参阅 Amazon Kinesis Video Streams SLA 详细信息页面

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

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