【SDK】aov卡录问题求助

IPC/NVR/可视门铃等具备多媒体能力的设备,扫地机/AGV等机器人设备


XM.Quan
Posts: 79

Passat 2025年 Mar 14日 11:15
  1. tuya_ipc_ss_get_aov_storage_status返回值正常的
    2.日志显示存储线程运行正常,关闭DEBUG 日志后,整体运行速度可能会快一些

那先获取到3然后获取到5就可以判断aov录像此时已经完全存入SD卡中,可以退出aov录像断电了是吗?
帮忙看下关闭debug日志后,上电2.3秒开始aov推流,6.6秒aov推流结束,tuya_ipc_ss_get_aov_storage_status获取到1需要31.98接近上电后32秒,这个问题。日志已添加至附件。

Attachments
关闭debug打印后统计时间.txt
(55.68 KiB) Downloaded 30 times
XM.Quan
Posts: 79

Re: 【SDK】aov卡录问题求助

Passat 2025年 Mar 13日 15:27

1.写入虚拟帧,理论上可以,但是实际是否会有其他问题,需要全面测试

2.是否支持内存复用? 目前不支持

3.附件的测试版本,增加了tuya_ipc_ss_get_aov_storage_status 返回状态。另此版本仅供测试用,正式版才可用于发布产品。

请问2这个内存复用目前不支持的话,以后是否可以支持或者说有考虑支持吗?

User avatar
Passat
Posts: 76

Re: 【SDK】aov卡录问题求助

不考虑支持

XM.Quan
Posts: 79

Re: 【SDK】aov卡录问题求助

Passat 2025年 Mar 18日 11:25

不考虑支持

帮忙看下aov卡录保存的慢的问题,日志已添加附件。以下为对应场景情况:
1.推流推完后获取状态第一次5第二次3,然后持续一段时间(大概需要20多秒)的3,然后再5.
aov push frame end
3.76 3.44
tuya_ipc_ss_get_aov_storage_status=5
24.34 39.67

2.推流推完后获取状态一直为3,一直持续未见5,日志统计了四分多钟,均未见5或者1或者4。
aov push frame end
4.27 4.09
tuya_ipc_ss_get_aov_storage_status=3
249.96 461.51

Attachments
aov卡录测试日志(先5后3一段时间后5).txt
(57.13 KiB) Downloaded 19 times
aov卡录测试日志(一直3).txt
(393.92 KiB) Downloaded 21 times
User avatar
Passat
Posts: 76

Re: 【SDK】aov卡录问题求助

Code: Select all

	行 212: [01-01 00:03:56 ty E][7c34][tuya_ipc_ss_aov.c:467] start aov storage
	行 471: Password: [01-01 00:04:16 ty E][c1f4][tuya_ipc_ss_aov.c:327] get aov last frame:0,1742286671000,419
	行 528: aov push frame start
	行 530: aov push frame end
	行 881: aov push frame start
	行 883: aov push frame end

1.两份日志中只出现一次,get aov last frame 。这个打印标志本地存储获取了AOV ringbuf 的最后一帧,完成了本次AOV录像存储过程。两次出现你添加的aov push frame end打印,不太清楚你的实现逻辑是怎样的。通过打印可以看出并没有按照之前建议的步骤实现AOV存储,请合理调整代码

2.另一份日志中,出现大量 [tuya_ipc_aov_buffer.c:244] fail to get 的打印,说明ringbuf 空间已接近用完。存储线程并没有获取到最后一帧。

XM.Quan
Posts: 79

Re: 【SDK】aov卡录问题求助

Passat 2025年 Mar 20日 17:19

Code: Select all

	行 212: [01-01 00:03:56 ty E][7c34][tuya_ipc_ss_aov.c:467] start aov storage
	行 471: Password: [01-01 00:04:16 ty E][c1f4][tuya_ipc_ss_aov.c:327] get aov last frame:0,1742286671000,419
	行 528: aov push frame start
	行 530: aov push frame end
	行 881: aov push frame start
	行 883: aov push frame end

1.两份日志中只出现一次,get aov last frame 。这个打印标志本地存储获取了AOV ringbuf 的最后一帧,完成了本次AOV录像存储过程。两次出现你添加的aov push frame end打印,不太清楚你的实现逻辑是怎样的。通过打印可以看出并没有按照之前建议的步骤实现AOV存储,请合理调整代码

2.另一份日志中,出现大量 [tuya_ipc_aov_buffer.c:244] fail to get 的打印,说明ringbuf 空间已接近用完。存储线程并没有获取到最后一帧。

我把打印关了,部分关键打印我输出到文件了,比如aov push frame start跟aov push frame end,出现2次打印是因为我这边cat查看了2次本地文件导致的。
ringbuf用完了这个是因为我这边测试的问题,已开大了。
目前问题:
1.正常一套流程下来从启动aov录像(tuya_ipc_ss_start_aov_local_storage)到(tuya_ipc_ss_get_aov_storage_status)获取到状态1退出需要20秒,帮忙看下怎么优化这段时间。
2.有概率获取到最后一帧([01-01 00:02:00 ty E][bdd4][tuya_ipc_ss_aov.c:327] get aov last frame:0,1742286599000,333)但持续很久tuya_ipc_ss_get_aov_storage_status未获取到状态1或4
目前流程是
调用tuya_ipc_aov_buffer_init初始化aovbuf
调用tuya_ipc_aov_buffer_set_max_frame_size设置最大帧长
调用tuya_ipc_aov_cloud_storage_start开始aov云存
调用tuya_ipc_ring_buffer_open打开常规ringbuf
调用tuya_ipc_aov_buffer_open打开aovringbuf
打印aov push frame start
调用tuya_ipc_ring_buffer_append_data推一帧虚拟帧用于标记开始时间戳
调用tuya_ipc_aov_buffer_append_data_with_timestamp推完全部aov帧
调用tuya_ipc_ring_buffer_append_data推一帧虚拟帧用于标记结束时间戳
打印aov push frame end
调用tuya_ipc_ss_start_aov_local_storage开始aov卡录
打印tuya_ipc_ss_start_aov_local_storage
调用tuya_ipc_aov_buffer_close关闭aovringbuf
循环tuya_ipc_ss_get_aov_storage_status获取aov卡录状态,直至1或4退出,
打印tuya_ipc_ss_get_aov_storage_status及其返回值
调用tuya_ipc_ss_stop_aov_local_storage停止aov卡录
打印tuya_ipc_ss_stop_aov_local_storage及其返回值
主控下电

Attachments
aov卡录测试日志(获取到最后一帧但未返回1或4).txt
(30.33 KiB) Downloaded 19 times
aov卡录测试日志需要20秒写完SD卡aov录像.txt
(114.33 KiB) Downloaded 16 times
User avatar
Passat
Posts: 76

Re: 【SDK】aov卡录问题求助

  1. 写入速度异常,应该与常规的ringbuf中的帧数据偏少有关,可以打开debug排查原因。
  2. 可尝试在常规的ringbuf中多写入帧数据再对比效果
  3. 另一份日志中并没有找任何 tuya_ipc_ss_get_aov_storage_status 的打印
XM.Quan
Posts: 79

Re: 【SDK】aov卡录问题求助

Passat 2025年 Mar 24日 11:10
  1. 写入速度异常,应该与常规的ringbuf中的帧数据偏少有关,可以打开debug排查原因。
  2. 可尝试在常规的ringbuf中多写入帧数据再对比效果
  3. 另一份日志中并没有找任何 tuya_ipc_ss_get_aov_storage_status 的打印

附件已添加一份打开debug打印的日志,将aov录像同时推aovringbuf和常规ringbuf。帮忙分析一下,从
aov push frame end
[01-01 00:04:26 ty E][79f4][tuya_ipc_ss_aov.c:467] start aov storage
到[01-01 00:04:47 ty D][79f4][tuya_ipc_ss_aov.c:520] tuya_ipc_ss_get_aov_storage_status:1,0x539a30
tuya_ipc_ss_get_aov_storage_status ret = [5]
中间经过了21秒左右,帮忙分析一下。
而且此次看sdk打印状态是1,但是实际返回值给的是5,有点不理解,也帮忙看下原因。
调用以及打印部分代码如下:
STORAGE_AOV_STATUS_E ret = tuya_ipc_ss_get_aov_storage_status(E_IPC_STREAM_VIDEO_MAIN);
printf("tuya_ipc_ss_get_aov_storage_status ret = [%d]\n", ret);

Attachments
同时推aov跟常规ringbuf开debug打印.txt
(158.5 KiB) Downloaded 8 times
User avatar
Passat
Posts: 76

Re: 【SDK】aov卡录问题求助

  1. tuya_ipc_ss_get_aov_storage_status 已返回值为准,其他打印可不用关注

  2. 日志中向常规ringbuf写入的帧类型和时间都是哪些?之前说的AOV ringbuf 需要依靠常规ringbuf的帧,但日志中并未出现在常规ringbuf中找到I帧的标记

Post Reply