-
Notifications
You must be signed in to change notification settings - Fork 2
Webcam
Save to file:
v4l2-ctl --set-fmt-video=width=1920,height=1080,pixelformat=1
cvlc v4l2:///dev/video0:chroma=h264:width=2534:height=1560:fps=30 --sout 'file/ps:test.avi' -vvv
VGA h264 with main profile, takes 1 CPU, recording ends after 25 s:
avconv -f video4linux2 -video_size 640x480 -r 30 -i /dev/video1 -t 25 -preset superfast -profile:v main -pix_fmt yuv420p -r 30 -y webcam.mkv
With fast preset you get a better image, but 360% CPU consumption. If fast is desired, r has to be limited to 10 to keep it running in parallel.
VGA resolution MPEG4 with approx 1 Mbps stream:
avconv -f video4linux2 -video_size 640x480 -pix_fmt yuv420p -r 10 -i /dev/video1 -vcodec mpeg4 -qscale:v 3 webcam.avi
h264, VGA, load cca 1x CPU:
avconv -f video4linux2 -video_size 640x480 -pix_fmt yuv420p -r 30 -i /dev/video1 -preset superfast -profile:v main webcam.mkv
Kamera je dostupná na /dev/video0 přes UVC ovladač. S ním umí pracovat pygame.camera. V monitor.py zahrnuto vlákno, které jednou za čas udělá snímek.
GUI utilita v distribuci je guvcview. Command line uvccapture nefunguje, protože bere první frame, je potřeba skipnout aspoň tři, aby se obraz stabilizoval. Bo nám to bude jedno, skip 10 zní fajn.
Hezky funguje:
fswebcam -r 1600x1200 --png 3 -D 1 -S 5 -F 5 --save shot.png
fswebcam -r 1600x1200 --png 3 -D 1 -S 10 -F 20 --save shot.png
Větší rozlišení to zdá se nedá. PNG komprese docela trvá (při level 9), D je delay, S je skip na začátku, F je kolik sloučit frames do výsledku. Kritické je S, než kamera nastaví gain, aby bylo něco vidět, trvá to.
Package for UVC camera settings, available in Ubuntu. Needs permissions to access /dev/media0, /dev/media1 in order to work.
uvcdynctrl -l
Listing available devices: video1 HD Pro Webcam C920 Media controller device: /dev/media1 Entity 1: HD Pro Webcam C920. Type: 65537, Revision: 0, Flags: 1, Group-id: 0, Pads: 1, Links: 0 Device node Entity: 1, Pad 0, Flags: 1
Listing webcams:
# v4l2-ctl --list-devices
HD Pro Webcam C920 (usb-0000:00:14.0-1): /dev/video1
Integrated Camera (usb-0000:00:1a.0-1.6): /dev/video0
# v4l-ctl --all
displays current default settings.
v4l2-ctl --set-fmt-video=width=1920,height=1080,pixelformat=1
and this switches the default to FullHD, H.264 stream.
Show frame sizes (for image capture):
v4l2-ctl -d /dev/video1 --list-framesizes=YUYV
Set frame rate (does not seem to work, though):
v4l2-ctl -d /dev/video0 --set-parm=30
Setting the video parameters, see v4l2-ctl -l
It is also possible to manipulate the camera led:
v4l2-ctl --device=/dev/video0 --set-ctrl=led1_mode=2,led1_frequency=50