【无标题】

项目场景:

  • List item

项目场景:
刚入职有一个拿来练手的项目:主机使用html连接到显示屏上,先需要过滤投放的内容。主要有以下几种解决方案

  • 采用实时检测的方案,将采集的数据按帧上传到腾讯云cos,等待返回结果后决定上传这段时间的帧是否播放
  • 采用先全部采集,然后将整个视频全部上传到腾讯云进行检测后等待返回结果。

环境、第3方库以及框架

是在瑞星微3588上进行实验,其有hdmi in 接口,hdmi out 接口,安装了ubuntu22.2系统。
第3方库选择了opencv,直接在开发板上编译,需要编译时需要打开ffmpeg,否则视频无法播放。这里建议先安装ffmpeg,否则会显示找不到ffmpeg.
框架采用v4l2和drm框架,这都是linux下音视频处理框架。后面进行解释

问题描述

  • 为何选用v4l2框架
    一般情况下如果是usb摄像头,可以直接调用opencv中的videocapture进行视频数据采集,但调用时发现无法找到设备。经过研究发现,opencv采用的是在Linux下采用的是v4l2框架,而v4l2框架是为UGV(即免驱摄像头)设计的。当插入摄像头后会自动的注册一个/dev/video0-8(rk3588)的文件描述符。v4l2是能够打开的,而hdmi 虽然也注册了一个了一个设备,但opencv 是无法打开的。所以只能直接实现v4l2。

  • 输出框架的选择
    输出框架选用drm框架,当然也rk有自己的开源库mpp,还提供了python版的可以通过命令:

pip install toybrick 

进行安装。c库需要进行学习,所以选择了drm框架。现在绝大多数显示器都是继续该框架进行设计的。使用也比较简单。

  • 检测框架的选择
    由于公司不具备检测的能力,选择云端检测(这也是该项目最终流产的原因)。选择的腾讯的数据万象功能。注册就送6万次检测,可以微信、qq各注册一个。使用到了内容审核中视频检测功能

  • 如何学习(以后慢慢补充)
    1.v4l2 框架 流程固定,网上可以直接拿来用。
    2.rkchip 有官方的论坛,好像叫toybrick,里面基本上有关于接口使用的方式,可以助力快速入门。
    3.drm 的使用我看了一个博主的,有空回来贴上。

用到的一些技术

  1. 数据格式的转换,需要了解bgr,bgra,yuv444,yuv420等
  2. opencv的是使用,如何从内存中的地址取出并转化为mat
  3. 需要了解v4l2中的共享内存、select的监听技术。(这里存在一个bug,后面讲)。
  4. opecv如何从mat中获取到内存地址。
  5. linux下多线程、锁的理解
  6. 如何控制播放的速度等等。

小结

做下来感觉项目就是产生bug-解决bug的过程。接下来几章主要来讲实现,虽然流产了,但我会继续丰富项目内容。加油

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值