KDocs 研发资料库
  • 屏融合应用方案入口汇总
  • JL701N穿戴客述问题FAQ
  • JL701N穿戴类补丁list
  • 手表软件调试
  • JL701手表硬件设计注意事项 总结
  • 手表烧录_升级工具说明
  • 手表量产相关
  • 生产烧录KEY及代码和升级代码
  • AC695N系列手表SDK开发指南
  • JL7012A手表-SDK入门指南V1.0
  • 穿戴手表JL701N-入门到进阶开发指导
  • 彩屏充电仓JL701N LVGL入门到进阶指导文档
  • AC695N手表软硬件问题整理
  • JL701N手表软硬件问题整理
  • 701n手表SDK共性问题汇总
  • UI效果参考demo文档
  • 屏幕触摸驱动相关参考
  • 穿戴类支付宝支付流程
  • AC701N_PMU_介绍
  • 经典蓝牙相关接口说明
  • music应用详细设计说明书
  • music_player接口设计说明文档
  • PO声测试以及处理方法
  • DAC性能测试指南
  • 杰理串口升级规范
  • AC696N串口升级说明
  • AC695N系列手表UI开发指南
  • AC695N添加升级UI说明文档.
  • UI布局工具使用说明
  • UI接口设计说明书
  • UI工具快速使用说明
  • 701N_UI编辑工具用户手册
  • UI工程源文件升级工具使用说明
  • 701N屏幕驱动配置说明
  • JL701N 2D图形硬件加速接口使用说明
  • JL701_watch常用例子参考
  • JL_WATCH_SDK UI相关工具使用文档
  • 智能手表音频 设计调试手册 V1.2
  • AC695X_AC696X_AD697X 常见通话问题处理参考资料
  • 701手表 PCBA产测工具使用说明书 V1.0
  • 杰理定频问题排查2021.1.26
  • BQB5.4 20231007
  • 各类概率性死机调试解决指南
  • 不开机问题处理汇总(仅供参考)
  • 蓝牙搜索不到问题处理汇总(仅供参考)
  • 样机发烫(仅供参考)
  • 蓝牙音乐卡顿问题处理汇总(仅供参考)
  • 充电问题处理汇总(仅供参考)
  • 触摸问题处理汇总(仅供参考)
  • 功耗调试指导
  • JL701N穿戴客述问题FAQ
  • 701N 开发板新屏幕驱动修改
  • AC701 nandflash A8图片显示问题
  • 支付宝乘车码接入资料
  • 多国语言及字库使用指南
  • 查看C程序Flash 和RAM 资源占用说明文档
  • 701N_SDK3.0.1_OPUS_OGG 编解码
  • 蓝牙在线调eq说明
  • BR EDR BLE 蓝牙性能测试配置方法_
  • BLE-HID
  • BLE-HID 调试文档
  • 【问题】701v301外置flash播放wts提示音
  • 本地录音开启及调试
  • 死机分析
  • 表盘传输APP层的压缩算法
  • 功能模版:JL701_V301_UI资源使用FAT文件系统demo
  • JL7013+4G CAT1 参考设计原理图
  • 吾爱4G模组+JL701接口说明
  • (电脑一拖多)手表升级dongle工具使用补充说明
  • 蓝牙接口使用说明
  • ble 开发流程
  • 彩屏仓功耗优化
  • 彩屏仓补丁list
  • 更新字库步骤
  • 支付宝硬件接入资料

摄像头录像开发流程

📎 原始文档:https://www.kdocs.cn/l/ciFQFKP3X1An

音视频录像开发流程

此文档主要以方便客户可以快速开发为目的,所以此文档主要说明录像组件开发demo 的使用。客户可在文档下留言,会动态对文档进行改动。

1. 录像功能开发的流程图

image

图 1

2. 录音功能开发的流程图

image

图2

3. 原理图

3.1.音频音频硬件连接原理图

image

图4

注意,MIC和MICLDO 的硬件连接分别是PA1和PA0。

3.2. BF30A2t 图像传感器的硬件连接原理图

image

图5

4. 音视频录像组件的软件开发流程

4.1.图像录像开发流程

1) 相关宏定义

文件路径:apps\watch\board\br28\board_ 701n_demo\board_ 701n_demo.capps\watch\video\avi_recode_demo.c
I2C结构体配置const struct soft_iic_config soft_iic_cfg[]={​​}主要配置IIC 的硬件 GPIO 引脚。 而\avi_recode_demo . c 的宏定义, 只要配置 JPG 编码对应配置,包括 SPI 数 据 包 包 头 SPI_FEND_SIZE、 包 尾 SPI_LEND_SIZE、 以 及 行 头 SPI_FHEAD_SIZE 和行尾 SPI_LHEAD_SIZE 的大小。 同时,配置图像的像素为 240* 320, JPG 一次编码的大小为 DMA_LBUF_SIZE,但注意, 当 JPG 编码质量大的时候需要增大该变量。 SPI 通信是 JL701N 使用 SPI2 从机通信, SPI 时钟由 IO_PORTA_ 05 提供。
image

图6

2) 按键响应和处理事件入口

文件路径:apps\watch\task_manager\app_common.c
使用按键作为录像事件的触发机制, key2是触发录像功能, key l是复位,也是触发录像回放的按键。
image

图7

通过 key2 按键事件 KEY_UI_SHORTCUT 触发录像组件的录像功能,其中 avi_set_recode_flag()和 reset_stop_flag()函数分别是视频流转化为avi编码的标志和停止录像的标志,avi_recode_demo()函数是获取视频流后,进行avi视频编码函数,set_play_mode(1)设置开始录像的标志;
image

图8

2) avi录像编码函数

文件路径:apps\watch\video\avi_recode_demo.c
avi_recode_demo()是avi视频编码函数,其主要是配置音视频同步封装配置, 以及实现 avi视频编码功能,其中vpkg_cycle_time = cycle_time配置视频采样率,info.minfo.vid_fps = fps 是配置视频帧率, 该图像传感器的最大视频帧率为 30fps,值得注意的是, info.minfo.aud_en = l是开启音频封装的重要标志, 同时,音频的采样率info.minfo.aud_sr = 8000要和mic 的adc采样率保持一致。
image

图9

3) 录像标志

文件路径:apps\watch\ui\lcd\STYLE_WATCH_NEW\ui_action_watch.c
set_play_mode()函数是设置录像与否的标志,通过设置play_mode变量的值来决定是否开始录像,play_mode=l开始录像,play_mode=0 回放录像,这两个状态是在ui_action_watch.c 文件中DRAW_DEMO_onchange()函数中通过ON_CHANGE_FIRST_SHOW事件实现,如图 ll所示。
image

图 10

4) 录像开始线程

文件路径:apps\watch\ui\lcd\STYLE_WATCH_NEW\ui_action_watch.c cpu\br28\audio_enc\audio_mic_cbuf.c 和apps\watch\video\avi_recode_demo.c
开启录像操作的函数在是DRAW_DEMO_onchange()函数中实现,在play_mode置位 1 的时候,开启录音线程creat_aud_task()和录像线程creat_vid_task(); 其内部实现的函数如图 14和图 12所示。
image

图 11

5) 音视频流处理线程

a. 录视频文件路径:apps\watch\video\avi_recode_demo.c
视频录制线程实现函数vid_stream_task(),其内容是初始化BF30A2 图像传感器和开启 mic数据采集,其内容二是通过spi获取图像传感器数据,将分辨率为240320 的图像保存在lbuf 中,并通过将240320分辨率的图片分成10张分辨率为240*32 的图片进行YUV编码处理。
需要注意是,音频和视频流的avi编码接口函数aud_din(u8 *data, u32 len)和 vid_stream_din(u8 *data, u32 len)的传参指针u8 *data是需要外部申请一段动态内存后传入,其在avi编码函数内部自动进行释放,若传参指针变量不是动态申请的内存,可能会出现系统错误等问题。
image

图 12

Mic录音的adc采样率MIC2CBUF_SR宏大小要与avi音频编码的info. minfo.aud_sr = 8000 采样率保持一致。
image

图 13

b. 录音文件路径:cpu\br28\audio_enc\audio_mic_cbuf.c
音频数据采用cbuf 的管理方式,每次编码8K数据(对应avi编码的buf 大小)。
image

图 14

6) 录像播放线程

文件路径:apps\watch\task_manager\app_common.c和apps\watch\video\avi_replay_demo.capps\watch\ui\lcd\STYLE_WATCH_NEW\ui_action_watch.c
image

图 15

a. 文件路径:apps\watch\task_manager\app_common.capps\watch\video\avi_replay_demo.c
image

图 16

4.2.录像结束

回播结束:删除回播线程;
录像结束:删除录音线程、录像线程和avi视频编码线程:
image

图 17

5. 修改的文件全观

image

图 18

image

图 19