【imx6ull】视频监控项目(usb摄像头+ffmepeg)

这篇具有很好参考价值的文章主要介绍了【imx6ull】视频监控项目(usb摄像头+ffmepeg)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

参考视频:
韦东山老师手把手带你从0开始自己做一个视频监控系统


1、总体方案介绍

这篇文章写的很好,很容易理解了,就不造轮子了
正点原子imx6ull开发板视频监控项目实战系列1: 总体方案介绍

2、配置v4l2驱动与UVC驱动

  1. 因为正点原子的内核源码默认没有开启,UVC设备类驱动,需要自己配置并编译
    【imx6ull】视频监控项目(usb摄像头+ffmepeg)

  2. 插入usb摄像头,控制台输出设备信息,证明UVC驱动已经编译成功

    usb 1-1.3: New USB device found, idVendor=0c45, idProduct=64ab usb
    1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=0 usb
    1-1.3: Product: Integrated_Webcam_HD usb 1-1.3: Manufacturer: 170428-
    uvcvideo: Found UVC 1.00 device Integrated_Webcam_HD (0c45:64ab)
    input: Integrated_Webcam_HD as
    /devices/platform/soc/2100000.aips-bus/2184200.usb/ci_hdrc.1/usb1/1-1/1-1.3/1-1.3:1.0/input/input3 usb 1-1.4: new high-speed USB device number 4 using ci_hdrc usb 1-1.4:
    New USB device found, idVendor=0bda, idProduct=8179 usb 1-1.4: New USB
    device strings: Mfr=1, Product=2, SerialNumber=3 usb 1-1.4: Product:
    802.11n WLAN NIC usb 1-1.4: Manufacturer: Realtek

  3. 查看/dev/video*,有视频类设备文件,证明UVC驱动已经编译成功

3、v4l2应用编程测试摄像头

  1. 测试方案

    将从摄像头获取的图像投射到RGB566显示屏

  2. 移植libjpeg

    因为我的摄像头只支持图像格式:MJPEG,YUV422,而显示屏只支持RGB565,所以需要使用工具将MJPEG转码为RGB565。

  3. v4l2+framebuf应用编程

    特此将libjpeg+v4l2+frambuff+移植过程分享出来

4、ffmepg移植

  1. 简介

    正点原子imx6ull开发板视频监控项目实战系列3:
    ffmpeg
    这篇文章介绍了ffmepeg的用途和对摄像头的拉流方式

  2. 移植
    因为正点原子的文档没有对ffmpeg详细移植步骤,在网络上找了好几个移植描述,但是并不正确,只有这个才是适合我的板子的.
    以下是我做的运行脚本,可直接拷走使用,切记16,17行内容不能分行分行运行,回报错误
    FFmpeg移植-迅为IMX6ULL开发板文章来源地址https://www.toymoban.com/news/detail-419053.html

      1 #!/bin/bash
      2 ./configure \
      3 --cross-prefix=arm-linux-gnueabihf- \
      4 --enable-cross-compile \
      5 --target-os=linux \
      6 --cc=arm-linux-gnueabihf-gcc \
      7 --arch=arm \
      8 --prefix=/home/sheldon/linux/tool/ffmpeg-install \
      9 --enable-shared \
     10 --disable-static \
     11 --enable-gpl \
     12 --enable-nonfree \
     13 --disable-ffplay \
     14 --enable-swscale \
     15 --enable-pthreads \
     16 --disable-armv5te --disable-armv6 --disable-armv6t2 --disable-x86asm \
     17 --disable-stripping --enable-libx264 \
     18 --extra-cflags=-I/home/sheldon/linux/tool/x264_install/include/ \
     19 --extra-ldflags=-L/home/sheldon/linux/tool/x264_install/lib/ --extra-libs=-ldl
    
    

总结

到了这里,关于【imx6ull】视频监控项目(usb摄像头+ffmepeg)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 嵌入式Linux实战开发之项目总体概述(基于IMX6ULL)

    现在越来越多的智能设备融入到我们的生活,然而,丰富的设备之下也是有一套基本的运行框架,只是根据不同的需求增减相应的功能从而满足自身的需要。而电子产品量产工具项目,就是实现基础的功能,可以作为一个基础的模版,学成之后便可进行扩展,根据自身需求,

    2024年02月13日
    浏览(60)
  • iMX6ULL驱动开发 | 让imx6ull开发板支持usb接口FC游戏手柄

    手边有一闲置的linux开发板iMX6ULL一直在吃灰,不用来搞点事情,总觉得对不住它。业余打发时间就玩起来吧,总比刷某音强。从某多多上买来一个usb接口的游戏手柄,让开发板支持以下它,后续就可以接着在上面玩童年经典游戏啦。  我使用的是正点原子的I.MX6U-ALPHA 开发板,

    2024年02月14日
    浏览(51)
  • 【IMX6ULL驱动开发学习】22.IMX6ULL开发板读取ADC(以MQ-135为例)

    IMX6ULL一共有两个ADC,每个ADC都有八个通道,但他们共用一个ADC控制器 在imx6ull.dtsi文件中已经帮我们定义好了adc1的节点部分信息 注意 num-channels = 2; ,这个表示指定使用ADC1的两个通道,即通道1和通道2 如果你要使用多个ADC通道,修改这个值即可 配置ADC引脚的 pinctrl ,在自己的

    2024年02月12日
    浏览(58)
  • 【IMX6ULL驱动开发学习】08.IMX6ULL通过GPIO子系统函数点亮LED

    通过GPIO子系统函数点亮LED 1、GPIO子系统函数 1.1 确定 led 的GPIO标号,查看内核中的gpiochip 查看 gpiochip ,以正点原子的IMX6ULL阿尔法开发板为例 查看原理图,发现led接的引脚是 GPIO1_IO3,对应 /sys/kernel/debug/gpio 中的 gpiochip0 组,gpiochip0 组从0开始算起, 所以 GPIO1_IO3 对应的标号就

    2024年02月10日
    浏览(75)
  • 嵌入式linux项目之智能仓储(基于正点原子IMX6ULL开发板)

    提示:该项目根据华清远见智能仓储项目改版,将他的A9开发板换成了自己的IMX6ULL开发板。同时等我将该项目整个流程完成之后,会为大家附上适配正点原子linux开发板的全部代码 (代码资料和视频教程私聊) 视频教程 相应课程配套源码 本人其他项目链接基于linux的智能仓储项

    2024年01月16日
    浏览(81)
  • 【IMX6ULL驱动开发学习】05.IMX6ULL驱动开发_编写第一个hello驱动【熬夜肝】

    经过以下四个步骤,终于可以开始驱动开发了 01.安装交叉编译环境【附下载地址】 02.IMX6ULL烧写Linux系统 03.设置IMX6ULL开发板与虚拟机在同一网段 04.IMX6ULL开发板与虚拟机互传文件 一、获取内核、编译内核 二、创建vscode工作区,添加内核目录和个人目录 三、了解驱动程序编写

    2024年02月06日
    浏览(49)
  • 【IMX6ULL驱动开发学习】15.IMX6ULL驱动开发问题记录(sleep被kill_fasync打断)

    发现问题的契机: 学习异步通知的时候,自己实现一个功能:按键控制蜂鸣器,同时LED灯在闪烁 结果:LED好像也同时被按键控制了 最后调试结果发现: 应用层的 sleep 被驱动层的 kill_fasync 打断,所以sleep没有执行完就重新进入下一次循环了 修改代码后解决该问题 解决逻辑就

    2024年02月13日
    浏览(49)
  • IMX6ull SPI 协议

    1.1 SPI SPI 全称是 Serial Perripheral Interface,也就是 串行外围设备接口 。 SPI 是 Motorola 公司推出的一种同步串行接口 技术,是一种高速、 全双工的同步通信总线 , SPI 时钟频率相比 I2C 要高很多,最高可以工作 在 上百 MH z。 SPI 以主从方式工作,通常是有一个主设备和一个或多

    2024年02月12日
    浏览(43)
  • 【IMX6ULL驱动开发学习】03.设置IMX6ULL开发板与虚拟机在同一网段(设置开发板静态IP)

    为什么要设置IMX6ULL与虚拟机通信? 因为要把在虚拟机下编译的文件传到IMX6ULL开发板上运行 设置好同一网段,可以互ping后,可以参考这篇博客,实现开发板与虚拟机的文件互传 IMX6ULL开发板与虚拟机互传文件 一、设置windows有线网卡 二、配置虚拟机双网卡(原本有一个NAT网卡

    2024年02月07日
    浏览(52)
  • IMX6ULL|libgpiod控制IO

    在Linux中,最常见的读写GPIO方式就是用GPIO sysfs interface, 是通过操作 /sys/class/gpio 目录下的 export 、 unexport 、gpio{N}/direction, gpio{N} /value (用实际引脚号替代{N})等文件实现的,经常出现shell脚本里面。 在kernel 4.8开始,加入了libgpiod的支持;而原有基于sysfs的访问方式,将被逐

    2024年01月25日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包