umlaeute / v4l2loopback

v4l2-loopback device
GNU General Public License v2.0
3.61k stars 515 forks source link

Dummy device made via v4l2loopback is busy #566

Closed igorhoop closed 4 months ago

igorhoop commented 7 months ago

Hi @umlaeute .

I use v4l2loopback on my laptop and and your program worked fine. But now I'm trying to run it on embedded computers and it doesn't work. For example, now I am trying to run on NVidia Jetson. I connected a USB webcam:

sudo modprobe v4l2loopback video_nr=99

Now l have 2 devices:

ls /dev/video*

video0      # real device
video99    # dummy device

Next, I direct the real stream to the virtual device using ffmpeg: ffmpeg -f v4l2 -i /dev/video0 -f v4l2 /dev/video99

Next, I run VLC and view the image from video99. At this step everything works. Now I want to run a copy of VLC and view video99 again. That is, at the same time 2 VLCs must show the image from video99

But I get a error: v4l2 stream error: **cannot start streaming: Device or resources busy**

If I turn off the first VLC instance, then the second VLC instance starts working normally.

I don't understand why this is happening. Perhaps I did something wrong, but it worked on my laptop.

Information that is installed on NVidia Jetson:

OS: Ubuntu 18.04
Kernel: 4.9.140-tegra
umlaeute commented 7 months ago

so which exact version of v4l2loopback are you running on both your laptop and the jetson?

igorhoop commented 7 months ago

so which exact version of v4l2loopback are you running on both your laptop and the jetson?

I used the current version. Main branch.

Downloaded like this: git clone https://github.com/umlaeute/v4l2loopback.git

umlaeute commented 7 months ago

That's not an exact version.

Could you please post the version as printed in the kernel logs when the module is loaded? (dmesg | grep v4l2loopback)

igorhoop commented 7 months ago

My laptop (v4l2loopback work normally):

hoop@hoop-ThinkBook-14-G2-ITL:~$ dmesg | grep v4l2loopback
[112760.267392] v4l2loopback: loading out-of-tree module taints kernel.
[112760.268769] v4l2loopback driver version 0.12.5 loaded

The other two mini PCs don't work:

unitree@localhost:~$ dmesg | grep v4l2loopback
[   79.884805] v4l2loopback: loading out-of-tree module taints kernel.
[   79.892466] v4l2loopback driver version 0.12.7 (0.12.7-412-g850a2e3) loaded
unitree@unitree-UP-CHT01:~$ dmesg | grep v4l2loopback
[  585.426351] v4l2loopback: module verification failed: signature and/or required key missing - tainting kernel
[  585.428328] v4l2loopback driver version 0.12.7 loaded
umlaeute commented 7 months ago

Thanks. That looks like three different versions...

umlaeute commented 4 months ago

as of https://github.com/umlaeute/v4l2loopback/issues/310, it is not allowed to have multiple consumers reading in parallel.