如何读取后台捕获已使用的网络摄像头?

如何读取后台捕获已使用的网络摄像头?

网络ffmpeg摄像头捕获正在后台运行。

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

因此,由于使用了ffplay该设备,我无法读取它:/dev/video0

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

如何在ffplay不停止后台捕获的情况下读取网络摄像头?

PS:后台抓图命令不要修改。我知道这可以通过使用 fifo 修改命令 (1) 来完成。

答案1

做这个:

sudo modprobe v4l2loopback devices=1

如果您遇到类似的错误modprobe: FATAL: Module v4l2loopback not found in directory /lib/modules/4.6.0-kali1-amd64,只需先安装 v4l2loopback-dkms,例如:

sudo apt-get install v4l2loopback-dkms

现在先运行它(注意它不能通过尾随作为后台进程运行&):

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

在不停止上述过程的情况下,在其他 bash 会话中,您应该能够同时运行两个命令,即ffmpeg -f video4linux2 -s vga -i /dev/video1 capture.mp4和(将其更改为 /dev/video1)。ffplay -f video4linux2 -s vga -i /dev/video1

如果您将其设置为2

sudo modprobe v4l2loopback devices=2

然后你可以这样做ffmpeg -f video4linux2 -i /dev/video0 -codec copy -f v4l2 /dev/video1 -codec copy -f v4l2 /dev/video2,它允许你同时使用 /dev/video1 和 /dev/video2 。

相关内容