jjzjj

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

大城市的小蜗牛 2023-11-06 原文

文章目录


前言

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


1、总体方案介绍

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

2、配置v4l2驱动与UVC驱动

  1. 因为正点原子的内核源码默认没有开启,UVC设备类驱动,需要自己配置并编译

  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开发板

      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)的更多相关文章

  1. STM32 OTA应用开发——通过USB实现OTA升级 - 2

    STM32OTA应用开发——通过USB实现OTA升级目录STM32OTA应用开发——通过USB实现OTA升级前言1环境搭建2功能描述3BootLoader的制作4APP的制作5烧录下载配置6运行测试结束语前言什么是OTA?百度百科:空中下载技术(Over-the-AirTechnology;OTA),是通过移动通信的空中接口实现对移动终端设备及SIM卡数据进行远程管理的技术。经过公网多年的应用与发展,已十分成熟,网络运营商通过OTA技术实现SIM卡远程管理,还能提供移动化的新业务下载功能。实际上,现在我们所说的OTA比百度百科的定义还要更广泛,OTA的形式已经不再局限于手机和SIM卡,只要涉及

  2. ruby - 如何在不使用 Ruby 和 WMI 进行轮询的情况下检测 USB 插入? - 2

    我阅读了以下文章:UsingRuby&WMItoDetectaUSBDrive但是,此方法需要我在循环内保持轮询。是否可以注册并在插入/弹出USB时通知我的脚本?我正在寻找WindowsXP解决方案。 最佳答案 对于Ruby,我帮不了你太多,但WMI也支持受监视的事件。存在一个名为Win32_DeviceChangeEvent的外部事件.这是使用它的简单PowerShell代码:$query="SELECT*FROMWin32_DeviceChangeEventWHEREEventType=2"Register-WMIEvent-Q

  3. 萤石开放平台——怎么通过API接口远程添加摄像头? - 2

    高科技摄像头特别是海康萤石摄像头,已经不再只局限于简单的视频功能,特别是智能AI的普及,摄像头也华丽变身成了一个个独立的智能个体,可以实现人脸抓拍,人形检测,客流统计等店铺值守场景,也可以实现安全帽识别,车辆识别,非法入侵识别等智慧工地场景。但用户也许会问,摄像头又不会说话,他得知的这些信息怎么告诉我们,还是说需要配一个主机去处理,这成本又有点太高了。这点正是萤石云要为大家解决的,下面来介绍下如何让设备更简便智能的说话。API(应用程序编程接口)提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力。形象一点API可以理解为一个管道,通过该管道,可以传入约定好的命令,来获得摄像头的反馈,

  4. javascript - 使用网络摄像头捕捉图像 - 2

    我正在使用Asp.netMVC4开发一个项目。我需要用网络摄像头拍照。此应用程序应该可以配置为任何平板电脑。目前在台式机上运行该应用程序,在平板电脑上没有。我正在使用jscam.swf和jscam_canvas_only.swf。在平板电脑上,我在这些设备上使用SamsungGalaxy安装adobeflashplayer无法正常工作...有人知道其他一些拍照技术,或者如果有人可以帮助我解决这个问题,我将不胜感激 最佳答案 Flash在Android平板电脑上的支持有限,在iOS设备上不支持。更好的解决方案可能是转向100%HTML

  5. javascript - WebRTC/getUserMedia API 教程 - 多个摄像头 - 2

    有谁知道可以让两个用户通过网络摄像头相互连接的WebRTC/getUserMediaAPI脚本的好教程?一个恰当的例子应该是Chatroulette,只是它不需要那么大。并且应该可以在本地主机上创建它。希望有人能帮帮我! 最佳答案 使用SimpleWebRTC与Signallingserver实现你的目标。在mainsite找到更多信息您将需要nodejs来运行信令服务器,或者您可以使用simplewebrtcsignallingserver用于测试目的。虽然屏幕共享仅适用于HTTPS。工作DEMOSimpleWebRTCDemoS

  6. javascript - 水平翻转 .​​getUserMedia 的网络摄像头图像流 - 2

    所以我一直在搞乱这个页面:https://tutorialzine.github.io/pwa-photobooth/基本上它的作用是激活您的网络摄像头并让您直接从流中拍摄快照,我为我的网络借用了它,但视频流被翻转了,我想镜像视频流以便感觉更好。注意:我是一个js新手,所以欢迎详细解释。这是代码,您可能必须使用Firefox而不是Chrome:$('.closecam').click(function(){$('.webcam__overlay').hide();}); $('.camera').click(function(){$('.webcam__overlay').show()

  7. 【USB】Android实现读写USB串口数据 - 2

    最近在研究USB方面的内容;先后做了关于Android读写HID、串口设备的DEMO。本文比较简单,主要介绍的是Android实现读取串口数据的功能废话不多说,先看一下业务层是如何调用的;如图:首先,监听USB连接状况,当USB进行请求USB权限,当USB权限申请成功,进行调用打开Usb设备的方法;当监听到USB断开,进行关闭连接;这是向串口写入数据的方法;本DEMO主要使用Handle进行数据各个线程之间的数据传到,以及USB连接读写情况的反馈;下面直接上代码:连接USB设备的代码publicvoidopenCDC(UsbDeviceusbDevice,UsbDeviceConnection

  8. javascript - 我正在使用移动宽带 USB 内存棒,它正在将脚本插入到我的页面中。我怎样才能阻止它? - 2

    我最近开始使用3G移动宽带U盘。它来自英国移动通信公司T-Mobile。一切似乎都很好,直到我尝试通过将网站上传到我的实时服务器来测试我一直在本地开发的网站。当我查看实时网站的代码时,我发现发生了两件奇怪的事情:一个脚本被插入到我的文档的头部:我可以在我的代码中加入什么来防止脚本插入吗?通常我的css包含在我的页面中,例如:但是现在当我查看我的源代码时,css已直接插入到脚本标记之间的页面中,例如:div.calendar{color:#000;font-family:Verdana,Geneva,Arial,Helvetica,sans-serif;-moz-box-shadow:0

  9. javascript - 如何使对象在 three.js 场景中仅对一个摄像机可见 - 2

    我使用three.js创建了一个用于3D场景的嵌入式轨迹球相机Controller。目前,这使用一个小立方体、一个圆和一个放置在世界原点的正交相机。然而,这三个对象在场景本身中仍然可见,如通过主摄像机所见。(在我下面的演示代码中,我特意将立方体设为10x10x10,以便清晰可见,但它可以做得更小。)此外,作为主场景一部分的穿过原点的元素在插图中可见。例如:插图中可以看到属于主场景的AxisHelper。是否可以在three.js/webgl中使某些对象仅对某些相机可见?如果没有,那么一个解决方法是将轨迹球功能所需的对象放置在远离深空的地方,主摄像头看不到它们,但如果可能的话我更喜欢更纯

  10. javascript - 在 Javascript 中监控 WebRTC 视频(媒体)流质量 - 2

    我正在使用WebRTC在对等点之间传输视频,但某些客户端的网络条件变化通常会导致接收到的视频流质量发生变化。人们将这些质量下降归咎于服务,显然我(服务)无法对他们的网络状况做任何事情。但是在客户端显示由于网络状况导致质量下降的指示很可能会缓解此问题。我已经在Google和Stackoverflow上搜索了一段时间,但没有看到任何与传入音频或视频流的质量检测相关的问题。有没有办法在直播期间监控质量(当前比特率或丢帧等)? 最佳答案 getStats()如果您想以编程方式实时访问信息,API就是您所需要的。webrtc-internal

随机推荐