gevCapture image acquisition software
What it does
Recording from GenICam compatible machine vision cameras
gevCapture is a program for visualising and saving a 8bpp video stream from a GigE-vision or USB3-vision compatible camera. Actually simply a bit of glue connecting the Aravis library (back-end talking to the camera) to MPlayer (used as front-end) which displays the image. See also limrendir below.
Born out of frustration with the limited capabilities and unreliability of software offered by camera vendors (often also including vendor-locking that does not play nice in a lab where we have cameras of various origins). With a strong accent on reliability — the code is a mess, but it has been doing its job great for more than fifteen years now. Multi-threaded to always prioritize capture/save over all interface-related things, and amazingly so far (fingers crossed) never deadlocking.
Subregion capturing
Acquiring from only part of the camera sensor often allows for increased frame-rate, when the pixel transfer rate is the bottleneck.
Currently allows restricting capture and/or saving to a Region Of Interest, either interactively or via the command line, and selecting frame-rate, gain and a few other parameters.
Precise timestamp information
Contrary to all other programs I have tested so far, you have a precise log of when each frame was captured:
- nano-second resolution camera capture timestamp +
- milli-second resolution computer timestamp at frame transfer completion
With that, should there be missing frames (due to noise, hardware glitches or momentary freezes), you know exactly where the gaps are in your data.
The less shiny aspects
The interface is command-line only, and the GUI a rudimentary hack piping keys to an independent visualization backend (mplayer) that sometimes reacts choppily. See the description below of limrendir for a vast improvement on this aspect.
The video-stream is recorded as raw data, producing three files:
- One file containing exclusively pixel data, line by line, frames concatenated. No header.
- One file containng the timestamps, as many lines as there are captured frames.
- One file with all meta information (camera/sensor configuration data such as height/width/framerate, processing options).
If you use ImageJ you can open the result using the Import raw
function, and of course the data can be read into matlab / python / C.
It’s just not double-click-to-open.
The software is in a hardly maintainable state, hard to read, with bits of the code currently of no use at all. I am just sharing code I use and hack as I use it. I appreciate comments and suggestions, but please understand if I do not react as you would have hoped I would. In particular, do not expect much assistance in making this work for you.
limrendir
During his PhD in my group, Grégoire Le Lay wrote limrendir, which in his words is a mashup between Aravis Viewer, which allows for user-friendly interactions with a camera including control and stream visualisation, and gevCapture, which allows for user-unfriendly recording of said stream. That says it all, check out the limrendir source code on github.
Licence
gevCapture is copyright Adrian Daerr, the University Paris Diderot (2011,2012). Bits borrowed from aravis are copyright Emmanuel Pacaud.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.
Installation
Source code
The source code for gevCapture is hosted on github.
Dependencies
-
[Aravis][] and its dependencies; first commit tested with aravis 0.1.14, try most recent version
-
[MPlayer][], (almost) any version should do
-
the pthread library
Building
Mostly it is an old-school Makefile that you should edit, if needed.
Then type make. You’re on your own from here, good luck !
Usage
For a list of options, execute with –help
The current version is very primitive:
-
it launches mplayer and tells aravis to stream from the named camera (or the first camera, if no name is given)
-
three files with the given file-name as root (default: test) are created: for the raw image date, the timestamps, and some meta-data respectively
-
the images are streamed to mplayer for display. The following keys are understood:
q ................ quit
h ................ show help
r ................ toggle Region Of Interest selection
cursor keys ...... move selection as a whole
e,s,d,f .......... move upper left corner of selection
i,j,k,l .......... move lower right corner of selection
g, SPACE ......... start acquisition
The Region Of Interest can be adjusted using the given keys. Pressing shift or caps-lock increases the step size. It should be displayed as a blue overlay.
When hitting
Last modified: 27 Aug 2026