Camera not working with JITSI-desktop


#1

I’m using JITSI desktop 2.11.5608 on kUBUNTU 18.04 on a ThinkPad Computer.
Using VLC, the video cam works fine as /dev/video0.
In JITSI no picture is shown. Entering the Setting > Video > Device, the camera LED switches ON an stay ON, until I leave the Device tab. The picture frame is black. In addition to that, Tools > CreateVideoBridge is grayed out and not accessible.
Thanks for any proposal, how I can get it working?


#2

For the camera issue you can try this: Jitsi Linux Embedded webcam /dev/video0 no video, dev build
The video bridge option in jitsi desktop can be used when on the xmpp server you are using there is a jitsi-videobridge component registered, but this functionality is old and deprecated (probably not working with latest videobridges), so if you want a video conferencing experience it is recommended to use jitsi-meet, you can try it on meet.jit.si.


#3

Thanks a lot, Damian. This is what I tried:
There is no package ‘v4l2convert’ in my UBUNTU-Repository. But I found, that the file ‘v4l2convert.so’ exists in ‘/usr/lib/i386-linux-gnu/libv4l/’.
So I started JITSI in the terminal as follows and got a bunch of warnings and one fatal error:
$ LD_PRELOAD=/usr/lib/i386-linux-gnu/libv4l/v4l2convert.so jitsi
ERROR: ld.so: object ‘/usr/lib/i386-linux-gnu/libv4l/v4l2convert.so’ from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object ‘/usr/lib/i386-linux-gnu/libv4l/v4l2convert.so’ from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object ‘/usr/lib/i386-linux-gnu/libv4l/v4l2convert.so’ from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object ‘/usr/lib/i386-linux-gnu/libv4l/v4l2convert.so’ from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object ‘/usr/lib/i386-linux-gnu/libv4l/v4l2convert.so’ from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.apache.felix.framework.ext.ClassPathExtenderFactory$DefaultClassLoaderExtender (file:/usr/share/jitsi/lib/felix.jar) to method java.net.URLClassLoader.addURL(java.net.URL)
WARNING: Please consider reporting this to the maintainers of org.apache.felix.framework.ext.ClassPathExtenderFactory$DefaultClassLoaderExtender
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
ALSA lib pcm_dsnoop.c:618:(snd_pcm_dsnoop_open) unable to open slave
ALSA lib pcm_dmix.c:1052:(snd_pcm_dmix_open) unable to open slave
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
ALSA lib pcm_dmix.c:990:(snd_pcm_dmix_open) The dmix plugin supports only playback stream
ALSA lib pcm_dmix.c:1052:(snd_pcm_dmix_open) unable to open slave
2018-09-24 08:42:14.799 SCHWERWIEGEND: [21] org.jitsi.impl.neomedia.device.DeviceConfiguration.log() Failed to register custom Renderer org.jitsi.impl.neomedia.jmfext.media.renderer.video.JAWTRenderer with JMF.
java.lang.UnsatisfiedLinkError: /tmp/jna-812384476/jna13067959243865080625.tmp: libjawt.so: Kann die Shared-Object-Datei nicht öffnen: Datei oder Verzeichnis nicht gefunden
at java.base/java.lang.ClassLoader$NativeLibrary.load0(Native Method)
at java.base/java.lang.ClassLoader$NativeLibrary.load(ClassLoader.java:2424)
at java.base/java.lang.ClassLoader$NativeLibrary.loadLibrary(ClassLoader.java:2481)
at java.base/java.lang.ClassLoader.loadLibrary0(ClassLoader.java:2678)
at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2611)
at java.base/java.lang.Runtime.load0(Runtime.java:814)
at java.base/java.lang.System.load(System.java:1838)
at org.jitsi.util.JNIUtils.loadLibrary(JNIUtils.java:104)
at org.jitsi.util.JNIUtils.loadLibrary(JNIUtils.java:40)
at org.jitsi.impl.neomedia.jmfext.media.renderer.video.JAWTRenderer.(JAWTRenderer.java:99)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:291)
at org.jitsi.impl.neomedia.device.DeviceConfiguration.registerCustomRenderers(DeviceConfiguration.java:1046)
at org.jitsi.impl.neomedia.device.DeviceConfiguration.(DeviceConfiguration.java:365)
at org.jitsi.impl.neomedia.MediaServiceImpl.(MediaServiceImpl.java:160)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:488)
at java.base/java.lang.Class.newInstance(Class.java:560)
at org.jitsi.impl.libjitsi.LibJitsiImpl$ServiceLock.initializeService(LibJitsiImpl.java:196)
at org.jitsi.impl.libjitsi.LibJitsiImpl$ServiceLock.getService(LibJitsiImpl.java:131)
at org.jitsi.impl.libjitsi.LibJitsiImpl.getService(LibJitsiImpl.java:91)
at org.jitsi.impl.libjitsi.LibJitsiOSGiImpl.getService(LibJitsiOSGiImpl.java:95)
at org.jitsi.service.libjitsi.LibJitsi.invokeGetServiceOnImpl(LibJitsi.java:172)
at org.jitsi.service.libjitsi.LibJitsi.getMediaService(LibJitsi.java:124)
at net.java.sip.communicator.impl.neomedia.NeomediaActivator.start(NeomediaActivator.java:391)
at org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:697)
at org.apache.felix.framework.Felix.activateBundle(Felix.java:2240)
at org.apache.felix.framework.Felix.startBundle(Felix.java:2146)
at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1373)
at org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308)
at java.base/java.lang.Thread.run(Thread.java:844)
2018-09-24 08:42:22.760 SCHWERWIEGEND: [62] impl.protocol.sip.ProtocolProviderServiceSipImpl.register().443 No address found for ProtocolProviderServiceSipImpl(IPmyNAME (SIP))
2018-09-24 08:42:26.773 SCHWERWIEGEND: [77] impl.protocol.sip.ProtocolProviderServiceSipImpl.register().443 No address found for ProtocolProviderServiceSipImpl(IPmyNAME (SIP))
2018-09-24 08:42:34.475 SCHWERWIEGEND: [101] org.jitsi.impl.neomedia.codec.video.HFlip.log() avfilter_graph_config: -22, format AVFRAME, 640x480, class org.jitsi.impl.neomedia.codec.video.AVFrame, pixFmt 1, deviceSystemPixFmt 0x56595559
2018-09-24 08:42:34.782 SCHWERWIEGEND: [102] impl.protocol.sip.ProtocolProviderServiceSipImpl.register().443 No address found for ProtocolProviderServiceSipImpl(IPmyNAME (SIP))
$


#4

Hi Damian,
I’m quite confused now but using ‘LD_PRELOAD=/usr/lib/i386-linux-gnu/libv4l/v4l2convert.so jitsi’ now brings up the local camera picture. With my first test (ref. above), the online-status above the name / number field was not green. Now it is green and the camera picture is shown.

The issue with the online-status exists quite a while and has nothing to do with LD_PRELOAD …; after booting the PC, the first start of JITSI is OFFline (no green light); furthermore from inside JITSI, I did not find anything to switch it ONline. After File > Exit and a second start of JITSI, it starts ONline and with the command above even with camera.

Any idea, why it needs a second start?
Thank you.


#5

This means you try to load i386 binary on an amd64 machine.

I don’t understand this with the restart and offline/online, maybe when it cannot connect initially and is offline uploading logs my reveal what the problem can be.


#6

Thanks Damian,
as follows two protocols, starting JITSI within the console; the first one (after re-booting the PC) results with OFFline mode, the second one is ONline at the end:

First one (OFFline):
$ jitsi %u
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.apache.felix.framework.ext.ClassPathExtenderFactory$DefaultClassLoaderExtender (file:/usr/share/jitsi/lib/felix.jar) to method java.net.URLClassLoader.addURL(java.net.URL)
WARNING: Please consider reporting this to the maintainers of org.apache.felix.framework.ext.ClassPathExtenderFactory$DefaultClassLoaderExtender
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
ALSA lib pcm_dsnoop.c:618:(snd_pcm_dsnoop_open) unable to open slave
ALSA lib pcm_dmix.c:1052:(snd_pcm_dmix_open) unable to open slave
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
ALSA lib pcm_dmix.c:990:(snd_pcm_dmix_open) The dmix plugin supports only playback stream
ALSA lib pcm_dmix.c:1052:(snd_pcm_dmix_open) unable to open slave
2018-09-24 17:36:08.097 SCHWERWIEGEND: [21] org.jitsi.impl.neomedia.device.DeviceConfiguration.log() Failed to register custom Renderer org.jitsi.impl.neomedia.jmfext.media.renderer.video.JAWTRenderer with JMF.
java.lang.UnsatisfiedLinkError: /tmp/jna-812384476/jna797590935815110476.tmp: libjawt.so: Kann die Shared-Object-Datei nicht öffnen: Datei oder Verzeichnis nicht gefunden
at java.base/java.lang.ClassLoader$NativeLibrary.load0(Native Method)
at java.base/java.lang.ClassLoader$NativeLibrary.load(ClassLoader.java:2424)
at java.base/java.lang.ClassLoader$NativeLibrary.loadLibrary(ClassLoader.java:2481)
at java.base/java.lang.ClassLoader.loadLibrary0(ClassLoader.java:2678)
at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2611)
at java.base/java.lang.Runtime.load0(Runtime.java:814)
at java.base/java.lang.System.load(System.java:1838)
at org.jitsi.util.JNIUtils.loadLibrary(JNIUtils.java:104)
at org.jitsi.util.JNIUtils.loadLibrary(JNIUtils.java:40)
at org.jitsi.impl.neomedia.jmfext.media.renderer.video.JAWTRenderer.(JAWTRenderer.java:99)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:291)
at org.jitsi.impl.neomedia.device.DeviceConfiguration.registerCustomRenderers(DeviceConfiguration.java:1046)
at org.jitsi.impl.neomedia.device.DeviceConfiguration.(DeviceConfiguration.java:365)
at org.jitsi.impl.neomedia.MediaServiceImpl.(MediaServiceImpl.java:160)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:488)
at java.base/java.lang.Class.newInstance(Class.java:560)
at org.jitsi.impl.libjitsi.LibJitsiImpl$ServiceLock.initializeService(LibJitsiImpl.java:196)
at org.jitsi.impl.libjitsi.LibJitsiImpl$ServiceLock.getService(LibJitsiImpl.java:131)
at org.jitsi.impl.libjitsi.LibJitsiImpl.getService(LibJitsiImpl.java:91)
at org.jitsi.impl.libjitsi.LibJitsiOSGiImpl.getService(LibJitsiOSGiImpl.java:95)
at org.jitsi.service.libjitsi.LibJitsi.invokeGetServiceOnImpl(LibJitsi.java:172)
at org.jitsi.service.libjitsi.LibJitsi.getMediaService(LibJitsi.java:124)
at net.java.sip.communicator.impl.neomedia.NeomediaActivator.start(NeomediaActivator.java:391)
at org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:697)
at org.apache.felix.framework.Felix.activateBundle(Felix.java:2240)
at org.apache.felix.framework.Felix.startBundle(Felix.java:2146)
at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1373)
at org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308)
at java.base/java.lang.Thread.run(Thread.java:844)
2018-09-24 17:36:14.790 SCHWERWIEGEND: [61] impl.protocol.sip.ProtocolProviderServiceSipImpl.register().443 No address found for ProtocolProviderServiceSipImpl(IPmyNAME (SIP))
2018-09-24 17:36:16.810 SCHWERWIEGEND: [76] impl.protocol.sip.ProtocolProviderServiceSipImpl.register().443 No address found for ProtocolProviderServiceSipImpl(IPmyNAME (SIP))
2018-09-24 17:36:20.821 SCHWERWIEGEND: [85] impl.protocol.sip.ProtocolProviderServiceSipImpl.register().443 No address found for ProtocolProviderServiceSipImpl(IPmyNAME (SIP))
2018-09-24 17:36:28.839 SCHWERWIEGEND: [95] impl.protocol.sip.ProtocolProviderServiceSipImpl.register().443 No address found for ProtocolProviderServiceSipImpl(IPmyNAME (SIP))
2018-09-24 17:36:44.860 SCHWERWIEGEND: [105] impl.protocol.sip.ProtocolProviderServiceSipImpl.register().443 No address found for ProtocolProviderServiceSipImpl(IPmyNAME (SIP))
2018-09-24 17:37:16.873 SCHWERWIEGEND: [117] impl.protocol.sip.ProtocolProviderServiceSipImpl.register().443 No address found for ProtocolProviderServiceSipImpl(IPmyNAME (SIP))
2018-09-24 17:38:20.889 SCHWERWIEGEND: [132] impl.protocol.sip.ProtocolProviderServiceSipImpl.register().443 No address found for ProtocolProviderServiceSipImpl(IPmyNAME (SIP))
$

Now the second one, ONline:
$ jitsi %u
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.apache.felix.framework.ext.ClassPathExtenderFactory$DefaultClassLoaderExtender (file:/usr/share/jitsi/lib/felix.jar) to method java.net.URLClassLoader.addURL(java.net.URL)
WARNING: Please consider reporting this to the maintainers of org.apache.felix.framework.ext.ClassPathExtenderFactory$DefaultClassLoaderExtender
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
ALSA lib pcm_dsnoop.c:618:(snd_pcm_dsnoop_open) unable to open slave
ALSA lib pcm_dmix.c:1052:(snd_pcm_dmix_open) unable to open slave
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
ALSA lib pcm.c:2495:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
ALSA lib pcm_dmix.c:990:(snd_pcm_dmix_open) The dmix plugin supports only playback stream
ALSA lib pcm_dmix.c:1052:(snd_pcm_dmix_open) unable to open slave
2018-09-24 17:38:36.891 SCHWERWIEGEND: [21] org.jitsi.impl.neomedia.device.DeviceConfiguration.log() Failed to register custom Renderer org.jitsi.impl.neomedia.jmfext.media.renderer.video.JAWTRenderer with JMF.
java.lang.UnsatisfiedLinkError: /tmp/jna-812384476/jna13497203619457338555.tmp: libjawt.so: Kann die Shared-Object-Datei nicht öffnen: Datei oder Verzeichnis nicht gefunden
at java.base/java.lang.ClassLoader$NativeLibrary.load0(Native Method)
at java.base/java.lang.ClassLoader$NativeLibrary.load(ClassLoader.java:2424)
at java.base/java.lang.ClassLoader$NativeLibrary.loadLibrary(ClassLoader.java:2481)
at java.base/java.lang.ClassLoader.loadLibrary0(ClassLoader.java:2678)
at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2611)
at java.base/java.lang.Runtime.load0(Runtime.java:814)
at java.base/java.lang.System.load(System.java:1838)
at org.jitsi.util.JNIUtils.loadLibrary(JNIUtils.java:104)
at org.jitsi.util.JNIUtils.loadLibrary(JNIUtils.java:40)
at org.jitsi.impl.neomedia.jmfext.media.renderer.video.JAWTRenderer.(JAWTRenderer.java:99)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:291)
at org.jitsi.impl.neomedia.device.DeviceConfiguration.registerCustomRenderers(DeviceConfiguration.java:1046)
at org.jitsi.impl.neomedia.device.DeviceConfiguration.(DeviceConfiguration.java:365)
at org.jitsi.impl.neomedia.MediaServiceImpl.(MediaServiceImpl.java:160)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:488)
at java.base/java.lang.Class.newInstance(Class.java:560)
at org.jitsi.impl.libjitsi.LibJitsiImpl$ServiceLock.initializeService(LibJitsiImpl.java:196)
at org.jitsi.impl.libjitsi.LibJitsiImpl$ServiceLock.getService(LibJitsiImpl.java:131)
at org.jitsi.impl.libjitsi.LibJitsiImpl.getService(LibJitsiImpl.java:91)
at org.jitsi.impl.libjitsi.LibJitsiOSGiImpl.getService(LibJitsiOSGiImpl.java:95)
at org.jitsi.service.libjitsi.LibJitsi.invokeGetServiceOnImpl(LibJitsi.java:172)
at org.jitsi.service.libjitsi.LibJitsi.getMediaService(LibJitsi.java:124)
at net.java.sip.communicator.impl.neomedia.NeomediaActivator.start(NeomediaActivator.java:391)
at org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:697)
at org.apache.felix.framework.Felix.activateBundle(Felix.java:2240)
at org.apache.felix.framework.Felix.startBundle(Felix.java:2146)
at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1373)
at org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308)
at java.base/java.lang.Thread.run(Thread.java:844)
$


#7

The interesting part is just the one with Offline and the logs I mean http://desktop.jitsi.org/faq#logs not the console logs.


#8

Ok, Damian, here what I did:
Shutdown and rebooted the PC, started JITSI using ‘LD_PRELOAD=/usr/lib/i386-linux-gnu/libv4l/v4l2convert.so jitsi’ and wrote this ZIP-file .
Thank you for your effort.


#9

The problem I see

.... No address found for ProtocolProviderServiceSipImpl(IPmyNAME (SIP))

When it starts seems the DNS is not returning anything for the sip account address and so it cannot connect. Not sure how you start it, and when you start it is there internet on the machine … But this is the problem.
Is the dns entry publicly accessible, I see few lines above that the main dns doesn’t respond and it switches to backup dns which also doesn’t return address in the response.
In the pcap I see requests for dns to 127.0.0.1, 127.0.0.53 and the backup dns servers and none of those return an answer.


#10

Thank you, Damian. I don’t understand all that.
This morning started the computer. Automatically it logs into an IRC-software an updates the channels; no issue with web access. It brings up the local weather forecast and also new updates. In addition to that, I started FIREFOX and loaded several webpages.

After that, I started JITSI using ‘LD_PRELOAD=/usr/lib/i386-linux-gnu/libv4l/v4l2convert.so jitsi’ which was OFFline. I opened another webpage, no issue; several IRC messages droppped in. Then I went to the JITSI account settings, did some changes and saved it; JITSI stay OFFline.

Now I closed JITSI and restared it right away ‘LD_PRE …’, now it’s ONline. But the camera photo in Settings > Video > Devices is not shown today as it has been yesterday, although the control-LED is switched ON, when entering the tab. I stayed on the TAB, LED on, and started VLC to show camera photo: Error message from VLC: Camera is already used. Then I went to the JITSI-Tab Devices, CAM-LED switches OFF; started VLC to show camera photo: Picture is fine.

Although I never changed anything in device settings, LAN-setup etc., I can reproduce the issue: First start of JITSI after booting OFFline, from second start ONline.

Really strange.