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)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM