Link Visual提供视频数据上云、存储、转发、AI计算等能力,提供设备端SDK、支持各种标准的适配与统一。配合阿里云物联网标准化物模型,可实现最轻量级的设备上云连接。同时提供自有品牌App开发需要的相关API或SDK,帮助您快速完成视频场景搭建。
方案简介
Link Visual主要面向的场景包括:家用级别的安防监控、视频采集直播存储场景,提供一整套的设备连接,云端开发控制等功能,另外辅助以云端转发、存储、视频AI等增值扩展服务,解决客户安防场景下的远程视频观看、存储、报警与控制需求等。主要提供以下功能。
- 云端摄像头视频直播
- 摄像头云端视频存储
- 云端、本地TF存储录像播放
- 语音对讲
- 远程摄像头控制
- 摄像头规则管理(报警、抓图、录像、检测识别等)
- 必要的SDK、API接口与开放文档手册
- 设备数据分析、云存储资源购买等运营管理功能
Link Visual产品的功能链路如下。

名词 | 说明 |
---|---|
LinkVisual App SDK | LinkVisual App端SDK,支持Android/iOS平台,包括播放器模块和语音对讲模块 |
LinkVisual Device SDK | LinkVisual设备端SDK,支持Linux和Android平台 |
LinkVisual视频服务API | LinkVisual云服务提供的一系列与视频相关的API,例如:录像计划设置、事件联动录像规则、设备绑定关系等 |
收费说明
产品的服务收费由两部分组成。
- 设备连接费用
设备使用基础的阿里云物联网平台&视频接入服务,每台设备可以根据实际预计的带宽占用,购买不同规格的设备激活码。详细参见购买激活码。
说明 阿里云会统计实际带宽占用,如设备平均带宽超过其激活码的限制,阿里云将采取包括但不限于限制带宽、丢帧等措施。所以请根据实际使用场景选择合适规格的设备激活码。 - 云存储套餐费用
LinkVisual增值提供视频数据云端存储服务套餐,服务套餐每月按照设定的存储周期存储数据,循环存储一个月为一个最小套餐单位。例如,开通套餐后,视频数据以X天为最长周期滚动循环存储,当第X+1天数据产生时,则覆盖删除距离X+1天最远的历史存储数据。
以上具体收费标准,请以服务购买中实际价格为准。
整体流程
相关文档
- 云存储购买对接文档:LinkVisual视频云存储购买服务
- Link Visual设备端SDK文档:IPC(Linux)、IPC(Android)、NVR(Linux)(待补充,敬请期待)
- Link Visual客户端SDK文档:Android、iOS、PC(待补充,敬请期待)
- Link Visual API文档:LinkVisual视频服务
- Demo App文档:Android、iOS(待补充,敬请期待)
直播功能开发
直播视频支持H264/H265,音频支持G711A/AAC_LC。采用RTMP云转+P2P混合方式,在保证直播稳定性的同时降低成本。
直播的物模型如下。
标识符 | 功能类型 | 功能名称 | 描述 | 开发指南 |
---|---|---|---|---|
StartPushStreaming | 服务 | 开始直播 | 通知设备开始直播RTMP推流,当有播放端观看或者需要做云存录制时触发,同一码流已有推流则不再触发 | 无需开发者关注,请开发者关注设备端SDK接口 |
StopPushStreaming | 服务 | 停止直播 | 通知设备停止直播RTMP推流 | 无需开发者关注,请开发者关注设备端SDK接口 |
StartP2PStreaming | 服务 | 开始P2P直播 | 通知设备开始P2P直播 | 设备端SDK内部处理,控制台需要勾选,无需端侧开发者响应 |
EncryptTypeList | 属性 | 加密类型列表 | 设备端上报支持的加密类型 | 设备端SDK内部处理,无需开发者关注 |
StreamVideoQuality | 属性 | 主码流视频质量 | 用于做主码流清晰度切换,要求开机及状态变更时上报 | App和设备开发者需要关注并处理该物模型 |
SubStreamVideoQuality | 属性 | 辅码流视频质量 | 用于做辅码流清晰度切换,要求开机及状态变更时上报 | App和设备开发者需要关注并处理该物模型 |
EncryptSwitch | 属性 | 加密开关 | 加密开关,建议设备实现时默认开启,要求开机及状态变更时上报 | App和设备开发者需要关注并处理该物模型 |
- 视频播放
LinkVisual App SDK提供直播播放器,集成请参见Android LinkVisual App SDK和iOS LinkVisual App SDK。
- P2P支持
P2P支持需要同时接入LinkVisual Device SDK和LinkVisual App SDK。播放时会尽可能的尝试P2P连接,以减小成本开销。后台会对P2P的成功率进行统计,发现P2P成功率出现异常会通知开发者检查原因,若不修复有可能拒绝服务。
App端P2P依赖生活物联网平台的长连接通道,需要App初始化长连接通道SDK,并完成长连接通道与账号绑定。请参见Android长连接SDK和iOS长连接SDK。
- 确认设备端P2P是否集成成功
设备端SDK集成完毕后,确保DemoApp和IPC设备连在同一个WiFi下,将DemoApp的测试信息开关打开后,进入直播页面,左上角RELAY代表RTMP云转,LOCAL代表P2P直连,SRFLX代表P2P穿透。
- 确认自有App P2P是否集成成功
在首帧后5S调用播放器的播放获取播放器当前流的连接类型接口来获取当前流类型,若RELAY代表RTMP云转,LOCAL代表P2P直连,SRFLX代表P2P穿透。
- 确认设备端P2P是否集成成功
- 视频加密
为保证视频数据安全,SDK支持对音视频帧的加密,推荐App端开启全链路加密。App端可调用物模型API(Android/iOS)设置物模型属性(EncryptSwitch)开启或关闭加密。
- 清晰度切换
App端可通过调用物模型API(Android/iOS)查询主辅码流清晰度物模型属性(StreamVideoQuality/SubStreamVideoQuality)用于UI上展示当前播放码流清晰度,App端设置该物模型属性来改变码流清晰度,设备收到物模型属性设置后,切换码流清晰度重新推流,播放器SDK已支持码流自适应。
- 截图和录屏
播放器SDK提供了截图和录屏接口,详细参见Android LinkVisual App SDK和iOS LinkVisual App SDK。
- 减少首帧延迟(强制I帧)
在有新的播放端观看时,会要求设备立即编码I帧,从而减少直播首帧延迟。参考设备端和App的文档响应和发起强制I帧。
云存录像功能开发
云存录像的使用需要为用户开通云存空间,详细参见LinkVisual视频云存储购买服务。
- 介绍
云存录像来源有以下三种。
- 计划录像
以周为一个循环单位,每周一天或多天的时间段内,云端主动通知设备端推流并转存到云存空间。例如:配置周一至周五全天的计划录像。
- 事件联动录像
设备主动上报事件,且该事件在事先配置的事件录像计划内,云端通知设备端推流一段时间并转存到云存空间。例如:配置每天白天8点到晚上8点的报警事件录像计划,当设备在该时间端触发移动侦测报警时,云端通知设备推流(支持预录)一段时间。
- 主动录像
App通过调用API接口(主动触发设备进行短录像任务)来实现,云端主动通知设备端推流一段时间数据并转存到云存空间。
- 计划录像
- 配置录像计划
为设备配置录像计划的一般步骤为:
- 创建录像计划,得到planId
- 将planId与设备iotId绑定
更多接口如配置/更新/解绑/删除/查询等,查看LinkVisual视频服务。
- 配置事件联动录像计划
为设备配置事件联动录像计划的一般步骤为:
- 创建事件联动录像计划,得到planId
- 将planId与设备iotId绑定
更多接口如配置/更新/解绑/删除/查询等,查看LinkVisual视频服务。
- 获取云存录像播放地址
有几种途径获取云存录像播放地址:
- 根据时间范围查询云存的录像列表, 按文件名获取云存录像点播地址。
- 根据时间范围获取事件列表,依据事件关联录像文件名获取事件联动云存录像点播地址。
- 播放云存录像
云存录像使用HLS作为流媒体播放协议。
- Android LinkVisual App SDK提供基于ExoPlayer封装的ExoHlsPlayer用于HLS流播放。
- iOS SDK提供基于AVFoundation封装的IMSLinkVisualHLSPlayer用于HLS流播放。
- 云存录像下载
支持云存录像下载后播放,查看LinkVisual视频服务。
- 视频加密
云存录像默认开启AES-128加密。
设备录像点播功能开发
一般IPC设备会配备独立的大容量存储介质,用于不间断记录摄像头捕捉的视频内容,这部分录像不适合上云,因此在后期对录像做回溯时需要用到设备录像点播功能。
设备录像点播物模型如下。
标识符 | 功能类型 | 功能名称 | 描述 | 开发指南 |
---|---|---|---|---|
StartVodByTime | 服务 | 按时间方式开始观看录像 | 通知设备开始点播RTMP推流 | 无需开发者关注,请开发者关注设备端SDK接口 |
QueryRecordTimeList | 服务 | 查询录像时间列表 | App发起并由设备端响应查询请求,返回指定查询时间区间内有录像内容的时间段列表 | App和设备开发者需要关注并处理该物模型 |
StartVod | 服务 | 按单个文件方式开始观看录像 | 通知设备开始点播RTMP推流 | 无需开发者关注,请开发者关注设备端SDK接口 |
QueryRecordList | 服务 | 查询录像文件列表 | App发起并由设备端响应查询请求,返回指定查询时间区间内有录像内容的文件列表 | App和设备开发者需要关注并处理该物模型 |
QueryMonthRecord | 服务 | 查询某月有录像的天信息 | App发起并由设备端响应查询请求,返回指定月份哪些天有录像数据 | App和设备开发者需要关注并处理该物模型 |
EncryptSwitch | 属性 | 加密开关 | 加密开关,建议设备实现时默认开启,要求开机上报 | App和设备开发者需要关注并处理该物模型 |
FormatStorageMedium | 服务 | 格式化存储介质 | App发起并由设备端响应格式化存储介质 | App和设备开发者需要关注并处理该物模型 |
StorageRecordMode | 属性 | 存储介质录像模式 | App可设置当前设备存储介质录像模式为(不录像/事件录像/全天录像),要求开机上报 | App和设备开发者需要关注并处理该物模型 |
StorageStatus | 属性 | 存储介质状态 | App可获取当前设备存储介质状态,要求设备开机及存储介质状态变更时上报 | App和设备开发者需要关注并处理该物模型 |
StorageRemainCapacity | 属性 | 剩余存储空间 | App可获取当前设备存储介质状态,要求设备开机及存储介质状态变更时上报 | App和设备开发者需要关注并处理该物模型 |
StorageTotalCapacity | 属性 | 总存储空间 | App可获取当前设备存储介质状态,要求设备开机及存储介质状态变更时上报 | App和设备开发者需要关注并处理该物模型 |
- 按单个文件方式点播
对设备本地单个录像文件的点播回,实现分为以下几步。
- App端调用物模型服务(QueryRecordList)获取某个时间段的设备端录像文件列表。
- 设备端响应物模型服务(QueryRecordList),查询完毕并将结果返回给App展示。
- 用户选中列表的某一文件播放,App端调用API接口(按文件名获取播放)来播放录像。
说明- 物模型服务(QueryRecordList)返回结果有大小限制,App端查询设备端录像文件列表时需要做分页查询,每页建议10条数据。
- 设备端响应物模型服务(QueryRecordList)必须在3S内查询完毕,否则会触发超时导致查询失败。
- 按单个文件方式点播模式下,获取播放文件长度为该文件的实际长度。
- 按单个文件方式点播模式下,如果播放到文件末尾,则设备端显式发出推流结束指令告知App播放完毕,但不断开连接允许再次seek。
- 按单个文件方式点播模式下,seek命令,App发送相对于文件开始的相对时间偏移,单位秒。
- 按时间段方式点播
有些设备存储在本地的录像文件是按固定时间拆分的单个小文件。例如1分钟一个文件,拉取一天的录像列表会非常大,并且单个文件的请求播放实现上很不友好。对于这种存储方式,按照单个文件点播方式并不适用,因此提供了按时间段方式点播,设备端SDK会对时间相邻的小文件做合并,将起止时间段内的部分作为一个大文件播放,同时允许播放中起止时间段内任意位置可seek,实现分为以下几步。
- App调用物模型服务(QueryRecordTimeList)获取某个时间区间(一般为1天)内哪些时间段有录像。
- 设备端响应物模型服务(QueryRecordTimeList),查询完毕将结果返回给App展示。
- App调用API接口(按时间请求本地录像播放)来播放录像,默认连接建立后从时间区间的第一个时间端开头开始播放,如需要做偏移,可在发起请求时指定seekTime来做初始偏移。
说明- 物模型服务(QueryRecordTimeList)返回结果有大小限制,App端查询设备端录像文件列表时需要做分页查询,每页建议10条数据。
- 设备端响应物模型服务(QueryRecordTimeList)必须在3S内查询完毕,否则会触发超时导致查询失败。
- 按时间段方式点播模式下,设备端默认开启连续播放,即一段录像文件播放完毕后,自动开始下个文件的推流。若App端需要实现非连续播放的时间轴设备录像效果,推荐使用单个文件方式点播模式来实现。
- 按时间段方式点播模式下,若seek指令下发的时间偏移量上无视频内容,则设备端SDK默认实现向后寻找到接下来最近的视频内容起始点开始推流。
- 按时间段方式点播模式下,如果APP下发seek时间后无录像,设备端显式发出推流结束指令告知App播放完毕,但不断开连接允许再次seek。
- 按时间段方式点播模式下,获取播放文件长度为发起播放请求时的起止时间端(endTime-beginTime)的时长。
- 按时间段方式点播模式下,seek命令,APP发送相对于BeginTime的相对时间偏移,单位秒。
- 设备推流
与直播类似,设备推流速率应不小于内容原始生成速率,建议略快于内容原始生成速率,1.1倍左右。当播放端接收缓存水位超过75%时会通知设备暂停推流,直到播放端缓存水位低至25%时重新通知设备继续推流,因此设备应响应暂停/恢复指令。除此之外设备还需要响应文件seek操作,为了较精确的响应seek位置,录像文件GOP不宜设置过大。
- 倍速播放
暂时还未支持
- 点播播放器
较于直播播放器点播播放器增加暂停/恢复、跳至指定位置播放、获取总时长、获取当前时长接口,请参见LinkVisual视频服务。
语音对讲功能开发
提供App和IPC设备之间端到端的实时音频传输能力。支持音频格式包括:G711a/G711u/AAC_LC/PCM。
对讲由App端发起,由设备端响应,集成过程详见LinkVisual视频服务和LinkVisual视频设备开发概览。
语音对讲的物模型如下。
标识符 | 功能类型 | 功能名称 | 描述 | 开发指南 |
---|---|---|---|---|
StartVoiceIntercom | 服务 | 开始语音对讲 | 通知设备开始语音对讲 | 无需开发者关注,请开发者关注设备端SDK接口 |
StopVoiceIntercom | 服务 | 停止语音对讲 | 通知设备停止对讲 | 无需开发者关注,请开发者关注设备端SDK接口 |
- 对讲模式
对讲模式 设备端 App 依赖 双向实时对讲 实时收发音频 实时收发音频 设备需要MIC和Speaker,设备和App均需要支持回声消除 单向实时对讲 实时收音频 实时发送音频 设备需要Speaker - 链路加密
为确保数据安全,默认启用AES-128全帧加密。
事件上报功能开发
提供设备事件上报的能力,用于侦测报警及故障上报等功能。服务端处理事件最小时间间隔为10秒,过频的事件上报不会被处理。
事件上报的物模型如下。
标识符 | 功能类型 | 功能名称 | 描述 | 开发指南 |
---|---|---|---|---|
AlarmEvent | 事件 | 报警事件 | 设备主动上报事件如移动侦测/声音侦测等事件的上报 | 无需开发者关注,请开发者关注设备端SDK接口 |
AlarmSwitch | 属性 | 报警开关 | App设置和获取设备当前报警开关状态,若关闭则设备不开启所有报警事件上报,设备在状态变更及开机时主动上报 | App和设备开发者需要关注并处理该物模型 |
AlarmNotifyPlan | 属性 | 报警提醒计划 | App设置和获取设备当前报警计划,定义设备何时开启报警提醒,设备在状态变更及开机时主动上报 | App和设备开发者需要关注并处理该物模型 |
AlarmFrequencyLevel | 属性 | 报警频率 | App设置和获取设备当前报警频率,设备在状态变更及开机时主动上报 | App和设备开发者需要关注并处理该物模型 |
MotionDetectSeneitivity | 属性 | 移动侦测灵敏度 | App设置和获取设备当前设置的移动侦测灵敏度,设备在状态变更及开机时主动上报 | App和设备开发者需要关注并处理该物模型 |
VoiceDetectionSensiticity | 属性 | 声音侦测灵敏度 | App设置和获取设备当前设置的声音侦测灵敏度,设备在状态变更及开机时主动上报 | App和设备开发者需要关注并处理该物模型 |
Error | 事件 | 故障事件 | 设备主动上报故障事件 | App和设备开发者需要关注并处理该物模型 |
抓图功能开发
抓图的物模型如下。
标识符 | 功能类型 | 功能名称 | 描述 | 开发指南 |
---|---|---|---|---|
TriggerPicCapture | 服务 | 触发设备抓图 | 通知设备抓图并上报到给定URL | 无需开发者关注,请开发者关注设备端SDK接口 |
- 主动抓图
由App端主动通知设备抓图,流程如下。
- App调用LinkVisual API(主动抓图)通知设备抓图。
- 设备响应物模型服务(TriggerPicCapture)调用,触发抓图,并将图片通过HTTP POST方式上传至给定URL。
- 事件关联抓图
由设备主动上报报警事件,并联动触发抓图,流程如下。
- 设备侦测到报警,抓取图片,生成图片ID,上报该报警事件
- 服务端接收报警事件,并触发设备物模型服务(TriggerPicCapture)
- 设备响应物模型服务(TriggerPicCapture)调用,将已抓取的对应图片ID图片通过HTTP POST方式上传至给定URL。
- App对图片的展示和管理
App调用LinkVisual API中图片相关接口来展示和管理图片。
- 根据时间查询图片列表
获取指定时间范围内所有图片缩略图和大图地址
- 根据图片ID查询图片地址
图片ID可以从事件列表中获取,用于展示报警事件相关的图片
- 批量删除图片
根据图片ID列表删除指定图片,单次不超过100张
- 根据时间查询图片列表
其他功能开发
- 设备PTZ控制
PTZ控制的物模型如下。
标识符 功能类型 功能名称 描述 开发指南 PTZActionControl 服务 PTZ步进控制 App发起并由设备响应该服务,触发 App和设备开发者需要关注并处理该物模型 PTZCalibrate 服务 PTZ校准 App发起并由设备响应该服务,触发设备做PTZ校准操作 App和设备开发者需要关注并处理该物模型 建议App端按1秒4次的频率调用物模型服务(PTZActionControl)向设备发送控制脉冲。设备需保证物模型服务响应即使处理不出现积累,允许忽略同方向上来不急处理的物模型服务调用。
- 设备属性
我们提供了摄像头品类的标准物模型,其中包括对以下定义如下。
标识符 功能类型 功能名称 描述 开发指南 DayNightMode 属性 日夜模式 App设置和获取设备当前的日夜模式,设备在状态变更时及开机时主动上报 App和设备开发者需要关注并处理该物模型 DayNightMode 属性 日夜模式 App设置和获取设备当前的日夜模式,设备在状态变更及开始时主动上报 App和设备开发者需要关注并处理该物模型 ImageFlipState 属性 画面翻转状态 App设置和获取设备当前画面翻转状态,设备在状态变更及开机时主动上报 App和设备开发者需要关注并处理该物模型 MicSwitch 属性 麦克风开关 App设置和获取设备当前麦克风开关状态,设备在状态变更及开机时主动上报 App和设备开发者需要关注并处理该物模型 StatusLightSwitch 属性 状态灯开关 App设置和获取设备当前状态灯开关状态,设备在状态变更及开机时主动上报 App和设备开发者需要关注并处理该物模型 IpcVersion 属性 摄像机版本号 App获取设备当前版本号信息,设备在开机时主动上报 App和设备开发者需要关注并处理该物模型 若标准物模型无法满足需求的,可以通过自定义功能自行拓展。例如新增物模型服务(Reboot)来实现设备重启功能。
- 云存套餐
云存录像使用需要为用户开通云存套餐,厂商云端调用LinkVisual视频云存储购买服务的流程和API请参考LinkVisual视频云存储购买服务。
同时我们为每个设备免费赠送7天事件云存空间套餐,从领取开始持续3个月时间,每个设备仅可开通一次。App端领取和查询,详细参见LinkVisual视频服务(领取云存套餐/ 查询云存套餐详情)。
- 消息推送
用于通过App主动向用户推送诸如移动侦测报警、设备关键状态等消息。详细参见移动应用推送开发指南。
- 配网
详细参见配置App配网方案和引导文案。
- OTA
详细参见固件升级。
在文档使用中是否遇到以下问题
更多建议
匿名提交