How can I take snapshots from a webcam in ruby? I know the webcam device is on /dev/video0, but how do I get a picture from it?
I've never actually used it but hornetseye looks good. This question has also already been asked here
The Video4Linux API involves sending special ioctls to the /dev/video*
device, with data in packed structures; not something easy to do from Ruby. (It's not all that much fun from C, either.)
ruby-v4l is an extension library for capture pictures in Ruby using Video4Linux.
Orphaned in Debian because its maintainer hasn't been active since 2005, so if it doesn't work I don't think you'll be able to get much support.
A more modern solution would probably be to create proper libv4l binding for Ruby. However, I don't know of any present work on that.
Hi, I'm the developer of Hornetseye. You can capture images with the V4L2-interface of HornetsEye as follows.
require 'hornetseye'
include Hornetseye
input = V4L2Input.new '/dev/video0'
img = nil
X11Display.show { img = input.read }
img.save_ubytergb 'test.png'
Currently supported colourspaces are UYVY, YUYV, YUV420, GREY, RGB24. Note that other colourspaces such as MJPEG are not supported at the moment.