v4l2-ctl使用帮助可以参考:https://www.mankier.com/1/v4l2-ctl
列出所有设备
- USB 2.0 Camera: USB Camera (usb-0000:00:14.0-9):
- /dev/video0
- /dev/video1
一个USB camera对应两个设备:一个是图像/视频采集,一个是metadata采集。
列出指定设备的预览支持格式
v4l2-ctl --list-formats-ext --device /dev/video0
- ioctl: VIDIOC_ENUM_FMT
- Type: Video Capture
-
- [0]: 'MJPG' (Motion-JPEG, compressed)
- Size: Discrete 2592x1944
- Interval: Discrete 0.033s (30.000 fps)
- Interval: Discrete 0.040s (25.000 fps)
- Interval: Discrete 0.050s (20.000 fps)
- Interval: Discrete 0.067s (15.000 fps)
- Interval: Discrete 0.100s (10.000 fps)
- Interval: Discrete 0.200s (5.000 fps)
- Interval: Discrete 0.033s (30.000 fps)
- Interval: Discrete 0.040s (25.000 fps)
- Interval: Discrete 0.050s (20.000 fps)
- Interval: Discrete 0.067s (15.000 fps)
- Interval: Discrete 0.100s (10.000 fps)
- Interval: Discrete 0.200s (5.000 fps)
- Size: Discrete 2560x1440
- Interval: Discrete 0.033s (30.000 fps)
- Interval: Discrete 0.050s (20.000 fps)
- Interval: Discrete 0.067s (15.000 fps)
- Interval: Discrete 0.100s (10.000 fps)
- Size: Discrete 2048x1536
- Interval: Discrete 0.033s (30.000 fps)
- Interval: Discrete 0.040s (25.000 fps)
- Interval: Discrete 0.050s (20.000 fps)
- Interval: Discrete 0.067s (15.000 fps)
- Interval: Discrete 0.100s (10.000 fps)
- Interval: Discrete 0.200s (5.000 fps)
- Size: Discrete 1920x1080
- Interval: Discrete 0.033s (30.000 fps)
- Interval: Discrete 0.040s (25.000 fps)
- Interval: Discrete 0.050s (20.000 fps)
- Interval: Discrete 0.067s (15.000 fps)
- Interval: Discrete 0.100s (10.000 fps)
- Interval: Discrete 0.200s (5.000 fps)
- Size: Discrete 1600x1200
- Interval: Discrete 0.033s (30.000 fps)
- Interval: Discrete 0.040s (25.000 fps)
- Interval: Discrete 0.050s (20.000 fps)
- Interval: Discrete 0.067s (15.000 fps)
- Interval: Discrete 0.100s (10.000 fps)
- Interval: Discrete 0.200s (5.000 fps)
- Size: Discrete 1280x960
- Interval: Discrete 0.033s (30.000 fps)
- Interval: Discrete 0.040s (25.000 fps)
- Interval: Discrete 0.050s (20.000 fps)
- Interval: Discrete 0.067s (15.000 fps)
- Interval: Discrete 0.100s (10.000 fps)
- Interval: Discrete 0.200s (5.000 fps)
- Size: Discrete 1280x720
- Interval: Discrete 0.033s (30.000 fps)
- Interval: Discrete 0.040s (25.000 fps)
- Interval: Discrete 0.050s (20.000 fps)
- Interval: Discrete 0.067s (15.000 fps)
- Interval: Discrete 0.100s (10.000 fps)
- Interval: Discrete 0.200s (5.000 fps)
- Size: Discrete 1024x768
- Interval: Discrete 0.033s (30.000 fps)
- Interval: Discrete 0.040s (25.000 fps)
- Interval: Discrete 0.050s (20.000 fps)
- Interval: Discrete 0.067s (15.000 fps)
- Interval: Discrete 0.100s (10.000 fps)
- Interval: Discrete 0.200s (5.000 fps)
- Size: Discrete 800x600
- Interval: Discrete 0.033s (30.000 fps)
- Interval: Discrete 0.040s (25.000 fps)
- Interval: Discrete 0.050s (20.000 fps)
- Interval: Discrete 0.067s (15.000 fps)
- Interval: Discrete 0.100s (10.000 fps)
- Interval: Discrete 0.200s (5.000 fps)
- Size: Discrete 640x480
- Interval: Discrete 0.033s (30.000 fps)
- Interval: Discrete 0.040s (25.000 fps)
- Interval: Discrete 0.050s (20.000 fps)
- Interval: Discrete 0.067s (15.000 fps)
- Interval: Discrete 0.100s (10.000 fps)
- Interval: Discrete 0.200s (5.000 fps)
- Size: Discrete 320x240
- Interval: Discrete 0.033s (30.000 fps)
- Interval: Discrete 0.040s (25.000 fps)
- Interval: Discrete 0.050s (20.000 fps)
- Interval: Discrete 0.067s (15.000 fps)
- Interval: Discrete 0.100s (10.000 fps)
- Interval: Discrete 0.200s (5.000 fps)
- Size: Discrete 2592x1944
- Interval: Discrete 0.033s (30.000 fps)
- Interval: Discrete 0.040s (25.000 fps)
- Interval: Discrete 0.050s (20.000 fps)
- Interval: Discrete 0.067s (15.000 fps)
- Interval: Discrete 0.100s (10.000 fps)
- Interval: Discrete 0.200s (5.000 fps)
- Interval: Discrete 0.033s (30.000 fps)
- Interval: Discrete 0.040s (25.000 fps)
- Interval: Discrete 0.050s (20.000 fps)
- Interval: Discrete 0.067s (15.000 fps)
- Interval: Discrete 0.100s (10.000 fps)
- Interval: Discrete 0.200s (5.000 fps)
- [1]: 'YUYV' (YUYV 4:2:2)
- Size: Discrete 2592x1944
- Interval: Discrete 0.200s (5.000 fps)
- Interval: Discrete 0.200s (5.000 fps)
- Size: Discrete 2048x1536
- Interval: Discrete 0.200s (5.000 fps)
- Size: Discrete 1920x1080
- Interval: Discrete 0.200s (5.000 fps)
- Size: Discrete 1600x1200
- Interval: Discrete 0.200s (5.000 fps)
- Size: Discrete 1280x960
- Interval: Discrete 0.200s (5.000 fps)
- Size: Discrete 1280x720
- Interval: Discrete 0.100s (10.000 fps)
- Size: Discrete 1024x768
- Interval: Discrete 0.100s (10.000 fps)
- Size: Discrete 800x600
- Interval: Discrete 0.050s (20.000 fps)
- Size: Discrete 640x480
- Interval: Discrete 0.033s (30.000 fps)
- Interval: Discrete 0.040s (25.000 fps)
- Interval: Discrete 0.050s (20.000 fps)
- Interval: Discrete 0.067s (15.000 fps)
- Interval: Discrete 0.100s (10.000 fps)
- Interval: Discrete 0.200s (5.000 fps)
- Size: Discrete 320x240
- Interval: Discrete 0.033s (30.000 fps)
- Interval: Discrete 0.040s (25.000 fps)
- Interval: Discrete 0.050s (20.000 fps)
- Interval: Discrete 0.067s (15.000 fps)
- Interval: Discrete 0.100s (10.000 fps)
- Interval: Discrete 0.200s (5.000 fps)
- Size: Discrete 2592x1944
- Interval: Discrete 0.200s (5.000 fps)
- Interval: Discrete 0.200s (5.000 fps)
v4l2-ctl --list-formats-ext --device /dev/video1
- ioctl: VIDIOC_ENUM_FMT
- Type: Video Capture
获取指定设备的所有信息
v4l2-ctl --all --device /dev/video0
- Driver Info:
- Driver name : uvcvideo
- Card type : USB 2.0 Camera: USB Camera
- Bus info : usb-0000:00:14.0-9
- Driver version : 5.11.22
- Capabilities : 0x84a00001
- Video Capture
- Metadata Capture
- Streaming
- Extended Pix Format
- Device Capabilities
- Device Caps : 0x04200001
- Video Capture
- Streaming
- Extended Pix Format
- Priority: 2
- Video input : 0 (Camera 1: ok)
- Format Video Capture:
- Width/Height : 1920/1080
- Pixel Format : 'MJPG' (Motion-JPEG)
- Field : None
- Bytes per Line : 0
- Size Image : 4147789
- Colorspace : Default
- Transfer Function : Default (maps to Rec. 709)
- YCbCr/HSV Encoding: Default (maps to ITU-R 601)
- Quantization : Default (maps to Full Range)
- Flags :
- Crop Capability Video Capture:
- Bounds : Left 0, Top 0, Width 1920, Height 1080
- Default : Left 0, Top 0, Width 1920, Height 1080
- Pixel Aspect: 1/1
- Selection Video Capture: crop_default, Left 0, Top 0, Width 1920, Height 1080, Flags:
- Selection Video Capture: crop_bounds, Left 0, Top 0, Width 1920, Height 1080, Flags:
- Streaming Parameters Video Capture:
- Capabilities : timeperframe
- Frames per second: 30.000 (30/1)
- Read buffers : 0
- brightness 0x00980900 (int) : min=-64 max=64 step=1 default=0 value=0
- contrast 0x00980901 (int) : min=0 max=64 step=1 default=32 value=32
- saturation 0x00980902 (int) : min=0 max=128 step=1 default=70 value=70
- hue 0x00980903 (int) : min=-40 max=40 step=1 default=0 value=0
- white_balance_temperature_auto 0x0098090c (bool) : default=1 value=1
- gamma 0x00980910 (int) : min=72 max=500 step=1 default=100 value=100
- gain 0x00980913 (int) : min=0 max=100 step=1 default=0 value=0
- power_line_frequency 0x00980918 (menu) : min=0 max=2 default=1 value=1
- 0: Disabled
- 1: 50 Hz
- 2: 60 Hz
- white_balance_temperature 0x0098091a (int) : min=2800 max=6500 step=1 default=4600 value=4600 flags=inactive
- sharpness 0x0098091b (int) : min=0 max=6 step=1 default=3 value=3
- backlight_compensation 0x0098091c (int) : min=0 max=2 step=1 default=1 value=1
- exposure_auto 0x009a0901 (menu) : min=0 max=3 default=3 value=3
- 1: Manual Mode
- 3: Aperture Priority Mode
- exposure_absolute 0x009a0902 (int) : min=1 max=5000 step=1 default=157 value=157 flags=inactive
v4l2-ctl --all --device /dev/video1
- Driver Info:
- Driver name : uvcvideo
- Card type : USB 2.0 Camera: USB Camera
- Bus info : usb-0000:00:14.0-9
- Driver version : 5.11.22
- Capabilities : 0x84a00001
- Video Capture
- Metadata Capture
- Streaming
- Extended Pix Format
- Device Capabilities
- Device Caps : 0x04a00000
- Metadata Capture
- Streaming
- Extended Pix Format
- Priority: 2
- Format Metadata Capture:
- Sample Format : 'UVCH' (UVC Payload Header Metadata)
- Buffer Size : 1024
从特定设备以特定分辨率抓图
v4l2-ctl --device /dev/video0 --set-fmt-video=width=1920,height=1080,pixelformat=MJPG --stream-mmap --stream-to=./output_1920.jpg --stream-count=1
v4l2-ctl --device /dev/video0 --set-fmt-video=width=2560,height=1440,pixelformat=MJPG --stream-mmap --stream-to=./output_2560.jpg --stream-count=1
v4l2-ctl --device /dev/video0 --set-fmt-video=width=2592,height=1944,pixelformat=MJPG --stream-mmap --stream-to=./output_2592.jpg --stream-count=1
FastStoneImageViewer对比看图,1920x1080先scale到2560*1080。
v4l2-ctl --device /dev/video0 --set-fmt-video=width=1920,height=1080,pixelformat=YUYV --stream-mmap --stream-to=./output_1920.yuyv --stream-count=1
...
从特定设备以特定分辨率抓流
v4l2-ctl --device /dev/video0 --set-fmt-video=width=1920,height=1080,pixelformat=MJPG --stream-mmap --stream-to=./output --stream-count=100
支持264的可以编码为h264看
v4l2-ctl --device /dev/video0 --set-fmt-video=width=1920,height=1080,pixelformat=H264 --stream-mmap --stream-to=./output --stream-count=100
v4l2-ctl --device /dev/video0 --set-fmt-video=width=1920,height=1080,pixelformat=MJPG --stream-mmap --stream-to=./output.mjpg --stream-count=300
找到了可以播放mjpg格式的软件:完美解码的PotPlayer
注意:output.mjpg是输出的文件,默认用PotPlayer软件打开
v4l2-ctl --device /dev/video0 --set-fmt-video=width=2560,height=1440,pixelformat=MJPG --stream-mmap --stream-to=./output_2560.mjpg --stream-count=30
v4l2-ctl --device /dev/video0 --set-fmt-video=width=2592,height=1944,pixelformat=MJPG --stream-mmap --stream-to=./output_2592.mjpg --stream-count=300
列出设备控制值
v4l2-ctl --list-ctrls --device /dev/video0
- brightness 0x00980900 (int) : min=-64 max=64 step=1 default=0 value=0
- contrast 0x00980901 (int) : min=0 max=64 step=1 default=32 value=32
- saturation 0x00980902 (int) : min=0 max=128 step=1 default=70 value=70
- hue 0x00980903 (int) : min=-40 max=40 step=1 default=0 value=0
- white_balance_temperature_auto 0x0098090c (bool) : default=1 value=1
- gamma 0x00980910 (int) : min=72 max=500 step=1 default=100 value=100
- gain 0x00980913 (int) : min=0 max=100 step=1 default=0 value=0
- power_line_frequency 0x00980918 (menu) : min=0 max=2 default=1 value=1
- white_balance_temperature 0x0098091a (int) : min=2800 max=6500 step=1 default=4600 value=4600 flags=inactive
- sharpness 0x0098091b (int) : min=0 max=6 step=1 default=3 value=3
- backlight_compensation 0x0098091c (int) : min=0 max=2 step=1 default=1 value=1
- exposure_auto 0x009a0901 (menu) : min=0 max=3 default=3 value=3
- exposure_absolute 0x009a0902 (int) : min=1 max=5000 step=1 default=157 value=157 flags=inactive
Stream video from /dev/video0 and stream it over the network
Stream video from /dev/video0 using DMABUFs exported from /dev/video2
Stream video from a memory-to-memory device
Stream video from a capture video device (/dev/video1) to an output video device (/dev/video2)