Difference between revisions of "video 4 linux 2 notes"

From Noah.org
Jump to navigationJump to search
 
(20 intermediate revisions by the same user not shown)
Line 1: Line 1:
[[Category:Engineering]]
+
[[Category: Engineering]]
 +
[[Category: Imaging]]
  
 
= V4L2 -- Video For Linux Version Two =  
 
= V4L2 -- Video For Linux Version Two =  
Line 12: Line 13:
 
== Gstreamer ==
 
== Gstreamer ==
  
Gstreamer is fast replacing all my other command-line tools for handling video.
+
See [[gstreamer]].
  
1920x1080: This will have a low frame-rate since it will essentially max-out the USB bandwidth. It's useful for capturing individual frames without compression.
+
== Capture video and modify settings at the same time ==
<pre>
 
gst-launch v4l2src device=/dev/video0 ! 'video/x-raw-yuv,width=1920,height=1080' ! xvimagesink
 
</pre>
 
  
This will capture at a higher framerate, but it will undersample the pixels so you will get an effective 320x240 resolution.
+
Start `guvcview` with the '''--control_only''' option to display a GUI dialog to edit camera settings. This will work while another video display or capture application is already running.
 
<pre>
 
<pre>
gst-launch v4l2src device=/dev/video0 ! 'video/x-raw-yuv,width=640,height=480,framerate=60/1' ! xvimagesink
+
guvcview --control_only --device=/dev/video0
 
</pre>
 
</pre>
  
=== gstreamer fbdevsink "ERROR: Pipeline doesn't want to pause." ===
+
== fswebcam ==
  
If you are trying to use the framebuffer device for video playback then you may get an error like the one below. This is a permissions problem. Try adding '''sudo''' in front of the pipeline, or run the command as root.
+
`fswebcam` is a small and simple tool for grabbing still images from a camera. The world needs more apps like this. It can grab a single image or grab sequences of images in a loop. It can save images to a file or pipe them to stdout.
  
 
<pre>
 
<pre>
$ gst-launch videotestsrc ! ffmpegcolorspace ! fbdevsink
+
fswebcam --png --save fswebcam-test.png
Setting pipeline to PAUSED ...
 
ERROR: Pipeline doesn't want to pause.
 
Setting pipeline to NULL ...
 
Freeing pipeline ...
 
 
</pre>
 
</pre>
  
== Capture video and modify settings at the same time ==
 
  
Start `guvcview` with the '''--control_only''' option to display a GUI dialog to edit camera settings. This will work while another video display or capture application is already running.
+
 
 +
=== Common UVC patterns with `uvcdynctrl` ===
 +
 
 
<pre>
 
<pre>
guvcview --control_only --device=/dev/video0
+
apt-get install uvcdynctrl
 +
uvcdynctrl --device=/dev/video1 --clist
 +
uvcdynctrl --device=/dev/video1 --get='Focus, Auto'
 +
uvcdynctrl --device=/dev/video1 --set='Focus, Auto' 0
 +
uvcdynctrl --device=/dev/video1 --set='Focus (absolute)' 20
 
</pre>
 
</pre>
  
== fswebcam ==
+
= See also =
  
`fswebcam` is a small and simple tool for grabbing still images from a camera. The world needs more apps like this. It can grab a single image or grab sequences of images in a loop. It can save images to a file or pipe them to stdout.
+
* [[Mplayer_notes#Webcam_preview_--_play_raw_video_stream_from_video_device]]
 
+
* [[Mplayer_notes#Record_video_directly_from_video_device]]
<pre>
 
fswebcam --png --save fswebcam-test.png
 
</pre>
 

Latest revision as of 22:44, 23 June 2014


V4L2 -- Video For Linux Version Two

UVC

For a list of cameras that support UVC see the official Linux UVC site. Full UVC support in Linux:

I have been using a Logitech HD Pro Webcam C910, USB Device ID: 046d:0821, for my tests.

Gstreamer

See gstreamer.

Capture video and modify settings at the same time

Start `guvcview` with the --control_only option to display a GUI dialog to edit camera settings. This will work while another video display or capture application is already running.

guvcview --control_only --device=/dev/video0

fswebcam

`fswebcam` is a small and simple tool for grabbing still images from a camera. The world needs more apps like this. It can grab a single image or grab sequences of images in a loop. It can save images to a file or pipe them to stdout.

fswebcam --png --save fswebcam-test.png


Common UVC patterns with `uvcdynctrl`

apt-get install uvcdynctrl
uvcdynctrl --device=/dev/video1 --clist
uvcdynctrl --device=/dev/video1 --get='Focus, Auto'
uvcdynctrl --device=/dev/video1 --set='Focus, Auto' 0
uvcdynctrl --device=/dev/video1 --set='Focus (absolute)' 20

See also