网络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 。