Skip to content
vaclavstepan edited this page Feb 25, 2017 · 21 revisions

Video recording

Hardware assisted encoding, on C920

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

Software assisted encoding

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

Python:

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.

Další poznámky:

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.

See also:

uvcdynctrl

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

v4l-utils

v4l2-ctl

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

Web notes on H.264 and C920