安防视频云存业务特点与面临挑战
传统视频数据因为不足元数据索引,因而在无奈确定准确的事件产生工夫时,无奈疾速无效的定位视频信息,须要大量人力对存量视频信息进行检索。由此引入微小的人力老本,并须要更多工夫实现视频检索。
此外,传统安防视频具备以下特点:
- 应用 RTMP/RTSP 协定实现视频流收流。
- 须要海量、牢靠的视频存储。
- 仅在有事件产生,并须要理解现实情况时才进行回看。
- 回看框架须要确保 7 *24 可用,在须要时能够快速访问从而实现回看性能。
以上特点意味着:
- 须要在云端或本地部署额定的软 / 硬件资源,实现视频流接管,引入额定老本。
- 传统的本地视频存储受限于繁多正本,存在单点故障导致的视频失落危险。固定的本地存储容量,使得减少摄像头数量时须要配套思考存储设施容量布局和部署计划,使得我的项目周期变长,我的项目布局更加简单。
- 回看框架拜访频率不高,但 7 *24 可用意味着即便没有回看需要的时间段内,依然须要领取对应的零碎运行老本。
针对以上艰难和特点, 咱们针对 IPC 视频云存老本优化场景,开发了能够植入到 IPC 外部的视频切片云存 SDK,并利用亚马逊云科技提供的云上托管服务构建视频检索、回看平台,从而升高回看平台根底运行老本,实现回看老本与累积回看时长相干,在不应用回看平台时,简直无需领取平台运行老本,而当有人拜访时又能够疾速提供服务。
📢 想要理解更多亚马逊云科技最新技术公布和实际翻新,敬请关注在上海、北京、深圳三地举办的 2021 亚马逊云科技中国峰会!点击图片报名吧~
解决方案架构与次要功能模块
零碎架构图:
次要功能模块:
- IPC C SDK
植入到 IPC 外部的 SDK,用于实现视频分片和封装,将能够间接回看的视频分片存储到 Amazon S3 存储桶中。并通过 IAM 权限治理,实现 IPC 上传权限的治理,从而确保各 IPC 视频上传权限互相独立。
利用 SDK 间接将视频上传至 Amazon S3 存储桶,从而解脱本地或云端视频流转存所需的资源,实现云存老本与存储视频累计时长相干。
- Amazon S3 视频存储桶
用于存储 IPC 视频分片信息,反对应用 Amazon S3 对象标签和生命周期治理性能,实现视频分片保留周期治理和视频存储老本优化。
同时,利用 Amazon S3 每个前缀提供 3500 PUT 和 5500 GET 申请的性能,利用前缀命名规定,实现云存空间性能主动扩大,从而实现应用对立的框架反对从几个到数以百万计的 IPC 设施。
- 对视频抽帧并调用 AI 接口和 DynamoDB 元数据存储
针对传统 IPC 视频存储难以检索的状况,引入云上 AI 服务,实现智能视频剖析,并依据视频内容,生成相应元数据信息,并保留在 DynamoDB 之中。用户能够抉择应用 DynamoDB 中信息,对视频内容进行检索,从而疾速定位到所需的视频片段和对应工夫,进而无效晋升视频检索效率,缩短视频检索所需工夫。
- AI 服务
亚马逊云科技提供了丰盛的 AI 服务能够用于视频剖析与检索。目前反对的次要 AI 服务能够参考以下解决方案:
https://www.amazonaws.cn/solu…
因为 AI 服务局部内容较多,限于篇幅,该解决方案另行刊文作具体介绍。敬请期待。
- 无服务器架构构建回放平台
为了切实升高回看平台运行老本,特地是没有回看申请时的老本,本解决方案采纳了云原生的无服务器架构。具备无用户应用时,老本极低,收到申请时反对秒级疾速启动,主动扩大,对立零碎架构反对几个到数以百万计的用户同时拜访。
IPC-C-SDK
用户能够从 Github 下载 SDK 代码并编译到本人的 IPC 之中:
https://github.com/aws-sample…
IPC-C-SDK 外部工作逻辑如下:
IPC-C-SDK 从 IPC 外部视频、音频编码器取得视频、音频流,并通过减少 TS、PAT、PMT、PES 头,造成 TS 格局音视频流,并存储于 IPC SoC 内存缓存区中。
当内存缓存区中的音视频流达到肯定阈值后,IPC-C-SDK 会主动通过内置 Amazon S3 客户端,将视频内容以对象模式推送到 Amazon S3 存储桶中。
得益于 IPC-C-SDK,视频分片得以间接存储到 Amazon S3 中,而无需其余音视频码流解决设施或资源。从而使得老本得以无效升高到仅须要 Amazon S3 存储和 API 调用老本的水平。实现了老本的最优化。
IPC-C-SDK 应用亚马逊云科技 IAM 进行权限治理。反对 AK+SK 和 AK+SK+Token 的身份验证模式。理论生产环境中,举荐应用 Amazon IoT 进行设施治理,配合 IoT Credential Provider 服务,实现物联网设施证书换长期 IAM 身份信息。该计划提供最佳的云上数据安全性,反对依照设施证书 ID 治理设施权限,从而确保 IPC 云存视频的安全性。其参考架构如下:
用户能够参考以下文档:
https://docs.aws.amazon.com/i…
Amazon S3 视频存储桶
Amazon S3 视频存储桶提供高达 99.999999999% 的数据持久性。意味着如果以 3 秒分片保留到 Amazon S3,每 10000 年才会失落一个 3 秒的视频分片。从而确保存储视频的安全性。
此外,在视频云存时,举荐应用以下格局进行存储:
S3://{桶名称}/{设施证书 ID}
/{年}/{月}/{日}/{时}/{分}/{秒}.ts
该格局能够提供以下劣势:
- 确保数据存储和拜访平安
利用设备证书 ID 作为第一级前缀,实现各个 IPC 设施之间的权限互相独立与隔离。即每个摄像头均只能拜访本人证书 ID 前缀之下的视频分片。通过 IAM 角色配置,更加能够实现限度 IPC 设施仅可能进行上传操作,而无奈下载视频分片,从而确保视频云存安全性。
- 性能主动扩大
因为各个 IPC 别离属于不同的前缀之下,亚马逊云科技为每个 Amazon S3 前缀提供每秒 3500 PUT 和 5500 GET 申请的性能,因而当 IPC 摄像头数量减少时,Amazon S3 将主动优化并提供对应性能的解决能力。从而实现应用对立架构反对从几个到数以百万计 IPC 设施的能力。
视频抽帧并调用 AI 接口将后果存储到 DynamoDB 中
当视频分片上传到 Amazon S3 存储桶中后,用户能够抉择应用 AI 技术对视频内容进行剖析。例如:检测视频中呈现的人脸和相应地位,并将后果保留到 DynamoDB 中,供后续查问应用。
视频数据在上传到 Amazon S3 后,会触发 Amazon S3 事件告诉。通过云端 Lambda 函数,能够实现抽取视频关键帧,并转换为 JPEG 格局,发送给 AI 接口进行剖析。
AI 剖析的后果会以 JSON 格局,返回给 Lambda 函数,Lambda 函数将剖析后果信息存储到 DynamoDB 数据库中,供回看平台检索应用。
无服务器架构构建视频回看平台
得益于以 TS 格局保留的视频分片,云存视频分片能够实现任意时间段内分片连接成整体视频进行回看。因而无需在云端进行二次转码操作。从而升高零碎老本。
无服务器的视频回看平台应用开源 Video.js 框架,提供两种回看模式:
- 近实时回看(提早 6 -20 秒,取决于网络和客户端配置状况)
在近实时回看模式下,客户端通过 API Gateway HTTP API 申请 m3u8 播放列表,Lambda 函数查看 Amazon S3 桶中存储的分片,并将 2 分钟之内,最初上传的 3 个视频分片返回给客户端。通过滚动更新 m3u8 返回分片清单,实现近实时的查看视频内容。
- 指定时间段回看
客户端通过 API Gateway HTTP API 申请 m3u8 播放列表,并提供回看时间段的开始、截止工夫。Lambda 函数查看 Amazon S3 桶中存储的分片,并将指定时间段内的视频分片依照程序增加到 m3u8 播放列表中返回给客户端,从而实现制订时间段的视频回看性能。
指定时间段回看反对通过检索 DynamoDB 中存储的视频元数据,获取所需回看的时间段范畴,将后果返回给客户端进行回看。
您能够通过以下链接在亚马逊云科技的环境中一键部署回看框架。框架中的回看利用带有示例视频供您参考。
https://console.aws.amazon.co…
📢 7 月 21- 7 月 22 号,上海世博核心,2021 亚马逊云科技中国峰会——上海站强势登陆!没有报名的你,还不赶快点击上方卡片,速速报名!胜利报名参会的 Builders 也要记得准时参会哦~
本篇作者
李挚
亚马逊云科技 解决方案架构师
徐高伟
亚马逊云科技 翻新解决方案架构师
陈海云
亚马逊云科技 UI / UX 开发人员
李智勤
亚马逊云科技 物联网原型架构师