更新时间:2025-01-15 07:57:34下载pdf
智能全时录像(Always On Video,AOV)与普通录像的产生机制并不相同,录像帧率、码率等参数也不相同。基于此特点,需要在现有存储系统下,新增一种新的存储逻辑处理 AOV 录像。
具有 AOV 功能的设备,会产生与普通录像不同参数的视频数据,在时间维度上具有以下关系:
如上图所示,AOV 录像和普通事件录像在时间上是互斥的,且 AOV 录像和正常录像的时长比例没有限制。所以,AOV 录像可看作一种新类型的事件录像,只是在存储流程上与普通录像略有不同。
svc_local_storage
svc_aov_buffer
AOV 录像存储目录结构与当前常规录像保持一致,参考:目录和文件结构。
AOV 录像记录格式与当前常规录像保持一致,参考:录像格式。
在产品需求层面增加新的存储模式选项,以区分是否要存储 AOV 录像。
SDK 仅提供 AOV 存储接口和参数,上层应用按需调用来实现对应的存储模式。
AOV 初始化参数与本地存储初始化参数一致,参考:初始化参数。
本地存储初始化参数中有以下参数集合:
TUYA_IPC_AOV_STORAGE_INFO_T aov_info; // aov recording parameters
可对 AOV 存储单独进行初始化配置。
/**
* @brief start aov local storage
*
* @param[in] chan stream channel
* @return OPRT_OK on success. Others on error
*/
OPERATE_RET tuya_ipc_ss_start_aov_local_storage(IN IPC_STREAM_E chan);
在本地存储模块和 AOV ring buffer(简称 ringbuf) 初始化后,调用此接口,可开始 AOV 录像的写入流程。
/**
* @brief stop aov local storage
*
* @param[in] chan stream channel
* @return OPRT_OK on success. Others on error
*/
OPERATE_RET tuya_ipc_ss_stop_aov_local_storage(IN IPC_STREAM_E chan);
调用此接口,可停止本次 AOV 录像的写入。
/**
* @brief get aov local storage write status
*
* @param[in] chan stream channel
* @return STORAGE_AOV_STATUS_E
*/
STORAGE_AOV_STATUS_E tuya_ipc_ss_get_aov_storage_status(IN IPC_STREAM_E chan);
调用此接口,可获取当前 AOV 录像的写入状态。
如上所示,SDK 提供了新的 AOV ringbuf 接口,与常规的 ringbuf 接口区分使用。
上层应用需要按规则将 AOV 视频导入到 ringbuf,之后将 AOV 视频存储到 TF 卡等介质中的流程将自动完成。
AOV 录像的回放与常规录像回放的流程和步骤一致,不需要特殊处理。
云存功能与本地存储相似,同样需要依赖 AOV ringbuf。本地存储和云存业务需要使用同一个 AOV ringbuf,不需要分开使用。云存开启、停止接口使用可参见您下载的文件中的 Demo code。
低功耗设备,录像事件推送完成后才可以休眠。
事件和 AOV 交替产生时,会出现此问题。开启云存后,现象会更明显。
上层应用录像逻辑可调整为以下:
不能,不同的分辨率 App 端回放下载会有问题。
tuya_ipc_ss_init
调用要在 VOID 接口 tuya_ipc_upload_skills(VOID)
调用之前。
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈