Como ler uma webcam que já é usada por uma captura de fundo?

1

Uma captura de webcam ffmpeg está sendo executada em segundo plano.

ffmpeg -f video4linux2 -s vga -i /dev/video0  capture.mp4    (1)

Portanto, não consigo lê-lo com ffplay , pois o dispositivo /dev/video0 é usado:

ffplay -f video4linux2 -s vga -i /dev/video0                  (2)
[...]
/dev/video0: Device or resource busy

Como ler a webcam com ffplay sem interromper a captura de fundo?

PS: O comando background capture não deve ser modificado. Estou ciente de que isso pode ser feito modificando o comando (1) com fifo.

    
por user123456 09.02.2017 / 21:55

1 resposta

4

Faça isso:

sudo modprobe v4l2loopback devices=1

Se você receber um erro semelhante, como modprobe: FATAL: Module v4l2loopback not found in directory /lib/modules/4.6.0-kali1-amd64 , instale primeiro v4l2loopback-dkms, por exemplo:

sudo apt-get install v4l2loopback-dkms

Agora execute-o primeiro (observe que ele não pode ser executado como um processo em segundo plano por meio de & ):

ffmpeg -f video4linux2  -i /dev/video0 -codec copy -f v4l2 /dev/video1

Sem interromper o processo acima, em outra (s) sessão (ões) bash (s), você poderá executar seus dois comandos, ou seja, ffmpeg -f video4linux2 -s vga -i /dev/video1 capture.mp4 e ffplay -f video4linux2 -s vga -i /dev/video1 (altere para / dev / video1) ao mesmo tempo. / p>

Se você definir como 2 :

sudo modprobe v4l2loopback devices=2

Então você pode fazer ffmpeg -f video4linux2 -i /dev/video0 -codec copy -f v4l2 /dev/video1 -codec copy -f v4l2 /dev/video2 , o que permite que você use tanto / dev / video1 e / dev / video2 ao mesmo tempo.

    
por 09.02.2017 / 22:21