Video capture from USB camera
This article describes various modes for capturing video from an USB camera.
- Board: NaonEVB-Mid
- Camera: Webcam Logitech HD C310 720p (Product page)
- Connection: USB Host 2.0
Video capture using FFmpeg and Video4Linux
FFmpeg project page: http://ffmpeg.org/
Video4Linux wiki: http://linuxtv.org/wiki/index.php/Main_Page
Video4Linux kernel documentation: http://www.mjmwired.net/kernel/Documentation/video4linux/v4l2-framework.txt
Configuring the system
The FFmpeg tool is not provided with the default NELK root file system. FFmpeg can be added to the root file system:
- manually, building it from source coder
- using a build system, as buildroot or openembedded
- installing it as a package, if the root file system features a package manager and ffmpeg is available as a package
In this article, we assume the use of a root file system built with Buildroot and customized adding the EZSDK components, as described in the Creating a RFS with Buildroot article. The FFmpeg package can be selected entering the Package selection for the target menuconfig option (see Creating_a_RFS_with_Buildroot#Configuring_Buildroot).
Before using the Video4Linux framework, it should be enabled in the kernel. The following options must be enabled:
- Device Drivers->Multimedia support
- Device Drivers->Video For Linux
- Device Drivers->Video For Linux->Video capture adapters
- Device Drivers->Video For Linux->Video capture adapters->V4L USB devices
- Device Drivers->Video For Linux->Video capture adapters->V4L USB devices->USB Video Class (UVC)
- Device Drivers->Video For Linux->Video capture adapters->V4L USB devices->UVC input events device support (NEW)
Performing the capture
The video stream from the USB camera con be captured and saved to the out.avi file using the following command:
ffmpeg -f video4linux2 -r 30 -s 640x480 -i /dev/video0 out.avi
assuming that /dev/video0 is the webcam device file.
Video capture using gstreamer
This how-to will be reported soon.