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

文章目录

  • 前言
  • 1、总体方案介绍
  • 2、配置v4l2驱动与UVC驱动
  • 3、v4l2应用编程测试摄像头
  • 4、ffmepg移植
  • 总结


前言

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


1、总体方案介绍

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

2、配置v4l2驱动与UVC驱动

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

  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
    
    

总结

你可能感兴趣的:(#,LCD子系统,音视频,python,驱动程序,视频监控)