Hi all,
I am really new to Aravis and my goal is to use Aravis to detect my GigE camera and then create /dev/videoX via v4l2loopback as suggested in Gstreamer pipelines to use GigE cams as webcam for Zoom/Teams/Skype ยท GitHub.
I followed the steps mentioned in the website with my MindVision Camera. I can see the real-time image from the camera by arv-viewer-0.8
. However, when I tried gst-launch-1.0 aravissrc ! videoconvert ! xvimagesink
, I got error:
~/aravis/build$ gst-launch-1.0 aravissrc ! videoconvert ! xvimagesink
Setting pipeline to PAUSED ...
** (gst-launch-1.0:29128): CRITICAL **: 16:37:32.719: arv_camera_uv_set_usb_mode: assertion 'arv_camera_is_uv_device (camera)' failed
Pipeline is live and does not need PREROLL ...
ERROR: from element /GstPipeline:pipeline0/GstAravis:aravis0: Could not read camera "": [AcquisitionFrameRateAbs:ArvGcIntegerNode] Not a ArvGcFloat
Additional debug info:
../gst/gstaravis.c(445): gst_aravis_init_error (): /GstPipeline:pipeline0/GstAravis:aravis0
ERROR: pipeline doesn't want to preroll.
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...
I can do the similar thing by using fake camera instead of my camera:
arv-fake-gv-camera-0.8 # In one terminal
gst-launch-1.0 aravissrc ! videoconvert ! xvimagesink # In another terminal
A moving test video is observed from the popup window.
Lists of devices and some debug messages are listed below.
Computer: Nvidia Jetson nano (4GB)
Camera: MindVision-GE500C-051050520768 (GigE camera)
arv-tool-0.8 features:
~/aravis/build$ arv-tool-0.8 features
MindVision-GE500C-051050520768 (10.0.20.78)
Category : 'Root'
Category : 'DeviceControl'
StringReg : [RO] 'DeviceModelName'
StringReg : [RO] 'DeviceFirmwareVersion'
Float : [RO] 'DeviceTemperature'
Category : 'AcquisitionControl'
Enumeration : [RW] 'AcquisitionMode'
EnumEntry : 'SingleFrame'
EnumEntry : 'Continuous'
Command : [WO] 'AcquisitionStart'
Command : [WO] 'AcquisitionStop'
Enumeration : [RW] 'AcquisitionFrameRate'
EnumEntry : 'Super'
EnumEntry : 'High'
EnumEntry : 'Mid'
EnumEntry : 'Low'
Boolean : [RW] 'AcquisitionFrameRateEnable'
Integer : [RW] 'AcquisitionFrameRateAbs'
Integer : [RW] 'AcquisitionFrameSendConfig'
Category : 'TriggerControl'
Enumeration : [RW] 'TriggerMode'
EnumEntry : 'On_GRR'
EnumEntry : 'On'
EnumEntry : 'Off'
Integer : [RW] 'TriggerCount'
Integer : [RW] 'TriggerInterval'
Enumeration : [RW] 'TriggerActivation'
EnumEntry : 'LowLevel'
EnumEntry : 'HighLevel'
EnumEntry : 'AnyEdge'
EnumEntry : 'FallingEdge'
EnumEntry : 'RisingEdge'
Integer : [RW] 'ExtTrigJitterTime'
Integer : [RW] 'TriggerDelay'
Enumeration : [RW] 'StrobeMode'
EnumEntry : 'Custom'
EnumEntry : 'Auto'
Integer : [RW] 'StrobeDelay'
Integer : [RW] 'StrobeWidth'
Command : [WO] 'TriggerSoftware'
Category : 'ImageFormatControl'
Enumeration : [RW] 'PixelFormat'
EnumEntry : 'BayerBG12'
EnumEntry : 'BayerGB12'
EnumEntry : 'BayerGR12'
EnumEntry : 'BayerRG12'
EnumEntry : 'BayerBG12Packed'
EnumEntry : 'BayerGB12Packed'
EnumEntry : 'BayerGR12Packed'
EnumEntry : 'BayerRG12Packed'
EnumEntry : 'BayerBG8'
EnumEntry : 'BayerGB8'
EnumEntry : 'BayerGR8'
EnumEntry : 'BayerRG8'
Boolean : [RW] 'ReverseX'
Boolean : [RW] 'ReverseY'
Enumeration : [RW] 'ResolutionPresetSel'
EnumEntry : 'Custom'
EnumEntry : 'Resol8'
EnumEntry : 'Resol7'
EnumEntry : 'Resol6'
EnumEntry : 'Resol5'
EnumEntry : 'Resol4'
EnumEntry : 'Resol3'
EnumEntry : 'Resol2'
EnumEntry : 'Resol1'
Enumeration : [RW] 'ResolutionMod'
EnumEntry : 'BINAVR4X'
EnumEntry : 'BINAVR2X'
EnumEntry : 'BINSUM4X'
EnumEntry : 'BINSUM2X'
EnumEntry : 'Normal'
Integer : [RW] 'OffsetX'
Integer : [RW] 'OffsetY'
Integer : [RW] 'Width'
Integer : [RW] 'Height'
Integer : [RO] 'WidthMax'
Integer : [RO] 'HeightMax'
Category : 'ExposureControl'
Enumeration : [RW] 'ExposureAuto'
EnumEntry : 'Continuous'
EnumEntry : 'Off'
Integer : [RW] 'AutoExposureTarget'
Float : [RW] 'ExposureTime'
Float : [RO] 'ExposureTimeMin'
Category : 'AnalogControls'
Float : [RW] 'Gain'
Integer : [RW] 'Contrast'
Integer : [RW] 'Gamma'
Category : 'ColorControl'
Boolean : [RW] 'ColorTemperatureAutoSel'
Enumeration : [RW] 'ColorTemperatureIndex'
EnumEntry : 'Custom'
EnumEntry : 'Index3'
EnumEntry : 'Index2'
EnumEntry : 'Index1'
Integer : [RW] 'RGain'
Integer : [RW] 'GGain'
Integer : [RW] 'BGain'
Command : [WO] 'WBOnce'
Integer : [RW] 'Saturation'
Category : 'DigitalIOControl'
Enumeration : [RW] 'In0Mod'
EnumEntry : 'TriggerInput'
EnumEntry : 'GPInput'
Enumeration : [RW] 'Out0Mod'
EnumEntry : 'PWMOutput'
EnumEntry : 'StrobeOutput'
EnumEntry : 'GPOutput'
Enumeration : [RW] 'Out1Mod'
EnumEntry : 'PWMOutput'
EnumEntry : 'GPOutput'
Integer : [RO] 'GPIn0'
Integer : [RO] 'GPIn1'
Integer : [RO] 'GPIn2'
Integer : [RW] 'GPOut0'
Integer : [RW] 'GPOut1'
Integer : [RW] 'GPOut2'
Integer : [RW] 'GPOut3'
Integer : [RW] 'PWMOut0Cycle'
Integer : [RW] 'PWMOut0Duty'
Integer : [RW] 'PWMOut1Cycle'
Integer : [RW] 'PWMOut1Duty'
Category : 'GigeVisionControl'
Integer : [RO] 'PayloadSize'
Boolean : [RW] 'GevCurrentIPConfigurationPersistentIP'
Integer : [RO] 'GevCurrentIPAddress'
Integer : [RO] 'GevCurrentSubnetMask'
Integer : [RO] 'GevCurrentDefaultGateway'
Enumeration : [RO] 'GevIPConfigurationStatus'
EnumEntry : 'ForceIP'
EnumEntry : 'LLA'
EnumEntry : 'DHCP'
EnumEntry : 'PersistentIP'
EnumEntry : 'None'
Integer : [RW] 'GevPersistentIPAddress'
Integer : [RW] 'GevPersistentSubnetMask'
Integer : [RW] 'GevPersistentDefaultGateway'
Integer : [RO] 'GevLinkSpeed'
Integer : [RW] 'GevHeartbeatTimeout'
Boolean : [RW] 'GevGVCPHeartbeatDisable'
Enumeration : [RW] 'GevCCP'
EnumEntry : 'ControlAccessSwitchoverActive'
EnumEntry : 'ControlAccess'
EnumEntry : 'ExclusiveAccess'
EnumEntry : 'OpenAccess'
Integer : [RW] 'GevPrimaryApplicationSocket'
Integer : [RW] 'GevPrimaryApplicationIPAddress'
Integer : [RW] 'GevSCPHostPort'
Integer : [RW] 'GevSCPSPacketSize'
Integer : [RW] 'GevSCPD'
Integer : [RW] 'GevSCDA'
Integer : [RW] 'GevSCSP'
Category : 'UserSetControl'
Enumeration : [RW] 'UserSetSelector'
* UserSetLoad
* UserSetSave
EnumEntry : 'UserSet2'
EnumEntry : 'UserSet1'
EnumEntry : 'Default'
Command : [WO] 'UserSetLoad'
Command : 'UserSetSave' (Not available)
Enumeration : [RW] 'UserSetDefaultSelector'
EnumEntry : 'UserSet2'
EnumEntry : 'UserSet1'
EnumEntry : 'Default'
Category : 'SensorCorrection'
Integer : [RW] 'CcdTap1GainStep'
Integer : [RW] 'CcdTap2GainStep'
Integer : [RW] 'CcdTap3GainStep'
Integer : [RW] 'CcdTap4GainStep'
Command : [WO] 'SensorCorrectionDataSave'
ARV_DEBUG=all ./gst/gst-aravis-launch aravissrc ! videoconvert ! ximagesink:
~/aravis/build$ ARV_DEBUG=all ./gst/gst-aravis-launch aravissrc ! videoconvert ! ximagesink
Setting pipeline to PAUSED ...
[16:14:50.465] ๐
ธ interface> Found 0 USB3Vision device (among 5 USB devices)
[16:14:50.465] ๐
ธ interface> [GvDiscoverSocket::new] Add interface 127.0.0.1 (127.0.0.1)
[16:14:50.466] ๐
ธ interface> [GvDiscoverSocket::new] Add interface 10.0.20.149 (10.0.21.255)
[16:14:50.467] ๐
ธ interface> [GvInterface::discovery] Device 'MindVision-GE500C-051050520768' found (interface 10.0.20.149) user_id '' - MAC 'dc:a5:01:6a:04:45'
[16:14:50.467] ๐
ธ device> [GvDevice::new] Interface address = 10.0.20.149
[16:14:50.467] ๐
ธ device> [GvDevice::new] Device address = 10.0.20.78
[16:14:50.468] ๐
ธ device> [GvDevice::load_genicam] xml url = 'Local:GE_C_V1_2_180428.zip;10424000;1d62' at 0x200
[16:14:50.468] ๐
ธ device> [GvDevice::load_genicam] Xml address = 0x10424000 - size = 0x1d62 - GE_C_V1_2_180428.zip
[16:14:50.477] ๐
ธ device> [GvDevice::load_genicam] Zipped xml data
[16:14:50.516] ๐
ธ genicam> [Gc::set_default_node_data] Add 'DeviceVendorName'
[16:14:50.517] ๐
ธ genicam> [Gc::set_default_node_data] Add 'DeviceVersion'
[16:14:50.517] ๐
ธ genicam> [Gc::set_default_node_data] Add 'DeviceManufacturerInfo'
[16:14:50.517] ๐
ธ genicam> [Gc::set_default_node_data] Add 'DeviceID'
[16:14:50.517] ๐
ธ genicam> [Gc::set_default_node_data] Add 'GevStreamChannelCount'
[16:14:50.518] ๐
ธ genicam> [Gc::set_default_node_data] Add 'GevTimestampTickFrequency'
[16:14:50.519] ๐
ธ genicam> [Gc::set_default_node_data] Add 'GevSCPSDoNotFragment'
[16:14:50.519] ๐
ธ genicam> [Gc::set_default_node_data] Add 'GevSCPSBigEndian'
[16:14:50.519] ๐
ธ genicam> [Gc::set_default_node_data] Add 'GevSCPAddrCalc'
[16:14:50.520] ๐
ธ genicam> [Gc::set_default_node_data] Add 'TLParamsLocked'
[16:14:50.559] ๐
ธ device> [GvDevice::new] Device endianness = big
[16:14:50.559] ๐
ธ device> [GvDevice::new] Packet resend = yes
[16:14:50.560] ๐
ธ device> [GvDevice::new] Write memory = yes
[16:14:50.560] ๐
ธ device> [GvDevice::new] Legacy endianness handling = yes
** (gst-launch-1.0:29434): CRITICAL **: 16:14:50.561: arv_camera_uv_set_usb_mode: assertion 'arv_camera_is_uv_device (camera)' failed
Pipeline is live and does not need PREROLL ...
ERROR: from element /GstPipeline:pipeline0/GstAravis:aravis0: Could not read camera "": [AcquisitionFrameRateAbs:ArvGcIntegerNode] Not a ArvGcFloat
Additional debug info:
../gst/gstaravis.c(445): gst_aravis_init_error (): /GstPipeline:pipeline0/GstAravis:aravis0
ERROR: pipeline doesn't want to preroll.
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...
Thank you for your time!
Best,
Lester