EB-RV1126-DC201开发板实现USB摄像头抓图
1126的开发板内核已经把USB的驱动配置好了,但是USB摄像头的驱动还没有配置,所以要在内核打开UVC驱动
第一步:修改rv1126_defconfig 添加以下内容
vi ./kernel/arch/arm/configs/rv1126_defconfig
CONFIG_MEDIA_USB_SUPPORT=y
CONFIG_USB_VIDEO_CLASS=y
CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
CONFIG_USB_GSPCA=m
第二步,回到SDK根目录编译
第三步:烧录好固件,使用v4l2-ctl --list-devices查看列表,会显示生成新的节点。
v4l2-ctl --all --device=/dev/video33
第四步:识别到新的节点后,就可以用这个节点抓图了,
v4l2-ctl -d /dev/video45 \
--set-fmt-video=width=1920,height=1080,pixelformat=NV12 \
--stream-mmap=3 \
--stream-skip=3 \
--stream-to=/tmp/output.jpg \
--stream-count=1 \
--stream-poll
文件存放在tmp目录下,把output.jpg取出到PC端或者使用别的方法查看即可。
v4l2-ctl -d /dev/video33 \
--set-fmt-video=width=1280,height=720,pixelformat=MJPG \
--stream-mmap=3 \
--stream-skip=3 \
--stream-to=/tmp/output.jpg \
--stream-count=1 \
--stream-poll
v4l2-ctl -d /dev/video33 \
--set-fmt-video=width=1280,height=720,pixelformat=NV12 \
--stream-mmap=3 \
--stream-skip=3 \
--stream-to=/tmp/output.yuv \
--stream-count=1 \
--stream-poll
v4l2-ctl -d /dev/video33 \
--set-fmt-video=width=640,height=480,pixelformat=NV12 \
--stream-mmap=3 \
--stream-skip=3 \
--stream-to=/tmp/output.jpg \
--stream-count=1 \
--stream-poll
v4l2-ctl 常用命令介绍:
#List all video devices:
v4l2-ctl --list-devices
#List supported video formats and resolutions of default video device
v4l2-ctl --list-formats-ext
#List supported video formats and resolutions of a specific video device:
v4l2-ctl --list-formats-ext --device path/to/video_device
#eg:
v4l2-ctl --list-formats-ext --device /dev/video0
#Get all details of a video device:
v4l2-ctl --all --device path/to/video_device
#eg:
v4l2-ctl --all --device /dev/video0
#Capture a JPEG photo with a specific resolution from video device:
v4l2-ctl --device path/to/video_device --set-fmt-video=width=width,height=height,pixelformat=MJPG --stream-mmap --stream-to=path/to/output.jpg --stream-count=1
#eg:
v4l2-ctl --device /dev/video0 --set-fmt-video=width=1280,height=720,pixelformat=MJPG --stream-mmap --stream-to=/home/nvidia/Pictures/video0-output.jpg --stream-count=1
#Capture a raw video stream from video device:
v4l2-ctl --device path/to/video_device --set-fmt-video=width=width,height=height,pixelformat=format --stream-mmap --stream-to=path/to/output --stream-count=number_of_frames_to_capture
#eg:
v4l2-ctl --device /dev/video0 --set-fmt-video=width=1280,height=720,pixelformat=MJPG --stream-mmap --stream-to=/home/nvidia/Pictures --stream-count=10
#List all video device's controls and their values:
v4l2-ctl --list-ctrls --device /path/to/video_device
#eg:
v4l2-ctl --list-ctrls --device /dev/video0