• OpenCV的摄像头取图模块: V4L2



    1. v4l2 命令行操作

    [简书: V4L2框架概述](https:# www.jianshu.com/p/57a31ab1d95a)

    Video4Linux2,是V4L的改进版。Linux操作系统下用于采集图片、视频和音频数据的API接口,配合适当的视频采集设备和相应的驱动程序,可以实现图片、视频、音频等的采集。在远程会议、可视电话、视频监控系统和嵌入式多媒体终端中都有广泛的应用。

    sudo apt-get install libv4l-dev
    sudo apt-get install v4l-utils
    

    使用

    # 显示Camera所有信息(分辨率:Width/Height)
    v4l2-ctl -d /dev/video0 --all
    
    # 显示Camera信息
    v4l-ctl  -D
    
    # 播放yuyv422格式数据
    ffplay -i test.yuv -pix_fmt yuyv422 -s 1280x720
    
    # 获取支持的编码格式
    v4l2-ctl  --list-formats -d /dev/video4
    ioctl: VIDIOC_ENUM_FMT
        Index       : 0
        Type        : Video Capture
        Pixel Format: 'MJPG' (compressed)
        Name        : Motion-JPEG
    
        Index       : 1
        Type        : Video Capture
        Pixel Format: 'YUYV'
        Name        : YUYV 4:2:2
    
    # 获取支持的camera设备
    v4l2-ctl --list-devices -d /dev/video4
    USB Camera: USB Camera (usb-0000:00:14.0-1.2):
        /dev/video4
        /dev/video5
    
    Integrated Camera: Integrated C (usb-0000:00:14.0-8):
        /dev/video0
        /dev/video1
        /dev/video2
        /dev/video3
    
    # Camera各种模式
    v4l2-ctl -d /dev/video0 --list-ctrls
    
    # 获取支持的分辨率和编码格式
    v4l2-ctl --list-formats-ext -d /dev/video4
    

    2. pyv4l2

    github

    安装:

    pip install pyv4l2
    

    Example:

    from pyv4l2.frame import Frame
    from pyv4l2.control import Control
    
    frame = Frame('/dev/video0')
    frame_data = frame.get_frame()
    control = Control("/dev/video0")
    control.get_controls()
    control.get_control_value(9963776)
    control.set_control_value(9963776, 8)
    
  • 相关阅读:
    Java运算符>、>>、>>>三者的区别
    深入浅析react native es6语法
    javascript基础学习(十五)
    javascript基础学习(十四)
    javascript基础学习(十三)
    javascript基础学习(十二)
    javascript基础学习(十一)
    javascript基础学习(十)
    javascript基础学习(九)
    javascript基础学习(八)
  • 原文地址:https://www.cnblogs.com/brt2/p/14523913.html
Copyright © 2020-2023  润新知