智能安全帽项目总结

文章详细描述了使用Linux4.19内核和RKmedia库在设备端实现音视频采集、编码、上传以及报警功能的过程,涉及H.264编码、RTSP传输和自定义通信协议。还讨论了GPGPS定位、脱帽和跌落报警的实现以及消息类型管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Linux4.19(RV1126)

RKmedia:瑞芯微官方提供的音视频编解码工具

分辨率:1080*1920  32位色深

一帧画面:1080*1920*32/8   大概8M

视频是由一帧一帧的画面组成的

1s = 24帧  24*8 = 192M

120分钟的视频:1.3T

安全帽那个项目分主要分三个部分,一个设备端,还有一个,老板端,一个那个服务端。

我是主要负责这个设备端啊,这一块儿。

主要是做了这个设备端这个。板子的这个系统的移植,用的是那个厂商提供的这个SDK,去进行对内核儿进行去采集。

然后这个我在设备端做了这个,主要做了这个音视频的这个采集编码跟那个上传,然后还做了一些那个。啊通报警,跌落报警啊,这个4G模块儿的4G驱动的一致。

那视频是怎么做的,然后你把那个函数给他讲一讲。

vi:视频输入

venc:视频编码

rtsp:实时传输

实现的功能:采集画面,编码,推流

通过RTSP传输出去---》推流

在电脑上边使用VLC软件进行拉流,获取实时画面。

采集摄像头画面,进行H.264编码,进行本地保存

rkmedia_vi_venc_rtsp_test.c

采集摄像头画面,进行H.264编码

通过RTSP传输出去---》推流

在电脑上边使用VLC软件进行拉流,获取实时画面。

采集画面保存本地—》完整的使用流程:

  1. 初始化系统
  2. 设置VI通道属性
  3. 使能VI通道
  4. 创建VENC通道
  5. 设置回调函数
    1. 获取数据
    2. 写入文件
    3. 释放空间
    4. 记录帧数—》做退出机制
  6. 绑定VI和VENC
  7. 解除绑定
  8. 销毁VENC通道
  9. 关闭VI通道

ffmpeg是音视频记录,转换和编解码工具

开源的,跨平台的

脱帽报警:单片机+限位开关

跌落报警/静默报警:单片机+陀螺仪

音视频传输:RV1126+摄像头+网络+rkmedia+本地保存+推流

就说这个音视频,我是用的这个瑞芯微提供了这个rkmedia的库,然后先是那个初始化rkmedia,,然后初始化那个VI(视频捕获),然后在使能VI通道,然后创建并初始化那个venc(编码)通道,然后。然后就是绑定VI跟venc,然后然后再注册那个回调函数。然后注册清理函数,然后使用完之后解除绑定,销毁Venc通道。

然后然后就说它那个音频的采集AI就跟这个VI的差不多,就是把就是也是注册初始化AI绑定AI中的。启动VI通道,注册a enc,绑定A1A3AI不AI,然后也是注册那个清理函数这样。

然后GPGPS定位怎么做,这块儿我就说是另一个工人做的,然后我说我的那个4G模块儿,就自带那个GPS定位,然后我我通过那个4G模块儿的配置,然后采集到,采集到那个。数据那个4G模块儿提供的是一个经纬度的数据,然后采集到之后,直接把它上传到服务端,然后另另一位同事,然后就是根据解析这个数据去做GPS定位。注意,执行上述 AT 命令需要使用串口通信来与 4G 模块进行数据交互,需要将 GPS 模块的输出设置为 NMEA 格式,也就是将 GPS 模块的输出格式设置为“�����”或“GPRMC”或“GPGGA”。此外,在使用 AT 命令前,还需要确保 SIM 卡已经注册并连接到网络,可通过发送 AT+COPS? 命令来查询当前网络连接状态。

有问那个脱帽报警是怎么实现的啊,我说它是里面有一个压力传感器,在你这个戴上,戴上帽子之后啊,你打开这个安全帽开关之后,就它就会那个在你脱帽的时候。检测到压力的,压力栓剂,检测到那个压力数值的变化啊,就会那个,报警。

跌落报警的话,是有里面有那个陀螺仪,然后你说,采集的数据,然后根据那个手册,就我说的根据手册比较出这个采集的数据,出现那个超出那个规定的安全值。然后就上报异常,同时那个终端设备,终端也会那个有一个封印器进行报警。

也有问是这个你怎么通信的,然后我说我我们的通信协议是那个自定的,是模仿那个MQTT进行那个一个通信协议,自定的一个通信协议。

报警,我说的就是那个设备终端有一个蜂鸣器会那个报警,然后同时它会把这个异常那个情况上传到那个服务端,你说这你说功能器报警也可以。

那个,嗯,脱帽报警的话,你没必要上传那个采集到的信息,你可以直接订订一个红,订一订一个红的效益类型,效益类型就可以了,别人说就是。你视频消息是一一,音频消息是二啊,你可以定一个三,就是那个托管报警的那个消息,当那个你平时是不往上,不往服务器传这个消息了。你只有在检测到脱帽的时候,你才会在那个设备端往服务器发送消息类型为三的那个消息,然后服务端检测到收到消息类型为三的话,就知道这是那个脱网报警消息了,会在那个。老板端进行提醒。

器就是把这条这个转发到老板端,然后老板端就是收到消息三的,就类型为三的消息,就那个提醒了。

这个消息就是消息类型,有一个里面应该还得有这个设备编号儿吧,设备编号儿,设备信息之类的。

只说这两个会不会太少了,而且那个丢了报警跟东方报警基本上也差不多,那个音频跟视频也差不多,你可以把这这就分两种,这两种情况基本都差不多。四就是四条儿,你可以说这。

视频的话,你不做编码的话,就是应该是没有办法上传的,它那个原数据特别大

提的是YV的数据就行了,说采集的YV320数据变化之后,变成H264,然后上传到云端,然后云端然后就打开。

摄像头采集画面—》H264视频压缩—》保存在文件里边

摄像头采集画面—》H264视频压缩—》发送到服务器

我还说了,我就是啊,我在设备端这边儿,把音视频编码成那H264,然后在老板的那边儿,用那个ffmmpeg做了视频的解码了,把H264转,再转成那个YV420。

SDK

是 Software Development Kit(软件开发工具包)的缩写,是一组用于开发特定软件或应用程序的工具、库文件、文档和示例代码的集合。SDK 为开发者提供了一种简化和加速软件开发过程的方式,使他们能够更轻松地构建基于某个平台、框架或技术的应用程序。

SDK 包含了一系列的开发工具和资源,常见的内容包括:

  1. API 文档:描述了SDK 提供的各种函数、类、接口和数据结构的使用方法和参数说明,方便开发者理解和使用。

  2. 示例代码:提供了一些完整的、可运行的代码示例,展示了如何使用 SDK 的基本功能和实现特定功能的示例。

  3. 开发工具:通常包括编译器、调试器、集成开发环境(IDE)等,用于编写、编译、调试和部署应用程序。

  4. 库文件:SDK 提供的预编译库文件,包含了一些常用的函数和模块,可以直接链接到应用程序中使用。

  5. 辅助工具:如模拟器、调试工具等,用于测试和调试应用程序。

SDK 涵盖了不同层面的开发需求,例如:

  • 平台 SDK:针对特定操作系统、硬件平台或设备的开发工具包,如Android SDK、iOS SDK、Windows SDK等。

  • 框架 SDK:针对某个框架或库的开发工具包,如TensorFlow SDK、OpenCV SDK、Unity SDK等。

  • 云服务 SDK:针对某个云服务提供商的开发工具包,如AWS SDK、Azure SDK、Alibaba Cloud SDK等。

通过使用 SDK,开发者可以快速入门、简化开发流程、提高开发效率,并且能够更好地利用平台或框架提供的功能和特性,从而实现更好的软件开发体验。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值