背景
客戶需要設(shè)置Android usb攝像頭曝光參數(shù)
Video4Linux簡介
Video4Linux(V4L)是Linux中關(guān)于視頻設(shè)備的內(nèi)核驅(qū)動,它為針對視頻設(shè)備的應(yīng)用程序編 程提供一系列接口函數(shù),這些視頻設(shè)備包括現(xiàn)今市場上流行的TV卡、視頻捕捉卡和USB攝像頭等。對于USB口攝像頭,其驅(qū)動程序中需要提供基本的I/O操 作接口函數(shù)open、read、write、close的實現(xiàn).
linux下使用v4l-utils
- 下載
sudo apt-get install v4l-utils
- 查看設(shè)置參數(shù)
v4l2-ctl -d /dev/video0 --all
Driver Info:
Driver name : uvcvideo
Card type : USB Camera: rmoncam 720P
Bus info : usb-0000:00:14.0-4.1.3
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 : 1280/720
Pixel Format : 'MJPG' (Motion-JPEG)
Field : None
Bytes per Line : 0
Size Image : 1843200
Colorspace : sRGB
Transfer Function : Rec. 709
YCbCr/HSV Encoding: ITU-R 601
Quantization : Default (maps to Full Range)
Flags :
Crop Capability Video Capture:
Bounds : Left 0, Top 0, Width 1280, Height 720
Default : Left 0, Top 0, Width 1280, Height 720
Pixel Aspect: 1/1
Selection Video Capture: crop_default, Left 0, Top 0, Width 1280, Height 720, Flags:
Selection Video Capture: crop_bounds, Left 0, Top 0, Width 1280, Height 720, 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=100 step=1 default=50 value=50
saturation 0x00980902 (int) : min=0 max=100 step=1 default=50 value=50
hue 0x00980903 (int) : min=-180 max=180 step=1 default=0 value=0
white_balance_temperature_auto 0x0098090c (bool) : default=1 value=1
gamma 0x00980910 (int) : min=100 max=500 step=1 default=300 value=300
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=10 default=4600 value=4600 flags=inactive
sharpness 0x0098091b (int) : min=0 max=100 step=1 default=50 value=50
backlight_compensation 0x0098091c (int) : min=0 max=2 step=1 default=0 value=0
exposure_auto 0x009a0901 (menu) : min=0 max=3 default=3 value=1
1: Manual Mode
3: Aperture Priority Mode
exposure_absolute 0x009a0902 (int) : min=50 max=10000 step=1 default=166 value=50
exposure_auto_priority 0x009a0903 (bool) : default=0 value=1
pan_absolute 0x009a0908 (int) : min=-57600 max=57600 step=3600 default=0 value=0
tilt_absolute 0x009a0909 (int) : min=-43200 max=43200 step=3600 default=0 value=0
zoom_absolute 0x009a090d (int) : min=0 max=3 step=1 default=0 value=0
- 設(shè)置曝光模式
- 自動曝光(exposure_auto=3)
v4l2-ctl -d /dev/video0 -c exposure_auto=3
- 手動曝光(exposure_auto=1)
v4l2-ctl -d /dev/video0 -c exposure_auto=1
# 手動曝光范圍 min=50 max=10000 step=1 default=166
v4l2-ctl -d /dev/video0 -c exposure_absolute=50
Android下使用v4l-utils
android下使用v4l-utils,需要v4l-utils源碼交叉編譯Android的v4l-utils軟件, 命令使用方法同上.