K230, 如何把连续的帧数据保存为MP4视频

Viewed 160

重现步骤

板子环境烧录windows烧录的镜像,在CanMV IDE调试
1,车牌识别demo,实时监控车辆信息
2,指定保存路径为U盘外设,视频录制MP4保存demo,实时监控
3,开启两个线程分别执行两个功能,
4,制定保存路径,

期待结果和实际结果

希望获取到车牌检测结果并把录制视频保存在U盘

软硬件版本信息

K230
IDE K230 4.0.7-0

错误日志

Traceback (most recent call last):
File "", line 185, in mp4_muxer_test
File "media/mp4format.py", line 54, in init
File "media/sensor.py", line 180, in init
OSError: sensor(2) is already inited.

尝试解决过程

猜测:车牌识别,用的pipline通道获取的图像,保存视频用的提供的demo,我估计在存视频的时候,封装的函数可能又拉起了摄像头

补充材料

1739428700872.png

1739428897739.png

1739428965838.png

1 Answers

是的,Mp4Container 类内部也会初始化sensor;重复的sensor初始化会导致问题。
如果你既想进行车牌识别,又想录像,你需要深入了解 Mp4Container 类的内部实现,掌握摄像头数据如何编码,以及如何调用 mp4 接口(kd_mp4_*)来录制 mp4 文件。然后将这两个功能整合在一起,避免重复初始化(如 MediaManager 和sensor的初始化)。

目前,kd_mp4_* 系列录制 MP4 的接口尚未对用户开放。下个版本会开放这些接口,并补充相关文档。目前,可以参考示例文件 /src/canmv/port/builtin_py/media/mp4format.py,使用 kd_mp4_* 接口录制编码后的数据。