在实践过程中,树莓派对 USB 摄像头的支持不如 CSI 摄像头完美。偶尔会出现无法使用 USB 摄像头的情况,自带的摄像头操作命令 raspistill、raspivid 也无法使用。
而 fswebcam 这是一款小型摄像头程序(官网),则可以很好地支持 USB 摄像头。使用方法也很简便。
安装 fswebcam
安装 fswebcam,用于访问摄像头、进行拍照。
sudo apt-get install fswebcam
fswebcam 的用法
fswebcam --help
Usage: fswebcam [] [[] ... ]
Options:
-?, --help Display this help page and exit.
-c, --config Load configuration from file.
-q, --quiet Hides all messages except for errors.
-v, --verbose Displays extra messages while capturing
--version Displays the version and exits.
-l, --loop Run in loop mode.
-b, --background Run in the background.
-o, --output Output the log to a file.
-d, --device Sets the source to use.
-i, --input Selects the input to use.
-t, --tuner Selects the tuner to use.
-f, --frequency Selects the frequency use.
-p, --palette Selects the palette format to use.
-D, --delay Sets the pre-capture delay time. (seconds)
-r, --resolution Sets the capture resolution.
--fps Sets the capture frame rate.
-F, --frames Sets the number of frames to capture.
-S, --skip Sets the number of frames to skip.
--dumpframe Dump a raw frame to file.
-s, --set = Sets a control value.
--revert Restores original captured image.
--flip Flips the image. (h, v)
--crop [,] Crop a part of the image.
--scale Scales the image.
--rotate Rotates the image in right angles.
--deinterlace Reduces interlace artifacts.
--invert Inverts the images colours.
--greyscale Removes colour from the image.
--swapchannels Swap channels c1 and c2.
--no-banner Hides the banner.
--top-banner Puts the banner at the top.
--bottom-banner Puts the banner at the bottom. (Default)
--banner-colour Sets the banner colour. (#AARRGGBB)
--line-colour Sets the banner line colour.
--text-colour Sets the text colour.
--font Sets the font and/or size.
--no-shadow Disables the text shadow.
--shadow Enables the text shadow.
--title Sets the main title. (top left)
--no-title Clears the main title.
--subtitle Sets the sub-title. (bottom left)
--no-subtitle Clears the sub-title.
--timestamp Sets the timestamp format. (top right)
--no-timestamp Clears the timestamp.
--gmt Use GMT instead of local timezone.
--info Sets the info text. (bottom right)
--no-info Clears the info text.
--underlay Sets the underlay image.
--no-underlay Clears the underlay.
--overlay Sets the overlay image.
--no-overlay Clears the overlay.
--jpeg Outputs a JPEG image. (-1, 0 - 95)
--png Outputs a PNG image. (-1, 0 - 10)
--save Save image to file.
--exec Execute a command and wait for it to complete.
使用 fswebcam
命令行下查看 /dev/下有video0 的设备。
运行 lsusb 命令,有相关摄像头的信息。
在终端中运行下面的命令来抓去一张来自摄像头的照片。
fswebcam --no-banner -r 640x480 image.jpg
或者你可以直接用:
fswebcam image.jpg
可以直接拍照,-d 用于指定使用哪个摄像头设备。-r 指定图片的分辨率,最后的是照片保存的路径。
如果拍摄出来的照片是一片漆黑,可能和摄像头启动延迟有关,可以通过加 -S 参数来跳过前面几帧解决。例如使用命令:
fswebcam -S 10 image.jpg