Discussion:
current projects using aravis ?
Adrian Daerr
2012-06-06 09:26:40 UTC
Permalink
Hello,

Now that aravis works with my camera, I have a question for this list:
do you know of open source projects using aravis to capture images to
disk and/or process them ?

I need an application that allows for preview, and recording to disk of
a ROI at a specified frequency/time interval. It is not too hard to
extend something like arv-viewer or arv-camera-test for this purpose,
but before I start hacking away I thought I'd ask whether something
along these lines has already been started: it would make more sense to
contribute and to improve a common, open-source project than to
re-invent the wheel.

cheers from Paris,
Adrian
Luca Barbato
2012-06-06 09:49:18 UTC
Permalink
Post by Adrian Daerr
do you know of open source projects using aravis to capture images to
disk and/or process them ?
I started integrating it in libav (have a look at my github for it) and
aravis has a quite good gstreamer integration. In theory and practice
you should be able to use it from any gst application.

lu
--
Luca Barbato
Gentoo/linux
http://dev.gentoo.org/~lu_zero
Josh Doe
2012-06-06 10:00:36 UTC
Permalink
Post by Luca Barbato
Post by Adrian Daerr
do you know of open source projects using aravis to capture images to
disk and/or process them ?
I started integrating it in libav (have a look at my github for it) and
aravis has a quite good gstreamer integration. In theory and practice
you should be able to use it from any gst application.
True, but I don't know of any open source (or closed) application
which is meant for capturing video from scientific/machine vision
cameras. By that I mean at least supporting ROI and extended bit
depths, both for file saving and for contrast/histogram adjustment.

I am in fact working on such an application (based on GStreamer, for
aravis/GigE but also for other interfaces like Camera Link [1]), but
it will probably be some time before I am able to release it as open
source. If anyone is interested in collaborating on this, that may
help accelerate the release process, so please contact me. There are
quite a few issues to work through, including absolute timestamping
(rather than just DTS/PTS), standard file formats for uncompressed
high bit depth video (looking at MXF), standard method of selecting
devices/cameras, and setting of their properties (CLProtocol,
GenICam).

-Josh

[1]: https://bugzilla.gnome.org/show_bug.cgi?id=666385
Luca Barbato
2012-06-06 10:27:06 UTC
Permalink
Post by Josh Doe
I am in fact working on such an application (based on GStreamer, for
aravis/GigE but also for other interfaces like Camera Link [1]), but
it will probably be some time before I am able to release it as open
source. If anyone is interested in collaborating on this, that may
help accelerate the release process, so please contact me. There are
quite a few issues to work through, including absolute timestamping
(rather than just DTS/PTS), standard file formats for uncompressed
high bit depth video (looking at MXF),
I'd rather use matroska or NUT.
Post by Josh Doe
standard method of selecting
devices/cameras, and setting of their properties (CLProtocol,
GenICam).
Interesting.

lu
--
Luca Barbato
Gentoo/linux
http://dev.gentoo.org/~lu_zero
Adrian Daerr
2012-06-06 16:21:24 UTC
Permalink
Post by Josh Doe
Post by Luca Barbato
I started integrating it in libav (have a look at my github for it) and
Thanks for the pointer, I'll hava a look.
Post by Josh Doe
Post by Luca Barbato
aravis has a quite good gstreamer integration. In theory and practice
you should be able to use it from any gst application.
True, but I don't know of any open source (or closed) application
which is meant for capturing video from scientific/machine vision
cameras. By that I mean at least supporting ROI and extended bit
depths, both for file saving and for contrast/histogram adjustment.
Yes, I have not found that kind of application either. The ROI support
in particular is quite interesting on industrial cameras in that a small
ROI often allows for higher framerates.
Post by Josh Doe
I am in fact working on such an application (based on GStreamer, for
aravis/GigE but also for other interfaces like Camera Link [1]), but
it will probably be some time before I am able to release it as open
source.
Sounds great, that corresponds to the direction I wanted to go. I'll
send a mail off list.

Adrian
Nial Peters
2012-06-06 10:15:06 UTC
Permalink
Hi Adrian,
Post by Adrian Daerr
do you know of open source projects using aravis to capture images to
disk and/or process them ?
I have been working on a small program along these lines. It is designed to be run on small single board computers, so has no preview functionality yet. My setup is that I have a camera which needs to run on as low power as possible, and sometimes without a network connection. So I have an SBC and harddisk mounted alongside the camera itself to actually do the capturing. I was planning to come up with a separate previewing program that could be run on a separate PC to query the capture code running on the SBC and see what images it is recording. No reason why both programs couldn't run on the same machine though I guess.

The code is all a bit of a mess at the moment, but I can tidy it up and put it somewhere accessible if you think it might be useful.

What sort of capture rates are you looking for?

Nial
Adrian Daerr
2012-06-06 17:06:29 UTC
Permalink
Post by Nial Peters
I have been working on a small program along these lines.
[snip]
Post by Nial Peters
The code is all a bit of a mess at the moment, but I can tidy it up and
put it somewhere accessible if you think it might be useful.
If it is not too much work I wouldn't mind having a look, but it is a
visualisation and interface part which I'd be interested in: for the
recording itself a gstreamer pipeline, preceded by a few arv-tool calls,
should do the job.

For the moment I have been using a hack around mplayer (with its bmovl
filter for overlays) and Basler's Pylon software to have an interactive
selection of the ROI. Now I want to eject Pylon, which is just causing
me headaches, in favour of aravis. Currently there are a lot of options:
- continue using my messy hack, replacing pylon under the hood,
- create a fresh stand-alone program which might be easier to share, or
contribute to such a project if someone else already made the start,
- write a camera plug-in for MicroManager [1], an ImageJ [2] extension
for hardware interfacing,
- delve into EPIC [3], which I am not at all familiar with, to see
whether that does the job without too much overhead
- ...

If I start afresh I'll try to base everything on gstreamer, which seems
to contain all or most of the building blocks I need.
Post by Nial Peters
What sort of capture rates are you looking for?
Depending on the experiment I am using the camera with, everything from
its maximum framerate down to single frames every minute.
Plus in all cases a viewer at 5-30Hz that allows me to comfortably do
the initial adjustment of lighting/focus/field-of-view/ROI/... before
recording.

Adrian


[1] http://www.micro-manager.org/
[2] http://fiji.sc/
[3] cited by Tom Cobb on this list: http://www.aps.anl.gov/epics/
http://controls.diamond.ac.uk/downloads/support/aravisGigE
Adrian Daerr
2012-06-26 19:09:38 UTC
Permalink
Post by Adrian Daerr
I need an application that allows for preview, and recording to disk
of a ROI at a specified frequency/time interval.
Hello,

Just a small message to say that I pushed a small program to

https://gitorious.org/gevcapture

which uses mplayer as a front-end for a 8bpp video stream from aravis,
and allows interactive selection of a ROI that will be recorded to disc.
The code quality is very mediocre, but it works(*) and I thought I'd
share it.

Thanks again for aravis!

Adrian


(*)
I still haven't figured out why I am not capable of getting the gst
element to work although the aravis library is working perfectly. If you
have any idea with respect to the message below I'd be glad to hear.
[following posted on june 6th with the subject 'gstreamer source
aravissrc problem']
Post by Adrian Daerr
Hello list,
In other posts I am making big plans, but actually I am still stuck
with making the gstreamer integration work with my camera. Although
arv-viewer works fine and shows a live stream, attempting to use
aravissrc, like in
ARV_DEBUG=all gst-launch
--gst-plugin-load=gst/.libs/libgstaravis-0.2.so -v aravissrc !
video/x-raw-yuv,width=512,height=512,framerate=3/1 ! autovideosink
Post by Adrian Daerr
leads to an "Internal Flow Error". The detailled output is attached
below.
[...]
Post by Adrian Daerr
I traced the error to line 305 of gst/gstaravis.c,
if (arv_buffer == NULL)
return GST_FLOW_ERROR;
, which is due to arv_stream_timeout_pop_buffer reaching the time-out
and returning a NULL buffer. Increasing
GST_ARAVIS_BUFFER_TIMEOUT_DEFAULT at the beginning of the file, and
rebuilding, does indeed increase the time until the pipeline aborts
with the "Internal Flow Error".
[...]
Emmanuel Pacaud
2012-06-26 20:02:24 UTC
Permalink
Hi Adrian,
Post by Adrian Daerr
Post by Adrian Daerr
I need an application that allows for preview, and recording to disk
of a ROI at a specified frequency/time interval.
Hello,
Just a small message to say that I pushed a small program to
https://gitorious.org/gevcapture
Thanks for sharing.
Post by Adrian Daerr
I still haven't figured out why I am not capable of getting the gst
element to work although the aravis library is working perfectly.
Does arv-viewer works for you ?

Emmanuel.

Loading...